aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--COPYING41
-rw-r--r--INSTALL4
-rw-r--r--Makefile.am2
-rw-r--r--Makefile.in41
-rw-r--r--NEWS26
-rw-r--r--TODO45
-rw-r--r--aclocal.m4154
-rw-r--r--build-aux/Makefile.in26
-rw-r--r--cli/Makefile.am2
-rw-r--r--cli/Makefile.in63
-rw-r--r--cli/mmcli-common.c6
-rw-r--r--cli/mmcli-modem-3gpp.c2
-rw-r--r--cli/mmcli-modem-cdma.c130
-rw-r--r--cli/mmcli-modem-messaging.c57
-rw-r--r--cli/mmcli-modem-oma.c521
-rw-r--r--cli/mmcli-modem-signal.c324
-rw-r--r--cli/mmcli-modem-simple.c15
-rw-r--r--cli/mmcli-modem.c77
-rw-r--r--cli/mmcli-sms.c44
-rw-r--r--cli/mmcli.c22
-rw-r--r--cli/mmcli.h16
-rwxr-xr-xconfig.guess30
-rw-r--r--config.h.in3
-rwxr-xr-xconfig.sub19
-rwxr-xr-xconfigure760
-rw-r--r--configure.ac23
-rw-r--r--data/Makefile.am3
-rw-r--r--data/Makefile.in36
-rw-r--r--data/org.freedesktop.ModemManager1.conf.polkit7
-rw-r--r--docs/Makefile.in26
-rw-r--r--docs/man/Makefile.in26
-rw-r--r--docs/man/mmcli.827
-rw-r--r--docs/reference/Makefile.in26
-rw-r--r--docs/reference/api/Makefile.am2
-rw-r--r--docs/reference/api/Makefile.in124
-rw-r--r--docs/reference/api/ModemManager-dbus-reference.xml2
-rw-r--r--docs/reference/api/ModemManager-sections.txt7
-rw-r--r--docs/reference/api/html/ModemManager-Errors.html38
-rw-r--r--docs/reference/api/html/ModemManager-Flags-and-Enumerations.html1027
-rw-r--r--docs/reference/api/html/ModemManager-Version-checks.html6
-rw-r--r--docs/reference/api/html/ModemManager.devhelp2186
-rw-r--r--docs/reference/api/html/ch02s02.html20
-rw-r--r--docs/reference/api/html/ch02s03.html6
-rw-r--r--docs/reference/api/html/ch03s02.html6
-rw-r--r--docs/reference/api/html/ch03s03.html6
-rw-r--r--docs/reference/api/html/ch03s04.html6
-rw-r--r--docs/reference/api/html/ch12.html8
-rw-r--r--docs/reference/api/html/ch12s02.html6
-rw-r--r--docs/reference/api/html/ch12s03.html6
-rw-r--r--docs/reference/api/html/ch12s04.html6
-rw-r--r--docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Bearer.html6
-rw-r--r--docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Firmware.html8
-rw-r--r--docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Location.html6
-rw-r--r--docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html27
-rw-r--r--docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html6
-rw-r--r--docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html18
-rw-r--r--docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.ModemCdma.html67
-rw-r--r--docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Oma.html257
-rw-r--r--docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Signal.html309
-rw-r--r--docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Simple.html4
-rw-r--r--docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Time.html8
-rw-r--r--docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.html19
-rw-r--r--docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Sim.html6
-rw-r--r--docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Sms.html42
-rw-r--r--docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.html4
-rw-r--r--docs/reference/api/html/index.html28
-rw-r--r--docs/reference/api/html/index.sgml179
-rw-r--r--docs/reference/api/html/ix01.html66
-rw-r--r--docs/reference/api/html/ref-common-types.html4
-rw-r--r--docs/reference/api/html/ref-dbus-bus-name.html4
-rw-r--r--docs/reference/api/html/ref-dbus-object-bearer.html8
-rw-r--r--docs/reference/api/html/ref-dbus-object-manager.html4
-rw-r--r--docs/reference/api/html/ref-dbus-object-modem.html10
-rw-r--r--docs/reference/api/html/ref-dbus-object-sim.html4
-rw-r--r--docs/reference/api/html/ref-dbus-object-sms.html4
-rw-r--r--docs/reference/api/html/ref-dbus-standard-interfaces-introspectables.html4
-rw-r--r--docs/reference/api/html/ref-dbus-standard-interfaces-objectmanager.html4
-rw-r--r--docs/reference/api/html/ref-dbus-standard-interfaces.html4
-rw-r--r--docs/reference/api/html/ref-dbus.html10
-rw-r--r--docs/reference/api/html/ref-migrating.html6
-rw-r--r--docs/reference/api/html/ref-overview-introduction.html4
-rw-r--r--docs/reference/api/html/ref-overview-modem-detection-and-setup.html16
-rw-r--r--docs/reference/api/html/ref-overview-modem-state-machine.html8
-rw-r--r--docs/reference/api/html/ref-overview-plugin-specific-modems.html4
-rw-r--r--docs/reference/api/html/ref-overview.html16
-rw-r--r--docs/reference/api/tmpl/mm-enums.sgml184
-rw-r--r--docs/reference/libmm-glib/Makefile.in126
-rw-r--r--docs/reference/libmm-glib/html/MMBearer.html22
-rw-r--r--docs/reference/libmm-glib/html/MMBearerIpConfig.html13
-rw-r--r--docs/reference/libmm-glib/html/MMBearerProperties.html38
-rw-r--r--docs/reference/libmm-glib/html/MMCdmaManualActivationProperties.html671
-rw-r--r--docs/reference/libmm-glib/html/MMFirmwareProperties.html24
-rw-r--r--docs/reference/libmm-glib/html/MMLocation3gpp.html4
-rw-r--r--docs/reference/libmm-glib/html/MMLocationCdmaBs.html4
-rw-r--r--docs/reference/libmm-glib/html/MMLocationGpsNmea.html7
-rw-r--r--docs/reference/libmm-glib/html/MMLocationGpsRaw.html4
-rw-r--r--docs/reference/libmm-glib/html/MMManager.html4
-rw-r--r--docs/reference/libmm-glib/html/MMModem.html321
-rw-r--r--docs/reference/libmm-glib/html/MMModem3gpp.html68
-rw-r--r--docs/reference/libmm-glib/html/MMModem3gppUssd.html14
-rw-r--r--docs/reference/libmm-glib/html/MMModemCdma.html174
-rw-r--r--docs/reference/libmm-glib/html/MMModemFirmware.html8
-rw-r--r--docs/reference/libmm-glib/html/MMModemLocation.html69
-rw-r--r--docs/reference/libmm-glib/html/MMModemMessaging.html61
-rw-r--r--docs/reference/libmm-glib/html/MMModemOma.html905
-rw-r--r--docs/reference/libmm-glib/html/MMModemSignal.html658
-rw-r--r--docs/reference/libmm-glib/html/MMModemSimple.html6
-rw-r--r--docs/reference/libmm-glib/html/MMModemTime.html64
-rw-r--r--docs/reference/libmm-glib/html/MMNetworkTimezone.html4
-rw-r--r--docs/reference/libmm-glib/html/MMObject.html120
-rw-r--r--docs/reference/libmm-glib/html/MMSignal.html279
-rw-r--r--docs/reference/libmm-glib/html/MMSim.html4
-rw-r--r--docs/reference/libmm-glib/html/MMSimpleConnectProperties.html28
-rw-r--r--docs/reference/libmm-glib/html/MMSimpleStatus.html95
-rw-r--r--docs/reference/libmm-glib/html/MMSms.html113
-rw-r--r--docs/reference/libmm-glib/html/MMSmsProperties.html124
-rw-r--r--docs/reference/libmm-glib/html/MMUnlockRetries.html32
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusBearer.html52
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusBearerProxy.html4
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusBearerSkeleton.html4
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusModem.html304
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusModem3gpp.html91
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusModem3gppProxy.html4
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusModem3gppSkeleton.html4
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusModem3gppUssd.html38
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusModem3gppUssdProxy.html4
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusModem3gppUssdSkeleton.html4
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusModemCdma.html50
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusModemCdmaProxy.html4
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusModemCdmaSkeleton.html4
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusModemFirmware.html16
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusModemFirmwareProxy.html4
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusModemFirmwareSkeleton.html8
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusModemLocation.html34
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusModemLocationProxy.html4
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusModemLocationSkeleton.html4
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusModemMessaging.html122
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusModemMessagingProxy.html4
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusModemMessagingSkeleton.html4
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusModemOma.html1208
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusModemOmaProxy.html415
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusModemOmaSkeleton.html102
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusModemProxy.html4
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusModemSignal.html797
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusModemSignalProxy.html419
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusModemSignalSkeleton.html102
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusModemSimple.html26
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusModemSimpleProxy.html4
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusModemSimpleSkeleton.html4
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusModemSkeleton.html4
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusModemTime.html18
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusModemTimeProxy.html4
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusModemTimeSkeleton.html4
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusObject.html144
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusObjectManagerClient.html4
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusObjectProxy.html4
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusObjectSkeleton.html64
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusOrgFreedesktopModemManager1.html16
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusOrgFreedesktopModemManager1Proxy.html4
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusOrgFreedesktopModemManager1Skeleton.html4
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusSim.html52
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusSimProxy.html4
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusSimSkeleton.html4
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusSms.html180
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusSmsProxy.html4
-rw-r--r--docs/reference/libmm-glib/html/MmGdbusSmsSkeleton.html4
-rw-r--r--docs/reference/libmm-glib/html/annotation-glossary.html51
-rw-r--r--docs/reference/libmm-glib/html/api-index-full.html731
-rw-r--r--docs/reference/libmm-glib/html/ch01.html6
-rw-r--r--docs/reference/libmm-glib/html/ch02.html6
-rw-r--r--docs/reference/libmm-glib/html/ch03.html26
-rw-r--r--docs/reference/libmm-glib/html/ch03s02.html6
-rw-r--r--docs/reference/libmm-glib/html/ch03s03.html6
-rw-r--r--docs/reference/libmm-glib/html/ch03s04.html6
-rw-r--r--docs/reference/libmm-glib/html/ch03s05.html6
-rw-r--r--docs/reference/libmm-glib/html/ch03s06.html6
-rw-r--r--docs/reference/libmm-glib/html/ch03s07.html28
-rw-r--r--docs/reference/libmm-glib/html/ch03s08.html28
-rw-r--r--docs/reference/libmm-glib/html/ch04.html10
-rw-r--r--docs/reference/libmm-glib/html/ch05.html6
-rw-r--r--docs/reference/libmm-glib/html/ch06.html6
-rw-r--r--docs/reference/libmm-glib/html/deprecated-api-index.html4
-rw-r--r--docs/reference/libmm-glib/html/index.html44
-rw-r--r--docs/reference/libmm-glib/html/index.sgml260
-rw-r--r--docs/reference/libmm-glib/html/libmm-glib-Flags-and-Enumerations.html365
-rw-r--r--docs/reference/libmm-glib/html/libmm-glib.devhelp2200
-rw-r--r--docs/reference/libmm-glib/html/object-tree.html14
-rw-r--r--docs/reference/libmm-glib/html/pt01.html24
-rw-r--r--docs/reference/libmm-glib/html/pt02.html24
-rw-r--r--docs/reference/libmm-glib/libmm-glib-docs.xml18
-rw-r--r--docs/reference/libmm-glib/libmm-glib-sections.txt376
-rw-r--r--docs/reference/libmm-glib/libmm-glib.types15
-rw-r--r--docs/reference/libmm-glib/tmpl/MmGdbusModem.sgml24
-rw-r--r--docs/reference/libmm-glib/tmpl/MmGdbusModem3gpp.sgml15
-rw-r--r--docs/reference/libmm-glib/tmpl/MmGdbusModemMessaging.sgml24
-rw-r--r--docs/reference/libmm-glib/tmpl/MmGdbusModemOma.sgml301
-rw-r--r--docs/reference/libmm-glib/tmpl/MmGdbusModemOmaProxy.sgml106
-rw-r--r--docs/reference/libmm-glib/tmpl/MmGdbusModemOmaSkeleton.sgml39
-rw-r--r--docs/reference/libmm-glib/tmpl/MmGdbusModemSignal.sgml218
-rw-r--r--docs/reference/libmm-glib/tmpl/MmGdbusModemSignalProxy.sgml106
-rw-r--r--docs/reference/libmm-glib/tmpl/MmGdbusModemSignalSkeleton.sgml39
-rw-r--r--docs/reference/libmm-glib/tmpl/MmGdbusObject.sgml46
-rw-r--r--docs/reference/libmm-glib/tmpl/MmGdbusObjectSkeleton.sgml18
-rw-r--r--docs/reference/libmm-glib/tmpl/MmGdbusSms.sgml30
-rw-r--r--docs/reference/libmm-glib/tmpl/mm-cdma-manual-activation-properties.sgml208
-rw-r--r--docs/reference/libmm-glib/tmpl/mm-enums-types.sgml63
-rw-r--r--docs/reference/libmm-glib/tmpl/mm-modem-3gpp.sgml9
-rw-r--r--docs/reference/libmm-glib/tmpl/mm-modem-cdma.sgml35
-rw-r--r--docs/reference/libmm-glib/tmpl/mm-modem-oma.sgml245
-rw-r--r--docs/reference/libmm-glib/tmpl/mm-modem-signal.sgml182
-rw-r--r--docs/reference/libmm-glib/tmpl/mm-modem.sgml18
-rw-r--r--docs/reference/libmm-glib/tmpl/mm-object.sgml36
-rw-r--r--docs/reference/libmm-glib/tmpl/mm-signal.sgml100
-rw-r--r--docs/reference/libmm-glib/tmpl/mm-simple-status.sgml14
-rw-r--r--docs/reference/libmm-glib/tmpl/mm-sms-properties.sgml36
-rw-r--r--docs/reference/libmm-glib/tmpl/mm-sms.sgml18
-rw-r--r--gtk-doc.make78
-rw-r--r--include/Makefile.in26
-rw-r--r--include/ModemManager-enums.h371
-rw-r--r--include/ModemManager-errors.h34
-rw-r--r--include/ModemManager-names.h31
-rw-r--r--include/ModemManager-version.h2
-rw-r--r--introspection/Makefile.in26
-rw-r--r--introspection/all.xml2
-rw-r--r--introspection/org.freedesktop.ModemManager1.Modem.Messaging.xml16
-rw-r--r--introspection/org.freedesktop.ModemManager1.Modem.Modem3gpp.xml9
-rw-r--r--introspection/org.freedesktop.ModemManager1.Modem.ModemCdma.xml58
-rw-r--r--introspection/org.freedesktop.ModemManager1.Modem.Oma.xml123
-rw-r--r--introspection/org.freedesktop.ModemManager1.Modem.Signal.xml212
-rw-r--r--introspection/org.freedesktop.ModemManager1.Modem.xml8
-rw-r--r--introspection/org.freedesktop.ModemManager1.Sms.xml36
-rw-r--r--libmm-glib/Makefile.am93
-rw-r--r--libmm-glib/Makefile.in338
-rw-r--r--libmm-glib/generated/Makefile.am12
-rw-r--r--libmm-glib/generated/Makefile.in38
-rw-r--r--libmm-glib/generated/mm-enums-types.h112
-rw-r--r--libmm-glib/generated/mm-gdbus-bearer.h2
-rw-r--r--libmm-glib/generated/mm-gdbus-manager.h2
-rw-r--r--libmm-glib/generated/mm-gdbus-modem.h490
-rw-r--r--libmm-glib/generated/mm-gdbus-sim.h2
-rw-r--r--libmm-glib/generated/mm-gdbus-sms.h12
-rw-r--r--libmm-glib/libmm-glib.h4
-rw-r--r--libmm-glib/mm-bearer-ip-config.c10
-rw-r--r--libmm-glib/mm-bearer-properties.c27
-rw-r--r--libmm-glib/mm-bearer-properties.h2
-rw-r--r--libmm-glib/mm-bearer.c12
-rw-r--r--libmm-glib/mm-cdma-manual-activation-properties.c879
-rw-r--r--libmm-glib/mm-cdma-manual-activation-properties.h113
-rw-r--r--libmm-glib/mm-common-helpers.c196
-rw-r--r--libmm-glib/mm-common-helpers.h16
-rw-r--r--libmm-glib/mm-helper-types.h24
-rw-r--r--libmm-glib/mm-location-gps-nmea.c2
-rw-r--r--libmm-glib/mm-manager.c2
-rw-r--r--libmm-glib/mm-modem-3gpp.c23
-rw-r--r--libmm-glib/mm-modem-3gpp.h1
-rw-r--r--libmm-glib/mm-modem-cdma.c92
-rw-r--r--libmm-glib/mm-modem-cdma.h14
-rw-r--r--libmm-glib/mm-modem-firmware.c4
-rw-r--r--libmm-glib/mm-modem-location.c18
-rw-r--r--libmm-glib/mm-modem-messaging.c56
-rw-r--r--libmm-glib/mm-modem-oma.c593
-rw-r--r--libmm-glib/mm-modem-oma.h135
-rw-r--r--libmm-glib/mm-modem-signal.c602
-rw-r--r--libmm-glib/mm-modem-signal.h101
-rw-r--r--libmm-glib/mm-modem-time.c20
-rw-r--r--libmm-glib/mm-modem.c111
-rw-r--r--libmm-glib/mm-modem.h3
-rw-r--r--libmm-glib/mm-object.c72
-rw-r--r--libmm-glib/mm-object.h6
-rw-r--r--libmm-glib/mm-signal.c441
-rw-r--r--libmm-glib/mm-signal.h98
-rw-r--r--libmm-glib/mm-simple-connect-properties.c8
-rw-r--r--libmm-glib/mm-simple-connect-properties.h2
-rw-r--r--libmm-glib/mm-simple-status.c45
-rw-r--r--libmm-glib/mm-simple-status.h2
-rw-r--r--libmm-glib/mm-sms-properties.c128
-rw-r--r--libmm-glib/mm-sms-properties.h6
-rw-r--r--libmm-glib/mm-sms.c38
-rw-r--r--libmm-glib/mm-sms.h4
-rw-r--r--libmm-glib/mm-unlock-retries.c4
-rw-r--r--libmm-glib/tests/Makefile.in26
-rw-r--r--libqcdm/Makefile.in26
-rw-r--r--libqcdm/src/Makefile.in26
-rw-r--r--libqcdm/src/commands.c88
-rw-r--r--libqcdm/src/commands.h23
-rw-r--r--libqcdm/src/nv-items.h13
-rw-r--r--libqcdm/tests/Makefile.am8
-rw-r--r--libqcdm/tests/Makefile.in78
-rw-r--r--libqcdm/tests/ipv6pref.c316
-rw-r--r--libqcdm/tests/test-qcdm-com.c55
-rw-r--r--libqcdm/tests/test-qcdm-com.h2
-rw-r--r--libqcdm/tests/test-qcdm.c1
-rw-r--r--libwmc/Makefile.in26
-rw-r--r--libwmc/src/Makefile.in26
-rw-r--r--libwmc/tests/Makefile.in26
-rw-r--r--m4/gtk-doc.m46
-rw-r--r--m4/introspection.m496
-rw-r--r--m4/libtool.m46
-rw-r--r--m4/vapigen.m4101
-rwxr-xr-xmissing4
-rw-r--r--plugins/Makefile.am43
-rw-r--r--plugins/Makefile.in222
-rw-r--r--plugins/altair/mm-broadband-bearer-altair-lte.c149
-rw-r--r--plugins/altair/mm-broadband-modem-altair-lte.c527
-rw-r--r--plugins/altair/mm-modem-helpers-altair-lte.c223
-rw-r--r--plugins/altair/mm-modem-helpers-altair-lte.h34
-rw-r--r--plugins/altair/tests/test-modem-helpers-altair-lte.c113
-rw-r--r--plugins/cinterion/mm-plugin-cinterion.c18
-rw-r--r--plugins/huawei/77-mm-huawei-net-port-types.rules2
-rw-r--r--plugins/huawei/mm-broadband-bearer-huawei.c189
-rw-r--r--plugins/huawei/mm-broadband-modem-huawei.c1495
-rw-r--r--plugins/huawei/mm-modem-helpers-huawei.c999
-rw-r--r--plugins/huawei/mm-modem-helpers-huawei.h88
-rw-r--r--plugins/huawei/mm-plugin-huawei.c6
-rw-r--r--plugins/huawei/mm-sim-huawei.c181
-rw-r--r--plugins/huawei/mm-sim-huawei.h53
-rw-r--r--plugins/huawei/tests/test-modem-helpers-huawei.c945
-rw-r--r--plugins/icera/mm-broadband-bearer-icera.c154
-rw-r--r--plugins/icera/mm-broadband-bearer-icera.h10
-rw-r--r--plugins/icera/mm-broadband-modem-icera.c15
-rw-r--r--plugins/longcheer/77-mm-longcheer-port-types.rules2
-rw-r--r--plugins/mbm/77-mm-ericsson-mbm.rules9
-rw-r--r--plugins/mbm/mm-broadband-bearer-mbm.c63
-rw-r--r--plugins/mbm/mm-broadband-bearer-mbm.h9
-rw-r--r--plugins/mbm/mm-broadband-modem-mbm.c13
-rw-r--r--plugins/mtk/77-mm-mtk-port-types.rules48
-rw-r--r--plugins/mtk/mm-broadband-modem-mtk.c1036
-rw-r--r--plugins/mtk/mm-broadband-modem-mtk.h51
-rw-r--r--plugins/mtk/mm-plugin-mtk.c118
-rw-r--r--plugins/mtk/mm-plugin-mtk.h42
-rw-r--r--plugins/nokia/77-mm-nokia-port-types.rules2
-rw-r--r--plugins/novatel/mm-broadband-bearer-novatel-lte.c73
-rw-r--r--plugins/novatel/mm-broadband-bearer-novatel-lte.h3
-rw-r--r--plugins/novatel/mm-broadband-modem-novatel.c1
-rw-r--r--plugins/novatel/mm-sim-novatel-lte.c2
-rw-r--r--plugins/option/mm-broadband-bearer-hso.c107
-rw-r--r--plugins/option/mm-broadband-bearer-hso.h10
-rw-r--r--plugins/option/mm-broadband-modem-hso.c15
-rw-r--r--plugins/samsung/mm-broadband-modem-samsung.c1
-rw-r--r--plugins/sierra/mm-broadband-modem-sierra.c2
-rw-r--r--plugins/sierra/mm-common-sierra.c4
-rw-r--r--plugins/sierra/mm-sim-sierra.c36
-rw-r--r--plugins/simtech/77-mm-simtech-port-types.rules2
-rw-r--r--plugins/telit/77-mm-telit-port-types.rules48
-rw-r--r--plugins/x22x/77-mm-x22x-port-types.rules2
-rw-r--r--plugins/x22x/mm-plugin-x22x.c58
-rw-r--r--plugins/zte/77-mm-zte-port-types.rules5
-rw-r--r--plugins/zte/mm-broadband-modem-zte-icera.c16
-rw-r--r--plugins/zte/mm-broadband-modem-zte.c16
-rw-r--r--plugins/zte/mm-plugin-zte.c24
-rw-r--r--po/LINGUAS2
-rw-r--r--po/de.po95
-rw-r--r--po/uk.po98
-rw-r--r--src/77-mm-pcmcia-device-blacklist.rules3
-rw-r--r--src/77-mm-platform-serial-whitelist.rules3
-rw-r--r--src/77-mm-usb-device-blacklist.rules32
-rw-r--r--src/77-mm-usb-serial-adapters-greylist.rules3
-rw-r--r--src/Makefile.am30
-rw-r--r--src/Makefile.in184
-rw-r--r--src/mm-at-serial-port.c28
-rw-r--r--src/mm-at-serial-port.h4
-rw-r--r--src/mm-base-modem.c7
-rw-r--r--src/mm-bearer-list.c27
-rw-r--r--src/mm-bearer-list.h1
-rw-r--r--src/mm-bearer-mbim.c166
-rw-r--r--src/mm-bearer-qmi.c20
-rw-r--r--src/mm-bearer.c30
-rw-r--r--src/mm-bearer.h16
-rw-r--r--src/mm-broadband-bearer.c16
-rw-r--r--src/mm-broadband-modem-mbim.c96
-rw-r--r--src/mm-broadband-modem-qmi.c1780
-rw-r--r--src/mm-broadband-modem.c231
-rw-r--r--src/mm-error-helpers.c14
-rw-r--r--src/mm-iface-modem-3gpp.c149
-rw-r--r--src/mm-iface-modem-3gpp.h28
-rw-r--r--src/mm-iface-modem-cdma.c26
-rw-r--r--src/mm-iface-modem-cdma.h2
-rw-r--r--src/mm-iface-modem-messaging.c33
-rw-r--r--src/mm-iface-modem-oma.c1265
-rw-r--r--src/mm-iface-modem-oma.h164
-rw-r--r--src/mm-iface-modem-signal.c612
-rw-r--r--src/mm-iface-modem-signal.h95
-rw-r--r--src/mm-iface-modem.c374
-rw-r--r--src/mm-iface-modem.h7
-rw-r--r--src/mm-marshal.list3
-rw-r--r--src/mm-modem-helpers-mbim.c48
-rw-r--r--src/mm-modem-helpers-mbim.h4
-rw-r--r--src/mm-modem-helpers-qmi.c103
-rw-r--r--src/mm-modem-helpers-qmi.h10
-rw-r--r--src/mm-modem-helpers.c152
-rw-r--r--src/mm-modem-helpers.h2
-rw-r--r--src/mm-plugin.c16
-rw-r--r--src/mm-port-probe.c14
-rw-r--r--src/mm-port.c25
-rw-r--r--src/mm-port.h11
-rw-r--r--src/mm-qmi-port.c6
-rw-r--r--src/mm-serial-port.c73
-rw-r--r--src/mm-sim-mbim.c152
-rw-r--r--src/mm-sim.c78
-rw-r--r--src/mm-sms-list.c8
-rw-r--r--src/mm-sms-mbim.c5
-rw-r--r--src/mm-sms-part-3gpp.c1169
-rw-r--r--src/mm-sms-part-3gpp.h54
-rw-r--r--src/mm-sms-part-cdma.c1616
-rw-r--r--src/mm-sms-part-cdma.h37
-rw-r--r--src/mm-sms-part.c1135
-rw-r--r--src/mm-sms-part.h39
-rw-r--r--src/mm-sms-qmi.c129
-rw-r--r--src/mm-sms.c138
-rw-r--r--src/tests/Makefile.am39
-rw-r--r--src/tests/Makefile.in120
-rw-r--r--src/tests/test-at-serial-port.c10
-rw-r--r--src/tests/test-modem-helpers.c219
-rw-r--r--src/tests/test-qcdm-serial-port.c10
-rw-r--r--src/tests/test-sms-part-3gpp.c (renamed from src/tests/test-sms-part.c)86
-rw-r--r--src/tests/test-sms-part-cdma.c547
-rw-r--r--test/Makefile.in26
-rw-r--r--uml290/Makefile.in26
-rw-r--r--vapi/Makefile.am22
-rw-r--r--vapi/Makefile.in578
-rw-r--r--vapi/ModemManager-1.0.metadata0
-rw-r--r--vapi/libmm-glib.deps1
422 files changed, 39710 insertions, 4982 deletions
diff --git a/COPYING b/COPYING
index d60c31a..d159169 100644
--- a/COPYING
+++ b/COPYING
@@ -1,12 +1,12 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
- Preamble
+ Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
@@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
+the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
@@ -55,8 +55,8 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
-
- GNU GENERAL PUBLIC LICENSE
+
+ GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
@@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
-
+
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
@@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
-
+
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
@@ -225,7 +225,7 @@ impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
-
+
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
@@ -255,7 +255,7 @@ make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
- NO WARRANTY
+ NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
@@ -277,9 +277,9 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
@@ -303,17 +303,16 @@ the "copyright" line and a pointer to where the full notice is found.
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
- Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
@@ -336,5 +335,5 @@ necessary. Here is a sample; alter the names:
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
+library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.
diff --git a/INSTALL b/INSTALL
index 007e939..2099840 100644
--- a/INSTALL
+++ b/INSTALL
@@ -12,8 +12,8 @@ without warranty of any kind.
Basic Installation
==================
- Briefly, the shell commands `./configure; make; make install' should
-configure, build, and install this package. The following
+ Briefly, the shell command `./configure && make && make install'
+should configure, build, and install this package. The following
more-detailed instructions are generic; see the `README' file for
instructions specific to this package. Some packages provide this
`INSTALL' file but do not implement all of the features documented
diff --git a/Makefile.am b/Makefile.am
index 59accbf..96850e2 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,5 +1,5 @@
-SUBDIRS = . build-aux data include libqcdm libwmc libmm-glib src plugins cli introspection uml290 po test docs
+SUBDIRS = . build-aux data include libqcdm libwmc libmm-glib src plugins cli vapi introspection uml290 po test docs
DISTCHECK_CONFIGURE_FLAGS = \
--with-udev-base-dir="$$dc_install_base" \
diff --git a/Makefile.in b/Makefile.in
index 3d80fbe..d25d2f9 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -88,12 +88,13 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \
$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
- $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
- $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/introspection.m4 \
+ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
@@ -260,6 +261,14 @@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
@@ -326,6 +335,9 @@ STRIP = @STRIP@
SYSTEMD_UNIT_DIR = @SYSTEMD_UNIT_DIR@
UDEV_BASE_DIR = @UDEV_BASE_DIR@
USE_NLS = @USE_NLS@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
@@ -384,7 +396,7 @@ target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-SUBDIRS = . build-aux data include libqcdm libwmc libmm-glib src plugins cli introspection uml290 po test docs
+SUBDIRS = . build-aux data include libqcdm libwmc libmm-glib src plugins cli vapi introspection uml290 po test docs
DISTCHECK_CONFIGURE_FLAGS = \
--with-udev-base-dir="$$dc_install_base" \
--with-systemdsystemunitdir="$$dc_install_base/$(SYSTEMD_UNIT_DIR)" \
@@ -447,8 +459,8 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
$(am__aclocal_m4_deps):
config.h: stamp-h1
- @if test ! -f $@; then rm -f stamp-h1; else :; fi
- @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi
+ @test -f $@ || rm -f stamp-h1
+ @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
@rm -f stamp-h1
@@ -656,10 +668,16 @@ dist-xz: distdir
$(am__post_remove_distdir)
dist-tarZ: distdir
+ @echo WARNING: "Support for shar distribution archives is" \
+ "deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__post_remove_distdir)
dist-shar: distdir
+ @echo WARNING: "Support for distribution archives compressed with" \
+ "legacy program 'compress' is deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
$(am__post_remove_distdir)
@@ -701,9 +719,10 @@ distcheck: dist
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
&& am__cwd=`pwd` \
&& $(am__cd) $(distdir)/_build \
- && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+ && ../configure \
$(AM_DISTCHECK_CONFIGURE_FLAGS) \
$(DISTCHECK_CONFIGURE_FLAGS) \
+ --srcdir=.. --prefix="$$dc_install_base" \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
diff --git a/NEWS b/NEWS
index 5acc602..bc3a778 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,30 @@
+ModemManager 1.2.0
+-------------------------------------------
+This is a new stable release of ModemManager.
+
+This version comes with the following updates in the interfaces:
+
+ * Signal interface: new interface for extended signal quality information
+ * OMA interface: new interface to expose the Device Management capabilities
+ defined by the Open Mobile Alliance
+ * Messaging interface: new 'Messages' property
+ * Modem interface: new 'Bearers' property
+ * 3GPP interface: new 'SubscriptionState' property
+
+Other notable changes include:
+
+ * QMI: Implemented Manual CDMA activation logic
+ * QMI: Implemented 3GPP2/CDMA SMS support
+ * QMI: Added support for QMI modems in the ZTE, x22x and Cinterion plugins.
+ * Huawei: multiple improvements and fixes for the ^NDISDUP support
+ * Huawei: new mode/switching logic with ^SYSCFGEX for LTE-capable devices
+ * Altair-LTE: set subscription state based on PCO
+ * MediaTek: new 'mtk' plugin added for MediaTek devices
+ * libmm-glib: Added GObject Introspection and Vala support
+ * and many more fixes...
+
+
ModemManager 1.0.0
-------------------------------------------
diff --git a/TODO b/TODO
index 0b51d26..7851551 100644
--- a/TODO
+++ b/TODO
@@ -1,46 +1,4 @@
-
---------------------------------------------------------------------------------
- * Documentation: libmm-glib
-
-libmm-glib should have its own gtk-doc based documentation setup in
-docs/reference. This task involves setting up the gtk-doc build under docs/,
-as well as including all missing gtk-doc comments in the sources.
-
-
---------------------------------------------------------------------------------
- * Documentation: libmm-common
-
-libmm-common is the common library used both by libmm-glib and the ModemManager
-daemon. Some of its bits must be considered internal, like the server-side
-specific code generated by gdbus-codegen; but lots of other bits are to be
-considered public and therefore documented with gtk-doc. This task involves
-setting up the gtk-doc build under docs/, as well as including all missing
-gtk-doc comments in the sources.
-
-
---------------------------------------------------------------------------------
- * Documentation: debugging tips
-
-Provide a section for debugging tips in the ModemManager documentation.
-
-
---------------------------------------------------------------------------------
- * GObject introspection
-
-Either with libmm-common or libmm-glib, we should provide GObject Introspection
-support for the libraries. libmm-glib is just a small layer on top of
-libmm-common, so maybe the introspection can be done at libmm-common level
-directly.
-
-
---------------------------------------------------------------------------------
- * Firmware
-
-ModemManager should implement the Firmware interface if modems allow to change
-firmware on-the-fly.
-
-
--------------------------------------------------------------------------------
* Contacts
@@ -144,8 +102,5 @@ example to update the signal quality value or check registration status.
** QMI: in NAS >= 1.8 we don't have the operator name given in the
registration status queries, we'll need to get it with "NAS Get PLMN Name".
- ** QMI: For the operator ID provisioned in the SIM, should we be using "Get
- Home Network"?
-
** QMI: mark the modem as invalid if we lose the QMI and/or WWAN ports. For
example, we should handle 'sudo rmmod qmi_wwan && sudo modprobe qmi_wwan'
diff --git a/aclocal.m4 b/aclocal.m4
index 9ba7ff1..efaf47e 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,4 +1,4 @@
-# generated automatically by aclocal 1.13.4 -*- Autoconf -*-
+# generated automatically by aclocal 1.14.1 -*- Autoconf -*-
# Copyright (C) 1996-2013 Free Software Foundation, Inc.
@@ -220,6 +220,21 @@ m4_popdef([pkg_default])
m4_popdef([pkg_description])
]) dnl PKG_NOARCH_INSTALLDIR
+
+# PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
+# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+# -------------------------------------------
+# Retrieves the value of the pkg-config variable for the given module.
+AC_DEFUN([PKG_CHECK_VAR],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
+
+_PKG_CONFIG([$1], [variable="][$3]["], [$2])
+AS_VAR_COPY([$1], [pkg_cv_][$1])
+
+AS_VAR_IF([$1], [""], [$5], [$4])dnl
+])# PKG_CHECK_VAR
+
# Copyright (C) 2002-2013 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
@@ -232,10 +247,10 @@ m4_popdef([pkg_description])
# generated from the m4 files accompanying Automake X.Y.
# (This private macro should not be called outside this file.)
AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.13'
+[am__api_version='1.14'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.13.4], [],
+m4_if([$1], [1.14.1], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
@@ -251,7 +266,7 @@ m4_define([_AM_AUTOCONF_VERSION], [])
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.13.4])dnl
+[AM_AUTOMAKE_VERSION([1.14.1])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
@@ -618,6 +633,12 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
# This macro actually does too much. Some checks are only needed if
# your package does certain things. But this isn't really a big deal.
+dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
+m4_define([AC_PROG_CC],
+m4_defn([AC_PROG_CC])
+[_AM_PROG_CC_C_O
+])
+
# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
# AM_INIT_AUTOMAKE([OPTIONS])
# -----------------------------------------------
@@ -726,7 +747,48 @@ dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
AC_CONFIG_COMMANDS_PRE(dnl
[m4_provide_if([_AM_COMPILER_EXEEXT],
[AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
-])
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes. So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+ cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present. This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message. This
+can help us improve future automake versions.
+
+END
+ if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+ echo 'Configuration will proceed anyway, since you have set the' >&2
+ echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+ echo >&2
+ else
+ cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+ AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
+ fi
+fi])
dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
@@ -734,7 +796,6 @@ dnl mangled by Autoconf and run in a shell conditional statement.
m4_define([_AC_COMPILER_EXEEXT],
m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
-
# When config.status generates a header, we must update the stamp-h file.
# This file resides in the same directory as the config header
# that is generated. The stamp files are numbered to have different names.
@@ -882,38 +943,6 @@ AC_MSG_RESULT([$_am_result])
rm -f confinc confmf
])
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_CC_C_O
-# --------------
-# Like AC_PROG_CC_C_O, but changed for automake.
-AC_DEFUN([AM_PROG_CC_C_O],
-[AC_REQUIRE([AC_PROG_CC_C_O])dnl
-AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-AC_REQUIRE_AUX_FILE([compile])dnl
-# FIXME: we rely on the cache variable name because
-# there is no other way.
-set dummy $CC
-am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']`
-eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
-if test "$am_t" != yes; then
- # Losing compiler, so override with the script.
- # FIXME: It is wrong to rewrite CC.
- # But if we don't then we get into trouble of one sort or another.
- # A longer-term fix would be to have automake use am__CC in this case,
- # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
- CC="$am_aux_dir/compile $CC"
-fi
-dnl Make sure AC_PROG_CC is never called again, or it will override our
-dnl setting of CC.
-m4_define([AC_PROG_CC],
- [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])])
-])
-
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
# Copyright (C) 1997-2013 Free Software Foundation, Inc.
@@ -1016,6 +1045,53 @@ AC_DEFUN([_AM_SET_OPTIONS],
AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_PROG_CC_C_O
+# ---------------
+# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC
+# to automatically call this.
+AC_DEFUN([_AM_PROG_CC_C_O],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([compile])dnl
+AC_LANG_PUSH([C])dnl
+AC_CACHE_CHECK(
+ [whether $CC understands -c and -o together],
+ [am_cv_prog_cc_c_o],
+ [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
+ # Make sure it works both with $CC and with simple cc.
+ # Following AC_PROG_CC_C_O, we do the test twice because some
+ # compilers refuse to overwrite an existing .o file with -o,
+ # though they will create one.
+ am_cv_prog_cc_c_o=yes
+ for am_i in 1 2; do
+ if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
+ && test -f conftest2.$ac_objext; then
+ : OK
+ else
+ am_cv_prog_cc_c_o=no
+ break
+ fi
+ done
+ rm -f core conftest*
+ unset am_i])
+if test "$am_cv_prog_cc_c_o" != yes; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+AC_LANG_POP([C])])
+
+# For backward compatibility.
+AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
+
# Copyright (C) 2001-2013 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
@@ -1360,6 +1436,7 @@ m4_include([m4/gtk-doc.m4])
m4_include([m4/iconv.m4])
m4_include([m4/intlmacosx.m4])
m4_include([m4/intltool.m4])
+m4_include([m4/introspection.m4])
m4_include([m4/lib-ld.m4])
m4_include([m4/lib-link.m4])
m4_include([m4/lib-prefix.m4])
@@ -1371,3 +1448,4 @@ m4_include([m4/lt~obsolete.m4])
m4_include([m4/nls.m4])
m4_include([m4/po.m4])
m4_include([m4/progtest.m4])
+m4_include([m4/vapigen.m4])
diff --git a/build-aux/Makefile.in b/build-aux/Makefile.in
index 349c930..cf43ae5 100644
--- a/build-aux/Makefile.in
+++ b/build-aux/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -83,12 +83,13 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \
$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
- $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
- $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/introspection.m4 \
+ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
@@ -175,6 +176,14 @@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
@@ -241,6 +250,9 @@ STRIP = @STRIP@
SYSTEMD_UNIT_DIR = @SYSTEMD_UNIT_DIR@
UDEV_BASE_DIR = @UDEV_BASE_DIR@
USE_NLS = @USE_NLS@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
diff --git a/cli/Makefile.am b/cli/Makefile.am
index 12126ec..1bb2a8d 100644
--- a/cli/Makefile.am
+++ b/cli/Makefile.am
@@ -23,6 +23,8 @@ mmcli_SOURCES = \
mmcli-modem-messaging.c \
mmcli-modem-time.c \
mmcli-modem-firmware.c \
+ mmcli-modem-signal.c \
+ mmcli-modem-oma.c \
mmcli-bearer.c \
mmcli-sim.c \
mmcli-sms.c
diff --git a/cli/Makefile.in b/cli/Makefile.in
index 23ba8ee..2c3caa4 100644
--- a/cli/Makefile.in
+++ b/cli/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -86,12 +86,13 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \
$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
- $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
- $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/introspection.m4 \
+ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
@@ -110,8 +111,9 @@ am_mmcli_OBJECTS = mmcli-mmcli.$(OBJEXT) mmcli-mmcli-common.$(OBJEXT) \
mmcli-mmcli-modem-messaging.$(OBJEXT) \
mmcli-mmcli-modem-time.$(OBJEXT) \
mmcli-mmcli-modem-firmware.$(OBJEXT) \
- mmcli-mmcli-bearer.$(OBJEXT) mmcli-mmcli-sim.$(OBJEXT) \
- mmcli-mmcli-sms.$(OBJEXT)
+ mmcli-mmcli-modem-signal.$(OBJEXT) \
+ mmcli-mmcli-modem-oma.$(OBJEXT) mmcli-mmcli-bearer.$(OBJEXT) \
+ mmcli-mmcli-sim.$(OBJEXT) mmcli-mmcli-sms.$(OBJEXT)
mmcli_OBJECTS = $(am_mmcli_OBJECTS)
am__DEPENDENCIES_1 =
mmcli_DEPENDENCIES = $(am__DEPENDENCIES_1) \
@@ -239,6 +241,14 @@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
@@ -305,6 +315,9 @@ STRIP = @STRIP@
SYSTEMD_UNIT_DIR = @SYSTEMD_UNIT_DIR@
UDEV_BASE_DIR = @UDEV_BASE_DIR@
USE_NLS = @USE_NLS@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
@@ -386,6 +399,8 @@ mmcli_SOURCES = \
mmcli-modem-messaging.c \
mmcli-modem-time.c \
mmcli-modem-firmware.c \
+ mmcli-modem-signal.c \
+ mmcli-modem-oma.c \
mmcli-bearer.c \
mmcli-sim.c \
mmcli-sms.c
@@ -496,6 +511,8 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmcli-mmcli-modem-firmware.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmcli-mmcli-modem-location.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmcli-mmcli-modem-messaging.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmcli-mmcli-modem-oma.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmcli-mmcli-modem-signal.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmcli-mmcli-modem-simple.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmcli-mmcli-modem-time.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmcli-mmcli-modem.Po@am__quote@
@@ -681,6 +698,34 @@ mmcli-mmcli-modem-firmware.obj: mmcli-modem-firmware.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmcli_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmcli-mmcli-modem-firmware.obj `if test -f 'mmcli-modem-firmware.c'; then $(CYGPATH_W) 'mmcli-modem-firmware.c'; else $(CYGPATH_W) '$(srcdir)/mmcli-modem-firmware.c'; fi`
+mmcli-mmcli-modem-signal.o: mmcli-modem-signal.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmcli_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmcli-mmcli-modem-signal.o -MD -MP -MF $(DEPDIR)/mmcli-mmcli-modem-signal.Tpo -c -o mmcli-mmcli-modem-signal.o `test -f 'mmcli-modem-signal.c' || echo '$(srcdir)/'`mmcli-modem-signal.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mmcli-mmcli-modem-signal.Tpo $(DEPDIR)/mmcli-mmcli-modem-signal.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmcli-modem-signal.c' object='mmcli-mmcli-modem-signal.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmcli_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmcli-mmcli-modem-signal.o `test -f 'mmcli-modem-signal.c' || echo '$(srcdir)/'`mmcli-modem-signal.c
+
+mmcli-mmcli-modem-signal.obj: mmcli-modem-signal.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmcli_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmcli-mmcli-modem-signal.obj -MD -MP -MF $(DEPDIR)/mmcli-mmcli-modem-signal.Tpo -c -o mmcli-mmcli-modem-signal.obj `if test -f 'mmcli-modem-signal.c'; then $(CYGPATH_W) 'mmcli-modem-signal.c'; else $(CYGPATH_W) '$(srcdir)/mmcli-modem-signal.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mmcli-mmcli-modem-signal.Tpo $(DEPDIR)/mmcli-mmcli-modem-signal.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmcli-modem-signal.c' object='mmcli-mmcli-modem-signal.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmcli_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmcli-mmcli-modem-signal.obj `if test -f 'mmcli-modem-signal.c'; then $(CYGPATH_W) 'mmcli-modem-signal.c'; else $(CYGPATH_W) '$(srcdir)/mmcli-modem-signal.c'; fi`
+
+mmcli-mmcli-modem-oma.o: mmcli-modem-oma.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmcli_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmcli-mmcli-modem-oma.o -MD -MP -MF $(DEPDIR)/mmcli-mmcli-modem-oma.Tpo -c -o mmcli-mmcli-modem-oma.o `test -f 'mmcli-modem-oma.c' || echo '$(srcdir)/'`mmcli-modem-oma.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mmcli-mmcli-modem-oma.Tpo $(DEPDIR)/mmcli-mmcli-modem-oma.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmcli-modem-oma.c' object='mmcli-mmcli-modem-oma.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmcli_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmcli-mmcli-modem-oma.o `test -f 'mmcli-modem-oma.c' || echo '$(srcdir)/'`mmcli-modem-oma.c
+
+mmcli-mmcli-modem-oma.obj: mmcli-modem-oma.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmcli_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmcli-mmcli-modem-oma.obj -MD -MP -MF $(DEPDIR)/mmcli-mmcli-modem-oma.Tpo -c -o mmcli-mmcli-modem-oma.obj `if test -f 'mmcli-modem-oma.c'; then $(CYGPATH_W) 'mmcli-modem-oma.c'; else $(CYGPATH_W) '$(srcdir)/mmcli-modem-oma.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mmcli-mmcli-modem-oma.Tpo $(DEPDIR)/mmcli-mmcli-modem-oma.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmcli-modem-oma.c' object='mmcli-mmcli-modem-oma.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmcli_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmcli-mmcli-modem-oma.obj `if test -f 'mmcli-modem-oma.c'; then $(CYGPATH_W) 'mmcli-modem-oma.c'; else $(CYGPATH_W) '$(srcdir)/mmcli-modem-oma.c'; fi`
+
mmcli-mmcli-bearer.o: mmcli-bearer.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmcli_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmcli-mmcli-bearer.o -MD -MP -MF $(DEPDIR)/mmcli-mmcli-bearer.Tpo -c -o mmcli-mmcli-bearer.o `test -f 'mmcli-bearer.c' || echo '$(srcdir)/'`mmcli-bearer.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mmcli-mmcli-bearer.Tpo $(DEPDIR)/mmcli-mmcli-bearer.Po
diff --git a/cli/mmcli-common.c b/cli/mmcli-common.c
index 016d8bc..f7182d5 100644
--- a/cli/mmcli-common.c
+++ b/cli/mmcli-common.c
@@ -476,7 +476,7 @@ mmcli_get_bearer (GDBusConnection *connection,
ctx->result = g_simple_async_result_new (G_OBJECT (connection),
callback,
user_data,
- mmcli_get_modem);
+ mmcli_get_bearer);
mmcli_get_manager (connection,
cancellable,
(GAsyncReadyCallback)get_bearer_manager_ready,
@@ -714,7 +714,7 @@ mmcli_get_sim (GDBusConnection *connection,
ctx->result = g_simple_async_result_new (G_OBJECT (connection),
callback,
user_data,
- mmcli_get_modem);
+ mmcli_get_sim);
mmcli_get_manager (connection,
cancellable,
(GAsyncReadyCallback)get_sim_manager_ready,
@@ -977,7 +977,7 @@ mmcli_get_sms (GDBusConnection *connection,
ctx->result = g_simple_async_result_new (G_OBJECT (connection),
callback,
user_data,
- mmcli_get_modem);
+ mmcli_get_sms);
mmcli_get_manager (connection,
cancellable,
(GAsyncReadyCallback)get_sms_manager_ready,
diff --git a/cli/mmcli-modem-3gpp.c b/cli/mmcli-modem-3gpp.c
index f88ce62..5b745eb 100644
--- a/cli/mmcli-modem-3gpp.c
+++ b/cli/mmcli-modem-3gpp.c
@@ -76,7 +76,7 @@ static GOptionEntry entries[] = {
"[command]"
},
{ "3gpp-ussd-respond", 0, 0, G_OPTION_ARG_STRING, &ussd_respond_str,
- "Request a given modem to initiate a USSD session",
+ "Request a given modem to respond to a USSD request",
"[response]"
},
{ "3gpp-ussd-cancel", 0, 0, G_OPTION_ARG_NONE, &ussd_cancel_flag,
diff --git a/cli/mmcli-modem-cdma.c b/cli/mmcli-modem-cdma.c
index 8841f7e..1fc077e 100644
--- a/cli/mmcli-modem-cdma.c
+++ b/cli/mmcli-modem-cdma.c
@@ -45,12 +45,22 @@ static Context *ctx;
/* Options */
static gchar *activate_str;
+static gchar *activate_manual_str;
+static gchar *activate_manual_with_prl_str;
static GOptionEntry entries[] = {
{ "cdma-activate", 0, 0, G_OPTION_ARG_STRING, &activate_str,
"Provision the modem to use with a given carrier using OTA settings.",
"[CARRIER]"
},
+ { "cdma-activate-manual", 0, 0, G_OPTION_ARG_STRING, &activate_manual_str,
+ "Provision the modem with the given settings. 'spc', 'sid', 'mdn' and 'min' are mandatory, 'mn-ha-key' and 'mn-aaa-key' are optional.",
+ "[\"key=value,...\"]"
+ },
+ { "cdma-activate-manual-with-prl", 0, 0, G_OPTION_ARG_STRING, &activate_manual_with_prl_str,
+ "Use the given file contents as data for the PRL.",
+ "[File path]"
+ },
{ NULL }
};
@@ -78,13 +88,20 @@ mmcli_modem_cdma_options_enabled (void)
if (checked)
return !!n_actions;
- n_actions = (!!activate_str);
+ n_actions = (!!activate_str +
+ !!activate_manual_str);
if (n_actions > 1) {
g_printerr ("error: too many CDMA actions requested\n");
exit (EXIT_FAILURE);
}
+ if (activate_manual_with_prl_str && !activate_manual_str) {
+ g_printerr ("error: `--cdma-activate-manual-with-prl' must be given along "
+ "with `--cdma-activate-manual'\n");
+ exit (EXIT_FAILURE);
+ }
+
checked = TRUE;
return !!n_actions;
}
@@ -156,6 +173,81 @@ activate_ready (MMModemCdma *modem_cdma,
}
static void
+activate_manual_process_reply (gboolean result,
+ const GError *error)
+{
+ if (!result) {
+ g_printerr ("error: couldn't manually activate the modem: '%s'\n",
+ error ? error->message : "unknown error");
+ exit (EXIT_FAILURE);
+ }
+
+ g_print ("successfully activated the modem manually\n");
+}
+
+static void
+activate_manual_ready (MMModemCdma *modem_cdma,
+ GAsyncResult *result,
+ gpointer nothing)
+{
+ gboolean operation_result;
+ GError *error = NULL;
+
+ operation_result = mm_modem_cdma_activate_manual_finish (modem_cdma, result, &error);
+ activate_manual_process_reply (operation_result, error);
+
+ mmcli_async_operation_done ();
+}
+
+static MMCdmaManualActivationProperties *
+build_activate_manual_properties_from_input (const gchar *properties_string,
+ const gchar *prl_file)
+{
+ GError *error = NULL;
+ MMCdmaManualActivationProperties *properties;
+
+ properties = mm_cdma_manual_activation_properties_new_from_string (properties_string, &error);
+
+ if (!properties) {
+ g_printerr ("error: cannot parse properties string: '%s'\n", error->message);
+ exit (EXIT_FAILURE);
+ }
+
+ if (prl_file) {
+ gchar *path;
+ GFile *file;
+ gchar *contents;
+ gsize contents_size;
+
+ g_debug ("Reading data from file '%s'", prl_file);
+
+ file = g_file_new_for_commandline_arg (prl_file);
+ path = g_file_get_path (file);
+ if (!g_file_get_contents (path,
+ &contents,
+ &contents_size,
+ &error)) {
+ g_printerr ("error: cannot read from file '%s': '%s'\n",
+ prl_file, error->message);
+ exit (EXIT_FAILURE);
+ }
+ g_free (path);
+ g_object_unref (file);
+
+ if (!mm_cdma_manual_activation_properties_set_prl (properties,
+ (guint8 *)contents,
+ contents_size,
+ &error)) {
+ g_printerr ("error: cannot set PRL: '%s'\n", error->message);
+ exit (EXIT_FAILURE);
+ }
+ g_free (contents);
+ }
+
+ return properties;
+}
+
+static void
get_modem_ready (GObject *source,
GAsyncResult *result,
gpointer none)
@@ -180,6 +272,23 @@ get_modem_ready (GObject *source,
return;
}
+ /* Request to manually activate the modem? */
+ if (activate_manual_str) {
+ MMCdmaManualActivationProperties *properties;
+
+ properties = build_activate_manual_properties_from_input (activate_manual_str,
+ activate_manual_with_prl_str);
+
+ g_debug ("Asynchronously manually activating the modem...");
+ mm_modem_cdma_activate_manual (ctx->modem_cdma,
+ properties,
+ ctx->cancellable,
+ (GAsyncReadyCallback)activate_manual_ready,
+ NULL);
+ g_object_unref (properties);
+ return;
+ }
+
g_warn_if_reached ();
}
@@ -232,5 +341,24 @@ mmcli_modem_cdma_run_synchronous (GDBusConnection *connection)
return;
}
+ /* Request to manually activate the modem? */
+ if (activate_manual_str) {
+ MMCdmaManualActivationProperties *properties;
+ gboolean result;
+
+ properties = build_activate_manual_properties_from_input (activate_manual_str,
+ activate_manual_with_prl_str);
+
+ g_debug ("Synchronously manually activating the modem...");
+ result = mm_modem_cdma_activate_manual_sync (
+ ctx->modem_cdma,
+ properties,
+ NULL,
+ &error);
+ activate_manual_process_reply (result, error);
+ g_object_unref (properties);
+ return;
+ }
+
g_warn_if_reached ();
}
diff --git a/cli/mmcli-modem-messaging.c b/cli/mmcli-modem-messaging.c
index 75cb41a..381aca1 100644
--- a/cli/mmcli-modem-messaging.c
+++ b/cli/mmcli-modem-messaging.c
@@ -36,6 +36,7 @@
/* Context */
typedef struct {
+ GDBusConnection *connection;
MMManager *manager;
GCancellable *cancellable;
MMObject *object;
@@ -69,7 +70,7 @@ static GOptionEntry entries[] = {
},
{ "messaging-delete-sms", 0, 0, G_OPTION_ARG_STRING, &delete_str,
"Delete a SMS from a given modem",
- "[PATH]"
+ "[PATH|INDEX]"
},
{ NULL }
};
@@ -135,6 +136,8 @@ context_free (Context *ctx)
g_object_unref (ctx->object);
if (ctx->manager)
g_object_unref (ctx->manager);
+ if (ctx->connection)
+ g_object_unref (ctx->connection);
g_free (ctx);
}
@@ -336,6 +339,30 @@ delete_ready (MMModemMessaging *modem,
}
static void
+get_sms_to_delete_ready (GDBusConnection *connection,
+ GAsyncResult *res)
+{
+ MMSms *sms;
+ MMObject *obj = NULL;
+
+ sms = mmcli_get_sms_finish (res, NULL, &obj);
+ if (!g_str_equal (mm_object_get_path (obj), mm_modem_messaging_get_path (ctx->modem_messaging))) {
+ g_printerr ("error: SMS '%s' not owned by modem '%s'",
+ mm_sms_get_path (sms),
+ mm_modem_messaging_get_path (ctx->modem_messaging));
+ exit (EXIT_FAILURE);
+ }
+
+ mm_modem_messaging_delete (ctx->modem_messaging,
+ mm_sms_get_path (sms),
+ ctx->cancellable,
+ (GAsyncReadyCallback)delete_ready,
+ NULL);
+ g_object_unref (sms);
+ g_object_unref (obj);
+}
+
+static void
get_modem_ready (GObject *source,
GAsyncResult *result,
gpointer none)
@@ -380,11 +407,11 @@ get_modem_ready (GObject *source,
/* Request to delete a given SMS? */
if (delete_str) {
- mm_modem_messaging_delete (ctx->modem_messaging,
- delete_str,
- ctx->cancellable,
- (GAsyncReadyCallback)delete_ready,
- NULL);
+ mmcli_get_sms (ctx->connection,
+ delete_str,
+ ctx->cancellable,
+ (GAsyncReadyCallback)get_sms_to_delete_ready,
+ NULL);
return;
}
@@ -399,6 +426,7 @@ mmcli_modem_messaging_run_asynchronous (GDBusConnection *connection,
ctx = g_new0 (Context, 1);
if (cancellable)
ctx->cancellable = g_object_ref (cancellable);
+ ctx->connection = g_object_ref (connection);
/* Get proper modem */
mmcli_get_modem (connection,
@@ -465,11 +493,26 @@ mmcli_modem_messaging_run_synchronous (GDBusConnection *connection)
/* Request to delete a given SMS? */
if (delete_str) {
gboolean result;
+ MMSms *sms;
+ MMObject *obj = NULL;
+
+ sms = mmcli_get_sms_sync (connection,
+ delete_str,
+ NULL,
+ &obj);
+ if (!g_str_equal (mm_object_get_path (obj), mm_modem_messaging_get_path (ctx->modem_messaging))) {
+ g_printerr ("error: SMS '%s' not owned by modem '%s'",
+ mm_sms_get_path (sms),
+ mm_modem_messaging_get_path (ctx->modem_messaging));
+ exit (EXIT_FAILURE);
+ }
result = mm_modem_messaging_delete_sync (ctx->modem_messaging,
- delete_str,
+ mm_sms_get_path (sms),
NULL,
&error);
+ g_object_unref (sms);
+ g_object_unref (obj);
delete_process_reply (result, error);
return;
diff --git a/cli/mmcli-modem-oma.c b/cli/mmcli-modem-oma.c
new file mode 100644
index 0000000..a06eaa3
--- /dev/null
+++ b/cli/mmcli-modem-oma.c
@@ -0,0 +1,521 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * mmcli -- Control modem status & access information from the command line
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Copyright (C) 2013 Google, Inc.
+ */
+
+#include "config.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <locale.h>
+#include <string.h>
+
+#include <glib.h>
+#include <gio/gio.h>
+
+#define _LIBMM_INSIDE_MMCLI
+#include <libmm-glib.h>
+
+#include "mmcli.h"
+#include "mmcli-common.h"
+
+/* Context */
+typedef struct {
+ MMManager *manager;
+ GCancellable *cancellable;
+ MMObject *object;
+ MMModemOma *modem_oma;
+} Context;
+static Context *ctx;
+
+/* Options */
+static gboolean status_flag;
+static gchar *setup_str;
+static gchar *start_str;
+static gchar *accept_str;
+static gchar *reject_str;
+static gboolean cancel_flag;
+
+static GOptionEntry entries[] = {
+ { "oma-status", 0, 0, G_OPTION_ARG_NONE, &status_flag,
+ "Current status of the OMA device management",
+ NULL
+ },
+ { "oma-setup", 0, 0, G_OPTION_ARG_STRING, &setup_str,
+ "Setup OMA features",
+ "[FEATURE1|FEATURE2...]"
+ },
+ { "oma-start-client-initiated-session", 0, 0, G_OPTION_ARG_STRING, &start_str,
+ "Start client initiated OMA DM session",
+ "[Session type]"
+ },
+ { "oma-accept-network-initiated-session", 0, 0, G_OPTION_ARG_STRING, &accept_str,
+ "Accept network initiated OMA DM session",
+ "[Session ID]"
+ },
+ { "oma-reject-network-initiated-session", 0, 0, G_OPTION_ARG_STRING, &reject_str,
+ "Reject network initiated OMA DM session",
+ "[Session ID]"
+ },
+ { "oma-cancel-session", 0, 0, G_OPTION_ARG_NONE, &cancel_flag,
+ "Cancel current OMA DM session",
+ NULL
+ },
+
+ { NULL }
+};
+
+GOptionGroup *
+mmcli_modem_oma_get_option_group (void)
+{
+ GOptionGroup *group;
+
+ group = g_option_group_new ("oma",
+ "OMA options",
+ "Show OMA options",
+ NULL,
+ NULL);
+ g_option_group_add_entries (group, entries);
+
+ return group;
+}
+
+gboolean
+mmcli_modem_oma_options_enabled (void)
+{
+ static guint n_actions = 0;
+ static gboolean checked = FALSE;
+
+ if (checked)
+ return !!n_actions;
+
+ n_actions = (status_flag +
+ !!setup_str +
+ !!start_str +
+ !!accept_str +
+ !!reject_str +
+ cancel_flag);
+
+ if (n_actions > 1) {
+ g_printerr ("error: too many OMA actions requested\n");
+ exit (EXIT_FAILURE);
+ }
+
+ if (status_flag)
+ mmcli_force_sync_operation ();
+
+ checked = TRUE;
+ return !!n_actions;
+}
+
+static void
+context_free (Context *ctx)
+{
+ if (!ctx)
+ return;
+
+ if (ctx->cancellable)
+ g_object_unref (ctx->cancellable);
+ if (ctx->modem_oma)
+ g_object_unref (ctx->modem_oma);
+ if (ctx->object)
+ g_object_unref (ctx->object);
+ if (ctx->manager)
+ g_object_unref (ctx->manager);
+ g_free (ctx);
+}
+
+static void
+ensure_modem_oma (void)
+{
+ if (!ctx->modem_oma) {
+ g_printerr ("error: modem has no OMA capabilities\n");
+ exit (EXIT_FAILURE);
+ }
+
+ /* Success */
+}
+
+void
+mmcli_modem_oma_shutdown (void)
+{
+ context_free (ctx);
+}
+
+static void
+print_oma_status (void)
+{
+ gchar *features_str;
+ const MMOmaPendingNetworkInitiatedSession *pending_sessions;
+ guint n_pending_sessions;
+
+#undef VALIDATE_UNKNOWN
+#define VALIDATE_UNKNOWN(str) (str ? str : "unknown")
+
+ features_str = mm_oma_feature_build_string_from_mask (mm_modem_oma_get_features (ctx->modem_oma));
+
+ /* Global IDs */
+ g_print ("\n"
+ "%s\n",
+ VALIDATE_UNKNOWN (mm_modem_oma_get_path (ctx->modem_oma)));
+
+ /* Overall setup */
+ g_print (" -------------------------\n"
+ " Setup | features: '%s'\n",
+ VALIDATE_UNKNOWN (features_str));
+
+ /* Current session */
+ if (mm_modem_oma_get_session_type (ctx->modem_oma) != MM_OMA_SESSION_TYPE_UNKNOWN) {
+ g_print (" -------------------------\n"
+ " Current session | type: '%s'\n"
+ " | state: '%s'\n",
+ VALIDATE_UNKNOWN (mm_oma_session_type_get_string (mm_modem_oma_get_session_type (ctx->modem_oma))),
+ VALIDATE_UNKNOWN (mm_oma_session_state_get_string (mm_modem_oma_get_session_state (ctx->modem_oma))));
+ }
+
+ /* If 1 or more pending sessions... */
+ if (mm_modem_peek_pending_network_initiated_sessions (ctx->modem_oma, &pending_sessions, &n_pending_sessions) &&
+ n_pending_sessions > 0) {
+ guint i;
+
+ g_print (" -------------------------\n"
+ " Pending sessions |\n");
+ for (i = 0; i < n_pending_sessions; i++) {
+ g_print (" [%u] | type: '%s'\n"
+ " | id: '%u'\n",
+ i,
+ VALIDATE_UNKNOWN (mm_oma_session_type_get_string (pending_sessions[i].session_type)),
+ pending_sessions[i].session_id);
+ }
+ }
+
+ g_free (features_str);
+}
+
+static void
+setup_process_reply (gboolean result,
+ const GError *error)
+{
+ if (!result) {
+ g_printerr ("error: couldn't setup OMA features: '%s'\n",
+ error ? error->message : "unknown error");
+ exit (EXIT_FAILURE);
+ }
+
+ g_print ("Successfully setup OMA features\n");
+}
+
+static void
+setup_ready (MMModemOma *modem,
+ GAsyncResult *result)
+{
+ gboolean res;
+ GError *error = NULL;
+
+ res = mm_modem_oma_setup_finish (modem, result, &error);
+ setup_process_reply (res, error);
+
+ mmcli_async_operation_done ();
+}
+
+static void
+start_process_reply (gboolean result,
+ const GError *error)
+{
+ if (!result) {
+ g_printerr ("error: couldn't start OMA session: '%s'\n",
+ error ? error->message : "unknown error");
+ exit (EXIT_FAILURE);
+ }
+
+ g_print ("Successfully started OMA session\n");
+}
+
+static void
+start_ready (MMModemOma *modem,
+ GAsyncResult *result)
+{
+ gboolean res;
+ GError *error = NULL;
+
+ res = mm_modem_oma_start_client_initiated_session_finish (modem, result, &error);
+ start_process_reply (res, error);
+
+ mmcli_async_operation_done ();
+}
+
+static void
+accept_process_reply (gboolean result,
+ const GError *error)
+{
+ if (!result) {
+ g_printerr ("error: couldn't %s OMA session: '%s'\n",
+ accept_str ? "accept" : "reject",
+ error ? error->message : "unknown error");
+ exit (EXIT_FAILURE);
+ }
+
+ g_print ("Successfully %s OMA session\n",
+ accept_str ? "accepted" : "rejected");
+}
+
+static void
+accept_ready (MMModemOma *modem,
+ GAsyncResult *result)
+{
+ gboolean res;
+ GError *error = NULL;
+
+ res = mm_modem_oma_accept_network_initiated_session_finish (modem, result, &error);
+ accept_process_reply (res, error);
+
+ mmcli_async_operation_done ();
+}
+
+static void
+cancel_process_reply (gboolean result,
+ const GError *error)
+{
+ if (!result) {
+ g_printerr ("error: couldn't cancel OMA session: '%s'\n",
+ error ? error->message : "unknown error");
+ exit (EXIT_FAILURE);
+ }
+
+ g_print ("Successfully cancelled OMA session\n");
+}
+
+static void
+cancel_ready (MMModemOma *modem,
+ GAsyncResult *result)
+{
+ gboolean res;
+ GError *error = NULL;
+
+ res = mm_modem_oma_cancel_session_finish (modem, result, &error);
+ cancel_process_reply (res, error);
+
+ mmcli_async_operation_done ();
+}
+
+static void
+get_modem_ready (GObject *source,
+ GAsyncResult *result)
+{
+ ctx->object = mmcli_get_modem_finish (result, &ctx->manager);
+ ctx->modem_oma = mm_object_get_modem_oma (ctx->object);
+
+ /* Setup operation timeout */
+ if (ctx->modem_oma)
+ mmcli_force_operation_timeout (G_DBUS_PROXY (ctx->modem_oma));
+
+ ensure_modem_oma ();
+
+ g_assert (!status_flag);
+
+ /* Request to setup OMA features? */
+ if (setup_str) {
+ GError *error = NULL;
+ MMOmaFeature features;
+
+ features = mm_common_get_oma_features_from_string (setup_str, &error);
+ if (error) {
+ g_printerr ("Error parsing OMA features string: '%s'\n", error->message);
+ exit (EXIT_FAILURE);
+ }
+
+ g_debug ("Asynchronously setting up OMA features...");
+ mm_modem_oma_setup (ctx->modem_oma,
+ features,
+ ctx->cancellable,
+ (GAsyncReadyCallback)setup_ready,
+ NULL);
+ return;
+ }
+
+ /* Request to start session? */
+ if (start_str) {
+ GError *error = NULL;
+ MMOmaSessionType session_type;
+
+ session_type = mm_common_get_oma_session_type_from_string (start_str, &error);
+ if (error) {
+ g_printerr ("Error parsing OMA session type string: '%s'\n", error->message);
+ exit (EXIT_FAILURE);
+ }
+
+ g_debug ("Asynchronously starting OMA session...");
+ mm_modem_oma_start_client_initiated_session (ctx->modem_oma,
+ session_type,
+ ctx->cancellable,
+ (GAsyncReadyCallback)start_ready,
+ NULL);
+ return;
+ }
+
+ /* Request to accept or reject session? */
+ if (accept_str || reject_str) {
+ guint session_id;
+
+ if (!mm_get_uint_from_str (accept_str ? accept_str : reject_str, &session_id)) {
+ g_printerr ("Error parsing OMA session id string: not a number");
+ exit (EXIT_FAILURE);
+ }
+
+ g_debug ("Asynchronously %s OMA session...", accept_str ? "accepting" : "rejecting");
+ mm_modem_oma_accept_network_initiated_session (ctx->modem_oma,
+ session_id,
+ !!accept_str,
+ ctx->cancellable,
+ (GAsyncReadyCallback)accept_ready,
+ NULL);
+ return;
+ }
+
+ /* Request to cancel a session? */
+ if (cancel_flag) {
+ g_debug ("Asynchronously cancelling OMA session...");
+ mm_modem_oma_cancel_session (ctx->modem_oma,
+ ctx->cancellable,
+ (GAsyncReadyCallback)cancel_ready,
+ NULL);
+ return;
+ }
+
+ g_warn_if_reached ();
+}
+
+void
+mmcli_modem_oma_run_asynchronous (GDBusConnection *connection,
+ GCancellable *cancellable)
+{
+ /* Initialize context */
+ ctx = g_new0 (Context, 1);
+ if (cancellable)
+ ctx->cancellable = g_object_ref (cancellable);
+
+ /* Get proper modem */
+ mmcli_get_modem (connection,
+ mmcli_get_common_modem_string (),
+ cancellable,
+ (GAsyncReadyCallback)get_modem_ready,
+ NULL);
+}
+
+void
+mmcli_modem_oma_run_synchronous (GDBusConnection *connection)
+{
+ GError *error = NULL;
+
+ /* Initialize context */
+ ctx = g_new0 (Context, 1);
+ ctx->object = mmcli_get_modem_sync (connection,
+ mmcli_get_common_modem_string (),
+ &ctx->manager);
+ ctx->modem_oma = mm_object_get_modem_oma (ctx->object);
+
+ /* Setup operation timeout */
+ if (ctx->modem_oma)
+ mmcli_force_operation_timeout (G_DBUS_PROXY (ctx->modem_oma));
+
+ ensure_modem_oma ();
+
+ /* Request to get status? */
+ if (status_flag) {
+ g_debug ("Printing OMA status...");
+ print_oma_status ();
+ return;
+ }
+
+ /* Request to setup OMA features? */
+ if (setup_str) {
+ gboolean result;
+ GError *error = NULL;
+ MMOmaFeature features;
+
+ features = mm_common_get_oma_features_from_string (setup_str, &error);
+ if (error) {
+ g_printerr ("Error parsing OMA features string: '%s'\n", error->message);
+ exit (EXIT_FAILURE);
+ }
+
+ g_debug ("Synchronously setting up OMA features...");
+ result = mm_modem_oma_setup_sync (ctx->modem_oma,
+ features,
+ NULL,
+ &error);
+ setup_process_reply (result, error);
+ return;
+ }
+
+ /* Request to start session? */
+ if (start_str) {
+ gboolean result;
+ GError *error = NULL;
+ MMOmaSessionType session_type;
+
+ session_type = mm_common_get_oma_session_type_from_string (start_str, &error);
+ if (error) {
+ g_printerr ("Error parsing OMA session type string: '%s'\n", error->message);
+ exit (EXIT_FAILURE);
+ }
+
+ g_debug ("Synchronously starting OMA session...");
+ result = mm_modem_oma_start_client_initiated_session_sync (ctx->modem_oma,
+ session_type,
+ NULL,
+ &error);
+ start_process_reply (result, error);
+ return;
+ }
+
+ /* Request to accept or reject session? */
+ if (accept_str || reject_str) {
+ gboolean result;
+ GError *error = NULL;
+ guint session_id;
+
+ if (!mm_get_uint_from_str (accept_str ? accept_str : reject_str, &session_id)) {
+ g_printerr ("Error parsing OMA session id string: not a number");
+ exit (EXIT_FAILURE);
+ }
+
+ g_debug ("Synchronously %s OMA session...", accept_str ? "accepting" : "rejecting");
+ result = mm_modem_oma_accept_network_initiated_session_sync (ctx->modem_oma,
+ session_id,
+ !!accept_str,
+ NULL,
+ &error);
+ accept_process_reply (result, error);
+ return;
+ }
+
+ /* Request to cancel a session? */
+ if (cancel_flag) {
+ gboolean result;
+
+ g_debug ("Synchronously cancelling OMA session...");
+ result = mm_modem_oma_cancel_session_sync (ctx->modem_oma,
+ NULL,
+ &error);
+ cancel_process_reply (result, error);
+ return;
+ }
+
+ g_warn_if_reached ();
+}
diff --git a/cli/mmcli-modem-signal.c b/cli/mmcli-modem-signal.c
new file mode 100644
index 0000000..e1def05
--- /dev/null
+++ b/cli/mmcli-modem-signal.c
@@ -0,0 +1,324 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * mmcli -- Control modem status & access information from the command line
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Copyright (C) 2013 Aleksander Morgado <aleksander@gnu.org>
+ */
+
+#include "config.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <locale.h>
+#include <string.h>
+
+#include <glib.h>
+#include <gio/gio.h>
+
+#define _LIBMM_INSIDE_MMCLI
+#include <libmm-glib.h>
+
+#include "mmcli.h"
+#include "mmcli-common.h"
+
+/* Context */
+typedef struct {
+ MMManager *manager;
+ GCancellable *cancellable;
+ MMObject *object;
+ MMModemSignal *modem_signal;
+} Context;
+static Context *ctx;
+
+/* Options */
+static gboolean get_flag;
+static gchar *setup_str;
+
+static GOptionEntry entries[] = {
+ { "signal-setup", 0, 0, G_OPTION_ARG_STRING, &setup_str,
+ "Setup extended signal information retrieval",
+ "[Rate]"
+ },
+ { "signal-get", 0, 0, G_OPTION_ARG_NONE, &get_flag,
+ "Get all extended signal quality information",
+ NULL
+ },
+ { NULL }
+};
+
+GOptionGroup *
+mmcli_modem_signal_get_option_group (void)
+{
+ GOptionGroup *group;
+
+ group = g_option_group_new ("signal",
+ "Signal options",
+ "Show Signal options",
+ NULL,
+ NULL);
+ g_option_group_add_entries (group, entries);
+
+ return group;
+}
+
+gboolean
+mmcli_modem_signal_options_enabled (void)
+{
+ static guint n_actions = 0;
+ static gboolean checked = FALSE;
+
+ if (checked)
+ return !!n_actions;
+
+ n_actions = (!!setup_str +
+ get_flag);
+
+ if (n_actions > 1) {
+ g_printerr ("error: too many Signal actions requested\n");
+ exit (EXIT_FAILURE);
+ }
+
+ if (get_flag)
+ mmcli_force_sync_operation ();
+
+ checked = TRUE;
+ return !!n_actions;
+}
+
+static void
+context_free (Context *ctx)
+{
+ if (!ctx)
+ return;
+
+ if (ctx->cancellable)
+ g_object_unref (ctx->cancellable);
+ if (ctx->modem_signal)
+ g_object_unref (ctx->modem_signal);
+ if (ctx->object)
+ g_object_unref (ctx->object);
+ if (ctx->manager)
+ g_object_unref (ctx->manager);
+ g_free (ctx);
+}
+
+static void
+ensure_modem_signal (void)
+{
+ if (!ctx->modem_signal) {
+ g_printerr ("error: modem has no extended signal capabilities\n");
+ exit (EXIT_FAILURE);
+ }
+
+ /* Success */
+}
+
+void
+mmcli_modem_signal_shutdown (void)
+{
+ context_free (ctx);
+}
+
+static void
+print_signal_info (void)
+{
+ MMSignal *signal;
+
+ g_print ("\n"
+ "%s\n"
+ " -------------------------\n"
+ " Refresh rate: '%u' seconds\n",
+ mm_modem_signal_get_path (ctx->modem_signal),
+ mm_modem_signal_get_rate (ctx->modem_signal));
+
+ /* CDMA */
+ signal = mm_modem_signal_peek_cdma (ctx->modem_signal);
+ if (signal)
+ g_print (" -------------------------\n"
+ " CDMA1x | RSSI: '%.2lf' dBm\n"
+ " | EcIo: '%.2lf' dBm\n",
+ mm_signal_get_rssi (signal),
+ mm_signal_get_ecio (signal));
+
+ /* EVDO */
+ signal = mm_modem_signal_peek_evdo (ctx->modem_signal);
+ if (signal)
+ g_print (" -------------------------\n"
+ " EV-DO | RSSI: '%.2lf' dBm\n"
+ " | EcIo: '%.2lf' dBm\n"
+ " | SINR: '%.2lf' dBm\n"
+ " | Io: '%.2lf' dB\n",
+ mm_signal_get_rssi (signal),
+ mm_signal_get_ecio (signal),
+ mm_signal_get_sinr (signal),
+ mm_signal_get_io (signal));
+
+ /* GSM */
+ signal = mm_modem_signal_peek_gsm (ctx->modem_signal);
+ if (signal)
+ g_print (" -------------------------\n"
+ " GSM | RSSI: '%.2lf' dBm\n",
+ mm_signal_get_rssi (signal));
+
+ /* UMTS */
+ signal = mm_modem_signal_peek_umts (ctx->modem_signal);
+ if (signal)
+ g_print (" -------------------------\n"
+ " UMTS | RSSI: '%.2lf' dBm\n"
+ " | EcIo: '%.2lf' dBm\n",
+ mm_signal_get_rssi (signal),
+ mm_signal_get_ecio (signal));
+
+ /* LTE */
+ signal = mm_modem_signal_peek_lte (ctx->modem_signal);
+ if (signal)
+ g_print (" -------------------------\n"
+ " LTE | RSSI: '%.2lf' dBm\n"
+ " | RSRQ: '%.2lf' dB\n"
+ " | RSRP: '%.2lf' dBm\n"
+ " | SNR: '%.2lf' dB\n",
+ mm_signal_get_rssi (signal),
+ mm_signal_get_rsrq (signal),
+ mm_signal_get_rsrp (signal),
+ mm_signal_get_snr (signal));
+}
+
+static void
+setup_process_reply (gboolean result,
+ const GError *error)
+{
+ if (!result) {
+ g_printerr ("error: couldn't setup extended signal information retrieval: '%s'\n",
+ error ? error->message : "unknown error");
+ exit (EXIT_FAILURE);
+ }
+
+ g_print ("Successfully setup extended signal information retrieval\n");
+}
+
+static void
+setup_ready (MMModemSignal *modem,
+ GAsyncResult *result)
+{
+ gboolean res;
+ GError *error = NULL;
+
+ res = mm_modem_signal_setup_finish (modem, result, &error);
+ setup_process_reply (res, error);
+
+ mmcli_async_operation_done ();
+}
+
+static void
+get_modem_ready (GObject *source,
+ GAsyncResult *result)
+{
+ ctx->object = mmcli_get_modem_finish (result, &ctx->manager);
+ ctx->modem_signal = mm_object_get_modem_signal (ctx->object);
+
+ /* Setup operation timeout */
+ if (ctx->modem_signal)
+ mmcli_force_operation_timeout (G_DBUS_PROXY (ctx->modem_signal));
+
+ ensure_modem_signal ();
+
+ if (get_flag)
+ g_assert_not_reached ();
+
+ /* Request to setup? */
+ if (setup_str) {
+ guint rate;
+
+ if (!mm_get_uint_from_str (setup_str, &rate)) {
+ g_printerr ("error: invalid rate value '%s'", setup_str);
+ exit (EXIT_FAILURE);
+ }
+
+ g_debug ("Asynchronously setting up extended signal quality information retrieval...");
+ mm_modem_signal_setup (ctx->modem_signal,
+ rate,
+ ctx->cancellable,
+ (GAsyncReadyCallback)setup_ready,
+ NULL);
+ return;
+ }
+
+ g_warn_if_reached ();
+}
+
+void
+mmcli_modem_signal_run_asynchronous (GDBusConnection *connection,
+ GCancellable *cancellable)
+{
+ /* Initialize context */
+ ctx = g_new0 (Context, 1);
+ if (cancellable)
+ ctx->cancellable = g_object_ref (cancellable);
+
+ /* Get proper modem */
+ mmcli_get_modem (connection,
+ mmcli_get_common_modem_string (),
+ cancellable,
+ (GAsyncReadyCallback)get_modem_ready,
+ NULL);
+}
+
+void
+mmcli_modem_signal_run_synchronous (GDBusConnection *connection)
+{
+ GError *error = NULL;
+
+ /* Initialize context */
+ ctx = g_new0 (Context, 1);
+ ctx->object = mmcli_get_modem_sync (connection,
+ mmcli_get_common_modem_string (),
+ &ctx->manager);
+ ctx->modem_signal = mm_object_get_modem_signal (ctx->object);
+
+ /* Setup operation timeout */
+ if (ctx->modem_signal)
+ mmcli_force_operation_timeout (G_DBUS_PROXY (ctx->modem_signal));
+
+ ensure_modem_signal ();
+
+ /* Request to get signal info? */
+ if (get_flag) {
+ print_signal_info ();
+ return;
+ }
+
+ /* Request to set rate? */
+ if (setup_str) {
+ guint rate;
+ gboolean result;
+
+ if (!mm_get_uint_from_str (setup_str, &rate)) {
+ g_printerr ("error: invalid rate value '%s'", setup_str);
+ exit (EXIT_FAILURE);
+ }
+
+ g_debug ("Synchronously setting up extended signal quality information retrieval...");
+ result = mm_modem_signal_setup_sync (ctx->modem_signal,
+ rate,
+ NULL,
+ &error);
+ setup_process_reply (result, error);
+ return;
+ }
+
+
+ g_warn_if_reached ();
+}
diff --git a/cli/mmcli-modem-simple.c b/cli/mmcli-modem-simple.c
index 22976a9..7b99792 100644
--- a/cli/mmcli-modem-simple.c
+++ b/cli/mmcli-modem-simple.c
@@ -251,13 +251,16 @@ status_process_reply (MMSimpleStatus *result,
(mm_simple_status_get_3gpp_registration_state (result) ==
MM_MODEM_3GPP_REGISTRATION_STATE_ROAMING)) {
g_print (" -------------------------\n"
- " 3GPP | registration: '%s'\n"
+ " 3GPP | registration: '%s'\n"
" | operator code: '%s'\n"
- " | operator name: '%s'\n",
+ " | operator name: '%s'\n"
+ " | subscription: '%s'\n",
mm_modem_3gpp_registration_state_get_string (
mm_simple_status_get_3gpp_registration_state (result)),
VALIDATE_UNKNOWN (mm_simple_status_get_3gpp_operator_code (result)),
- VALIDATE_UNKNOWN (mm_simple_status_get_3gpp_operator_name (result)));
+ VALIDATE_UNKNOWN (mm_simple_status_get_3gpp_operator_name (result)),
+ mm_modem_3gpp_subscription_state_get_string (
+ mm_simple_status_get_3gpp_subscription_state (result)));
}
if ((mm_simple_status_get_cdma_cdma1x_registration_state (result) !=
@@ -296,8 +299,14 @@ status_process_reply (MMSimpleStatus *result,
g_free (access_tech_str);
g_free (bands_str);
+ } else {
+ g_print (" -------------------------\n"
+ " 3GPP | subscription: '%s'\n",
+ mm_modem_3gpp_subscription_state_get_string (
+ mm_simple_status_get_3gpp_subscription_state (result)));
}
+
g_print ("\n");
g_object_unref (result);
}
diff --git a/cli/mmcli-modem.c b/cli/mmcli-modem.c
index 18e7356..b7e260b 100644
--- a/cli/mmcli-modem.c
+++ b/cli/mmcli-modem.c
@@ -35,6 +35,7 @@
/* Context */
typedef struct {
+ GDBusConnection *connection;
MMManager *manager;
GCancellable *cancellable;
MMObject *object;
@@ -105,7 +106,7 @@ static GOptionEntry entries[] = {
},
{ "delete-bearer", 0, 0, G_OPTION_ARG_STRING, &delete_bearer_str,
"Delete a data bearer from a given modem",
- "[PATH]"
+ "[PATH|INDEX]"
},
{ "set-current-capabilities", 0, 0, G_OPTION_ARG_STRING, &set_current_capabilities_str,
"Set current modem capabilities.",
@@ -214,6 +215,8 @@ context_free (Context *ctx)
g_object_unref (ctx->object);
if (ctx->manager)
g_object_unref (ctx->manager);
+ if (ctx->connection)
+ g_object_unref (ctx->connection);
g_free (ctx);
}
@@ -266,6 +269,7 @@ print_modem_info (void)
MMUnlockRetries *unlock_retries;
guint signal_quality = 0;
gboolean signal_quality_recent = FALSE;
+ gchar *bearer_paths_string;
/* Not the best thing to do, as we may be doing _get() calls twice, but
* easiest to maintain */
@@ -351,6 +355,15 @@ print_modem_info (void)
/* Get signal quality info */
signal_quality = mm_modem_get_signal_quality (ctx->modem, &signal_quality_recent);
+ if (mm_modem_get_bearer_paths (ctx->modem)) {
+ bearer_paths_string = g_strjoinv (", ", (gchar **)mm_modem_get_bearer_paths (ctx->modem));
+ if (!bearer_paths_string[0]) {
+ g_free (bearer_paths_string);
+ bearer_paths_string = NULL;
+ }
+ } else
+ bearer_paths_string = NULL;
+
/* Global IDs */
g_print ("\n"
"%s (device id '%s')\n",
@@ -441,11 +454,14 @@ print_modem_info (void)
" | enabled locks: '%s'\n"
" | operator id: '%s'\n"
" | operator name: '%s'\n"
+ " | subscription: '%s'\n"
" | registration: '%s'\n",
VALIDATE_UNKNOWN (mm_modem_3gpp_get_imei (ctx->modem_3gpp)),
facility_locks,
VALIDATE_UNKNOWN (mm_modem_3gpp_get_operator_code (ctx->modem_3gpp)),
VALIDATE_UNKNOWN (mm_modem_3gpp_get_operator_name (ctx->modem_3gpp)),
+ mm_modem_3gpp_subscription_state_get_string (
+ mm_modem_3gpp_get_subscription_state ((ctx->modem_3gpp))),
mm_modem_3gpp_registration_state_get_string (
mm_modem_3gpp_get_registration_state ((ctx->modem_3gpp))));
@@ -497,6 +513,12 @@ print_modem_info (void)
VALIDATE_PATH (mm_modem_get_sim_path (ctx->modem)));
g_print ("\n");
+ /* Bearers */
+ g_print (" -------------------------\n"
+ " Bearers | paths: '%s'\n",
+ VALIDATE_PATH (bearer_paths_string));
+ g_print ("\n");
+
g_free (ports_string);
g_free (supported_ip_families_string);
g_free (current_bands_string);
@@ -511,6 +533,7 @@ print_modem_info (void)
g_free (unlock_retries_string);
g_free (own_numbers_string);
g_free (drivers_string);
+ g_free (bearer_paths_string);
}
static void
@@ -791,6 +814,30 @@ delete_bearer_ready (MMModem *modem,
}
static void
+get_bearer_to_delete_ready (GDBusConnection *connection,
+ GAsyncResult *res)
+{
+ MMBearer *bearer;
+ MMObject *obj = NULL;
+
+ bearer = mmcli_get_bearer_finish (res, NULL, &obj);
+ if (!g_str_equal (mm_object_get_path (obj), mm_modem_get_path (ctx->modem))) {
+ g_printerr ("error: bearer '%s' not owned by modem '%s'",
+ mm_bearer_get_path (bearer),
+ mm_modem_get_path (ctx->modem));
+ exit (EXIT_FAILURE);
+ }
+
+ mm_modem_delete_bearer (ctx->modem,
+ mm_bearer_get_path (bearer),
+ ctx->cancellable,
+ (GAsyncReadyCallback)delete_bearer_ready,
+ NULL);
+ g_object_unref (bearer);
+ g_object_unref (obj);
+}
+
+static void
set_current_capabilities_process_reply (gboolean result,
const GError *error)
{
@@ -1096,11 +1143,11 @@ get_modem_ready (GObject *source,
/* Request to delete a given bearer? */
if (delete_bearer_str) {
- mm_modem_delete_bearer (ctx->modem,
- delete_bearer_str,
- ctx->cancellable,
- (GAsyncReadyCallback)delete_bearer_ready,
- NULL);
+ mmcli_get_bearer (ctx->connection,
+ delete_bearer_str,
+ ctx->cancellable,
+ (GAsyncReadyCallback)get_bearer_to_delete_ready,
+ NULL);
return;
}
@@ -1159,6 +1206,7 @@ mmcli_modem_run_asynchronous (GDBusConnection *connection,
ctx = g_new0 (Context, 1);
if (cancellable)
ctx->cancellable = g_object_ref (cancellable);
+ ctx->connection = g_object_ref (connection);
/* Get proper modem */
mmcli_get_modem (connection,
@@ -1319,11 +1367,26 @@ mmcli_modem_run_synchronous (GDBusConnection *connection)
/* Request to delete a given bearer? */
if (delete_bearer_str) {
gboolean result;
+ MMBearer *bearer;
+ MMObject *obj = NULL;
+
+ bearer = mmcli_get_bearer_sync (connection,
+ delete_bearer_str,
+ NULL,
+ &obj);
+ if (!g_str_equal (mm_object_get_path (obj), mm_modem_get_path (ctx->modem))) {
+ g_printerr ("error: bearer '%s' not owned by modem '%s'",
+ mm_bearer_get_path (bearer),
+ mm_modem_get_path (ctx->modem));
+ exit (EXIT_FAILURE);
+ }
result = mm_modem_delete_bearer_sync (ctx->modem,
- delete_bearer_str,
+ mm_bearer_get_path (bearer),
NULL,
&error);
+ g_object_unref (bearer);
+ g_object_unref (obj);
delete_bearer_process_reply (result, error);
return;
diff --git a/cli/mmcli-sms.c b/cli/mmcli-sms.c
index 4124f66..c49c8e8 100644
--- a/cli/mmcli-sms.c
+++ b/cli/mmcli-sms.c
@@ -180,42 +180,56 @@ print_sms_info (MMSms *sms)
g_print (" -----------------------------------\n"
" Properties | PDU type: '%s'\n"
- " | state: '%s'\n"
- " | smsc: '%s'\n",
+ " | state: '%s'\n",
mm_sms_pdu_type_get_string (pdu_type),
- mm_sms_state_get_string (mm_sms_get_state (sms)),
- VALIDATE (mm_sms_get_smsc (sms)));
+ mm_sms_state_get_string (mm_sms_get_state (sms)));
if (mm_sms_get_validity_type (sms) == MM_SMS_VALIDITY_TYPE_RELATIVE)
g_print (" | validity (relative): '%u'\n",
mm_sms_get_validity_relative (sms));
- g_print (" | class: '%d'\n"
- " | storage: '%s'\n",
- mm_sms_get_class (sms),
+ g_print (" | storage: '%s'\n",
mm_sms_storage_get_string (mm_sms_get_storage (sms)));
+ /* Print properties which are set, regardless of the pdu type */
+
+ if (mm_sms_get_smsc (sms))
+ g_print (" | smsc: '%s'\n",
+ mm_sms_get_smsc (sms));
+
+ if (mm_sms_get_class (sms) >= 0)
+ g_print (" | class: '%d'\n",
+ mm_sms_get_class (sms));
+
+ if (mm_sms_get_teleservice_id (sms) != MM_SMS_CDMA_TELESERVICE_ID_UNKNOWN)
+ g_print (" | teleservice id: '%s'\n",
+ mm_sms_cdma_teleservice_id_get_string (mm_sms_get_teleservice_id (sms)));
+
+ if (mm_sms_get_service_category (sms) != MM_SMS_CDMA_SERVICE_CATEGORY_UNKNOWN)
+ g_print (" | service category: '%s'\n",
+ mm_sms_cdma_service_category_get_string (mm_sms_get_service_category (sms)));
+
+ /* Delivery report request just in 3GPP submit PDUs */
if (pdu_type == MM_SMS_PDU_TYPE_SUBMIT)
g_print (" | delivery report: '%s'\n",
mm_sms_get_delivery_report_request (sms) ? "requested" : "not requested");
- if (pdu_type == MM_SMS_PDU_TYPE_STATUS_REPORT ||
- pdu_type == MM_SMS_PDU_TYPE_SUBMIT)
+ if (mm_sms_get_message_reference (sms) != 0)
g_print (" | message reference: '%u'\n",
mm_sms_get_message_reference (sms));
- if (pdu_type == MM_SMS_PDU_TYPE_STATUS_REPORT ||
- pdu_type == MM_SMS_PDU_TYPE_DELIVER)
+ if (mm_sms_get_timestamp (sms))
g_print (" | timestamp: '%s'\n",
- VALIDATE (mm_sms_get_timestamp (sms)));
+ mm_sms_get_timestamp (sms));
- if (pdu_type == MM_SMS_PDU_TYPE_STATUS_REPORT) {
+ if (mm_sms_get_delivery_state (sms) != MM_SMS_DELIVERY_STATE_UNKNOWN)
g_print (" | delivery state: '%s' (0x%X)\n",
VALIDATE (mm_sms_delivery_state_get_string_extended (mm_sms_get_delivery_state (sms))),
mm_sms_get_delivery_state (sms));
+
+ if (mm_sms_get_discharge_timestamp (sms))
g_print (" | discharge timestamp: '%s'\n",
- VALIDATE (mm_sms_get_discharge_timestamp (sms)));
- }
+ mm_sms_get_discharge_timestamp (sms));
}
static void
diff --git a/cli/mmcli.c b/cli/mmcli.c
index da68780..aeb1bd4 100644
--- a/cli/mmcli.c
+++ b/cli/mmcli.c
@@ -209,6 +209,10 @@ main (gint argc, gchar **argv)
g_option_context_add_group (context,
mmcli_modem_firmware_get_option_group ());
g_option_context_add_group (context,
+ mmcli_modem_signal_get_option_group ());
+ g_option_context_add_group (context,
+ mmcli_modem_oma_get_option_group ());
+ g_option_context_add_group (context,
mmcli_sim_get_option_group ());
g_option_context_add_group (context,
mmcli_bearer_get_option_group ());
@@ -325,6 +329,20 @@ main (gint argc, gchar **argv)
else
mmcli_modem_firmware_run_synchronous (connection);
}
+ /* Modem Signal options? */
+ else if (mmcli_modem_signal_options_enabled ()) {
+ if (async_flag)
+ mmcli_modem_signal_run_asynchronous (connection, cancellable);
+ else
+ mmcli_modem_signal_run_synchronous (connection);
+ }
+ /* Modem Oma options? */
+ else if (mmcli_modem_oma_options_enabled ()) {
+ if (async_flag)
+ mmcli_modem_oma_run_asynchronous (connection, cancellable);
+ else
+ mmcli_modem_oma_run_synchronous (connection);
+ }
/* Modem options?
* NOTE: let this check be always the last one, as other groups also need
* having a modem specified, and therefore if -m is set, modem options
@@ -361,6 +379,10 @@ main (gint argc, gchar **argv)
mmcli_modem_time_shutdown ();
} else if (mmcli_modem_firmware_options_enabled ()) {
mmcli_modem_firmware_shutdown ();
+ } else if (mmcli_modem_signal_options_enabled ()) {
+ mmcli_modem_signal_shutdown ();
+ } else if (mmcli_modem_oma_options_enabled ()) {
+ mmcli_modem_oma_shutdown ();
} else if (mmcli_sim_options_enabled ()) {
mmcli_sim_shutdown ();
} else if (mmcli_bearer_options_enabled ()) {
diff --git a/cli/mmcli.h b/cli/mmcli.h
index 5243969..6b7b553 100644
--- a/cli/mmcli.h
+++ b/cli/mmcli.h
@@ -101,6 +101,22 @@ void mmcli_modem_firmware_run_asynchronous (GDBusConnection *connecti
void mmcli_modem_firmware_run_synchronous (GDBusConnection *connection);
void mmcli_modem_firmware_shutdown (void);
+/* Signal group */
+GOptionGroup *mmcli_modem_signal_get_option_group (void);
+gboolean mmcli_modem_signal_options_enabled (void);
+void mmcli_modem_signal_run_asynchronous (GDBusConnection *connection,
+ GCancellable *cancellable);
+void mmcli_modem_signal_run_synchronous (GDBusConnection *connection);
+void mmcli_modem_signal_shutdown (void);
+
+/* Oma group */
+GOptionGroup *mmcli_modem_oma_get_option_group (void);
+gboolean mmcli_modem_oma_options_enabled (void);
+void mmcli_modem_oma_run_asynchronous (GDBusConnection *connection,
+ GCancellable *cancellable);
+void mmcli_modem_oma_run_synchronous (GDBusConnection *connection);
+void mmcli_modem_oma_shutdown (void);
+
/* Bearer group */
GOptionGroup *mmcli_bearer_get_option_group (void);
gboolean mmcli_bearer_options_enabled (void);
diff --git a/config.guess b/config.guess
index b79252d..9afd676 100755
--- a/config.guess
+++ b/config.guess
@@ -2,7 +2,7 @@
# Attempt to guess a canonical system name.
# Copyright 1992-2013 Free Software Foundation, Inc.
-timestamp='2013-06-10'
+timestamp='2013-11-29'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -1260,16 +1260,26 @@ EOF
if test "$UNAME_PROCESSOR" = unknown ; then
UNAME_PROCESSOR=powerpc
fi
- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
- if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_64BIT_ARCH >/dev/null
- then
- case $UNAME_PROCESSOR in
- i386) UNAME_PROCESSOR=x86_64 ;;
- powerpc) UNAME_PROCESSOR=powerpc64 ;;
- esac
+ if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ case $UNAME_PROCESSOR in
+ i386) UNAME_PROCESSOR=x86_64 ;;
+ powerpc) UNAME_PROCESSOR=powerpc64 ;;
+ esac
+ fi
fi
+ elif test "$UNAME_PROCESSOR" = i386 ; then
+ # Avoid executing cc on OS X 10.9, as it ships with a stub
+ # that puts up a graphical alert prompting to install
+ # developer tools. Any system running Mac OS X 10.7 or
+ # later (Darwin 11 and later) is required to have a 64-bit
+ # processor. This is not true of the ARM version of Darwin
+ # that Apple uses in portable devices.
+ UNAME_PROCESSOR=x86_64
fi
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
exit ;;
diff --git a/config.h.in b/config.h.in
index 6b85da3..f4b7427 100644
--- a/config.h.in
+++ b/config.h.in
@@ -62,9 +62,6 @@
/* Define the distribution version string */
#undef MM_DIST_VERSION
-/* Define to 1 if your C compiler doesn't accept -c and -o together. */
-#undef NO_MINUS_C_MINUS_O
-
/* Name of package */
#undef PACKAGE
diff --git a/config.sub b/config.sub
index c765b34..61cb4bc 100755
--- a/config.sub
+++ b/config.sub
@@ -2,7 +2,7 @@
# Configuration validation subroutine script.
# Copyright 1992-2013 Free Software Foundation, Inc.
-timestamp='2013-04-24'
+timestamp='2013-10-01'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -257,7 +257,7 @@ case $basic_machine in
| avr | avr32 \
| be32 | be64 \
| bfin \
- | c4x | clipper \
+ | c4x | c8051 | clipper \
| d10v | d30v | dlx | dsp16xx \
| epiphany \
| fido | fr30 | frv \
@@ -265,6 +265,7 @@ case $basic_machine in
| hexagon \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
+ | k1om \
| le32 | le64 \
| lm32 \
| m32c | m32r | m32rle | m68000 | m68k | m88k \
@@ -324,7 +325,7 @@ case $basic_machine in
c6x)
basic_machine=tic6x-unknown
;;
- m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
+ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
basic_machine=$basic_machine-unknown
os=-none
;;
@@ -372,7 +373,7 @@ case $basic_machine in
| be32-* | be64-* \
| bfin-* | bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* \
- | clipper-* | craynv-* | cydra-* \
+ | c8051-* | clipper-* | craynv-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
| elxsi-* \
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
@@ -381,6 +382,7 @@ case $basic_machine in
| hexagon-* \
| i*86-* | i860-* | i960-* | ia64-* \
| ip2k-* | iq2000-* \
+ | k1om-* \
| le32-* | le64-* \
| lm32-* \
| m32c-* | m32r-* | m32rle-* \
@@ -794,7 +796,7 @@ case $basic_machine in
os=-mingw64
;;
mingw32)
- basic_machine=i386-pc
+ basic_machine=i686-pc
os=-mingw32
;;
mingw32ce)
@@ -830,7 +832,7 @@ case $basic_machine in
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
;;
msys)
- basic_machine=i386-pc
+ basic_machine=i686-pc
os=-msys
;;
mvs)
@@ -1006,7 +1008,7 @@ case $basic_machine in
;;
ppc64) basic_machine=powerpc64-unknown
;;
- ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppc64le | powerpc64little | ppc64-le | powerpc64-little)
basic_machine=powerpc64le-unknown
@@ -1546,6 +1548,9 @@ case $basic_machine in
c4x-* | tic4x-*)
os=-coff
;;
+ c8051-*)
+ os=-elf
+ ;;
hexagon-*)
os=-elf
;;
diff --git a/configure b/configure
index 33f7870..b741c94 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for ModemManager 1.0.0.
+# Generated by GNU Autoconf 2.69 for ModemManager 1.2.0.
#
# Report bugs to <modemmanager-devel@lists.freedesktop.org>.
#
@@ -590,8 +590,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='ModemManager'
PACKAGE_TARNAME='ModemManager'
-PACKAGE_VERSION='1.0.0'
-PACKAGE_STRING='ModemManager 1.0.0'
+PACKAGE_VERSION='1.2.0'
+PACKAGE_STRING='ModemManager 1.2.0'
PACKAGE_BUGREPORT='modemmanager-devel@lists.freedesktop.org'
PACKAGE_URL=''
@@ -660,6 +660,21 @@ HAVE_SYSTEMD_TRUE
SYSTEMD_UNIT_DIR
UDEV_BASE_DIR
DBUS_SYS_DIR
+ENABLE_VAPIGEN_FALSE
+ENABLE_VAPIGEN_TRUE
+VAPIGEN_MAKEFILE
+VAPIGEN_VAPIDIR
+VAPIGEN
+HAVE_INTROSPECTION_FALSE
+HAVE_INTROSPECTION_TRUE
+INTROSPECTION_MAKEFILE
+INTROSPECTION_LIBS
+INTROSPECTION_CFLAGS
+INTROSPECTION_TYPELIBDIR
+INTROSPECTION_GIRDIR
+INTROSPECTION_GENERATE
+INTROSPECTION_COMPILER
+INTROSPECTION_SCANNER
GLIB_MKENUMS
GLIB_GENMARSHAL
GUDEV_LIBS
@@ -882,6 +897,8 @@ enable_nls
enable_rpath
with_libiconv_prefix
with_libintl_prefix
+enable_introspection
+enable_vala
with_dbus_sys_dir
with_udev_base_dir
with_systemdsystemunitdir
@@ -1460,7 +1477,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures ModemManager 1.0.0 to adapt to many kinds of systems.
+\`configure' configures ModemManager 1.2.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1530,7 +1547,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of ModemManager 1.0.0:";;
+ short | recursive ) echo "Configuration of ModemManager 1.2.0:";;
esac
cat <<\_ACEOF
@@ -1557,6 +1574,10 @@ Optional Features:
--enable-gtk-doc-pdf build documentation in pdf format [[default=no]]
--disable-nls do not use Native Language Support
--disable-rpath do not hardcode runtime library paths
+ --enable-introspection=[no/auto/yes]
+ Enable introspection for this build
+ --enable-vala=[no/auto/yes]
+ build Vala bindings [default=auto]
--enable-more-warnings Maximum compiler warnings
Optional Packages:
@@ -1692,7 +1713,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-ModemManager configure 1.0.0
+ModemManager configure 1.2.0
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2061,7 +2082,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by ModemManager $as_me 1.0.0, which was
+It was created by ModemManager $as_me 1.2.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2410,7 +2431,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-am__api_version='1.13'
+am__api_version='1.14'
ac_aux_dir=
for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
@@ -2925,7 +2946,7 @@ fi
# Define the identity of the package.
PACKAGE='ModemManager'
- VERSION='1.0.0'
+ VERSION='1.2.0'
cat >>confdefs.h <<_ACEOF
@@ -3092,6 +3113,47 @@ $as_echo "$am_cv_prog_tar_ustar" >&6; }
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes. So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+ cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present. This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message. This
+can help us improve future automake versions.
+
+END
+ if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+ echo 'Configuration will proceed anyway, since you have set the' >&2
+ echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+ echo >&2
+ else
+ cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+ as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
+ fi
+fi
# Check whether --enable-silent-rules was given.
if test "${enable_silent_rules+set}" = set; then :
enableval=$enable_silent_rules;
@@ -4012,6 +4074,65 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
+if ${am_cv_prog_cc_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ # Make sure it works both with $CC and with simple cc.
+ # Following AC_PROG_CC_C_O, we do the test twice because some
+ # compilers refuse to overwrite an existing .o file with -o,
+ # though they will create one.
+ am_cv_prog_cc_c_o=yes
+ for am_i in 1 2; do
+ if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+ ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } \
+ && test -f conftest2.$ac_objext; then
+ : OK
+ else
+ am_cv_prog_cc_c_o=no
+ break
+ fi
+ done
+ rm -f core conftest*
+ unset am_i
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+$as_echo "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
depcc="$CC" am_compiler_list=
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
@@ -5139,6 +5260,65 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
+if ${am_cv_prog_cc_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ # Make sure it works both with $CC and with simple cc.
+ # Following AC_PROG_CC_C_O, we do the test twice because some
+ # compilers refuse to overwrite an existing .o file with -o,
+ # though they will create one.
+ am_cv_prog_cc_c_o=yes
+ for am_i in 1 2; do
+ if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+ ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } \
+ && test -f conftest2.$ac_objext; then
+ : OK
+ else
+ am_cv_prog_cc_c_o=no
+ break
+ fi
+ done
+ rm -f core conftest*
+ unset am_i
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+$as_echo "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
depcc="$CC" am_compiler_list=
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
@@ -5267,131 +5447,6 @@ else
fi
-if test "x$CC" != xcc; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5
-$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5
-$as_echo_n "checking whether cc understands -c and -o together... " >&6; }
-fi
-set dummy $CC; ac_cc=`$as_echo "$2" |
- sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
-if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-# Make sure it works both with $CC and with simple cc.
-# We do the test twice because some compilers refuse to overwrite an
-# existing .o file with -o, though they will create one.
-ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
-rm -f conftest2.*
-if { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } &&
- test -f conftest2.$ac_objext && { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; };
-then
- eval ac_cv_prog_cc_${ac_cc}_c_o=yes
- if test "x$CC" != xcc; then
- # Test first that cc exists at all.
- if { ac_try='cc -c conftest.$ac_ext >&5'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then
- ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
- rm -f conftest2.*
- if { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } &&
- test -f conftest2.$ac_objext && { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; };
- then
- # cc works too.
- :
- else
- # cc exists but doesn't like -o.
- eval ac_cv_prog_cc_${ac_cc}_c_o=no
- fi
- fi
- fi
-else
- eval ac_cv_prog_cc_${ac_cc}_c_o=no
-fi
-rm -f core conftest*
-
-fi
-if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
-$as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h
-
-fi
-
-# FIXME: we rely on the cache variable name because
-# there is no other way.
-set dummy $CC
-am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
-eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
-if test "$am_t" != yes; then
- # Losing compiler, so override with the script.
- # FIXME: It is wrong to rewrite CC.
- # But if we don't then we get into trouble of one sort or another.
- # A longer-term fix would be to have automake use am__CC in this case,
- # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
- CC="$am_aux_dir/compile $CC"
-fi
-
@@ -11595,14 +11650,10 @@ fi
# before this can be enabled.
hardcode_into_libs=yes
- # Add ABI-specific directories to the system library path.
- sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
-
# Append ld.so.conf contents to the search path
if test -f /etc/ld.so.conf; then
lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
-
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
fi
# We used to test for /lib/ld.so.1 and disable shared libraries on
@@ -12586,17 +12637,17 @@ CC="$lt_save_CC"
MM_MAJOR_VERSION=1
-MM_MINOR_VERSION=0
+MM_MINOR_VERSION=2
MM_MICRO_VERSION=0
-MM_VERSION=1.0.0
+MM_VERSION=1.2.0
-MM_GLIB_LT_CURRENT=0
+MM_GLIB_LT_CURRENT=1
MM_GLIB_LT_REVISION=0
-MM_GLIB_LT_AGE=0
+MM_GLIB_LT_AGE=1
@@ -12941,31 +12992,11 @@ fi
# Put the nasty error message in config.log where it belongs
echo "$GTKDOC_DEPS_PKG_ERRORS" >&5
- as_fn_error $? "Package requirements (glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0) were not met:
-
-$GTKDOC_DEPS_PKG_ERRORS
-
-Consider adjusting the PKG_CONFIG_PATH environment variable if you
-installed software in a non-standard prefix.
-
-Alternatively, you may set the environment variables GTKDOC_DEPS_CFLAGS
-and GTKDOC_DEPS_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details." "$LINENO" 5
+ :
elif test $pkg_failed = untried; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
-is in your PATH or set the PKG_CONFIG environment variable to the full
-path to pkg-config.
-
-Alternatively, you may set the environment variables GTKDOC_DEPS_CFLAGS
-and GTKDOC_DEPS_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details" "$LINENO" 5; }
+ :
else
GTKDOC_DEPS_CFLAGS=$pkg_cv_GTKDOC_DEPS_CFLAGS
GTKDOC_DEPS_LIBS=$pkg_cv_GTKDOC_DEPS_LIBS
@@ -13000,6 +13031,10 @@ fi
enable_gtk_doc_pdf=no
fi
+ if test -z "$AM_DEFAULT_VERBOSITY"; then
+ AM_DEFAULT_VERBOSITY=1
+ fi
+
if test x$enable_gtk_doc = xyes; then
ENABLE_GTK_DOC_TRUE=
@@ -15992,6 +16027,367 @@ GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0`
GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0`
+# GObject Introspection
+
+
+
+ # Check whether --enable-introspection was given.
+if test "${enable_introspection+set}" = set; then :
+ enableval=$enable_introspection;
+else
+ enable_introspection=auto
+fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gobject-introspection" >&5
+$as_echo_n "checking for gobject-introspection... " >&6; }
+
+ case $enable_introspection in #(
+ no) :
+ found_introspection="no (disabled, use --enable-introspection to enable)"
+ ;; #(
+ yes) :
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ :
+else
+ as_fn_error $? "gobject-introspection-1.0 is not installed" "$LINENO" 5
+fi
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0 >= 0.9.6\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0 >= 0.9.6") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ found_introspection=yes
+else
+ as_fn_error $? "You need to have gobject-introspection >= 0.9.6 installed to build ModemManager" "$LINENO" 5
+fi
+ ;; #(
+ auto) :
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0 >= 0.9.6\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0 >= 0.9.6") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ found_introspection=yes
+else
+ found_introspection=no
+fi
+ enable_introspection=$found_introspection
+ ;; #(
+ *) :
+ as_fn_error $? "invalid argument passed to --enable-introspection, should be one of [no/auto/yes]" "$LINENO" 5
+ ;;
+esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $found_introspection" >&5
+$as_echo "$found_introspection" >&6; }
+
+ INTROSPECTION_SCANNER=
+ INTROSPECTION_COMPILER=
+ INTROSPECTION_GENERATE=
+ INTROSPECTION_GIRDIR=
+ INTROSPECTION_TYPELIBDIR=
+ if test "x$found_introspection" = "xyes"; then
+ INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
+ INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
+ INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
+ INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
+ INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
+ INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
+ INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
+ INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
+ fi
+
+
+
+
+
+
+
+
+
+ if test "x$found_introspection" = "xyes"; then
+ HAVE_INTROSPECTION_TRUE=
+ HAVE_INTROSPECTION_FALSE='#'
+else
+ HAVE_INTROSPECTION_TRUE='#'
+ HAVE_INTROSPECTION_FALSE=
+fi
+
+
+
+
+# Vala bindings
+
+ if test "x" != "xyes"; then :
+
+
+
+fi
+
+ # Check whether --enable-vala was given.
+if test "${enable_vala+set}" = set; then :
+ enableval=$enable_vala;
+else
+
+ if test "x" = "x"; then :
+
+ enable_vala=auto
+
+else
+
+ enable_vala=
+
+fi
+
+fi
+
+
+ case $enable_vala in #(
+ no) :
+ enable_vala=no ;; #(
+ yes) :
+
+ if test "x" != "xyes" -a "x$found_introspection" != "xyes"; then :
+
+ as_fn_error $? "Vala bindings require GObject Introspection" "$LINENO" 5
+
+fi
+ ;; #(
+ auto) :
+
+ if test "x" != "xyes" -a "x$found_introspection" != "xyes"; then :
+
+ enable_vala=no
+
+fi
+ ;; #(
+ *) :
+
+ as_fn_error $? "Invalid argument passed to --enable-vala, should be one of [no/auto/yes]" "$LINENO" 5
+ ;;
+esac
+
+ if test "x" = "x"; then :
+
+ vapigen_pkg_name=vapigen
+
+else
+
+ vapigen_pkg_name=vapigen-
+
+fi
+ if test "x0.18" = "x"; then :
+
+ vapigen_pkg="$vapigen_pkg_name"
+
+else
+
+ vapigen_pkg="$vapigen_pkg_name >= 0.18"
+
+fi
+
+
+
+
+
+
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+ ac_pt_PKG_CONFIG=$PKG_CONFIG
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $ac_pt_PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_pt_PKG_CONFIG" = x; then
+ PKG_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ PKG_CONFIG=$ac_pt_PKG_CONFIG
+ fi
+else
+ PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=0.9.0
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ PKG_CONFIG=""
+ fi
+fi
+
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$vapigen_pkg\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "$vapigen_pkg") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+
+ if test "$enable_vala" = "auto"; then :
+
+ enable_vala=yes
+
+fi
+
+else
+
+ case $enable_vala in #(
+ yes) :
+
+ as_fn_error $? "$vapigen_pkg not found" "$LINENO" 5
+ ;; #(
+ auto) :
+
+ enable_vala=no
+ ;; #(
+ *) :
+ ;;
+esac
+
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for vapigen" >&5
+$as_echo_n "checking for vapigen... " >&6; }
+
+ case $enable_vala in #(
+ yes) :
+
+ VAPIGEN=`$PKG_CONFIG --variable=vapigen $vapigen_pkg_name`
+ VAPIGEN_MAKEFILE=`$PKG_CONFIG --variable=datadir $vapigen_pkg_name`/vala/Makefile.vapigen
+ if test "x" = "x"; then :
+
+ VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir $vapigen_pkg_name`
+
+else
+
+ VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir_versioned $vapigen_pkg_name`
+
+fi
+ ;; #(
+ *) :
+ ;;
+esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_vala" >&5
+$as_echo "$enable_vala" >&6; }
+
+
+
+
+
+ if test "x$enable_vala" = "xyes"; then
+ ENABLE_VAPIGEN_TRUE=
+ ENABLE_VAPIGEN_FALSE='#'
+else
+ ENABLE_VAPIGEN_TRUE='#'
+ ENABLE_VAPIGEN_FALSE=
+fi
+
+
+
+# Sanity check
+if test "x$enable_vala" = "xyes" -a ! -f "$VAPIGEN_MAKEFILE"; then
+ as_fn_error $? "Vala bindings enabled but Makefile.vapigen not found. Install vala-devel, or pass --disable-vala" "$LINENO" 5
+fi
+
# DBus system directory
# Check whether --with-dbus-sys-dir was given.
@@ -16305,12 +16701,12 @@ if test -n "$QMI_CFLAGS"; then
pkg_cv_QMI_CFLAGS="$QMI_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"qmi-glib >= 1.4\""; } >&5
- ($PKG_CONFIG --exists --print-errors "qmi-glib >= 1.4") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"qmi-glib >= 1.6\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "qmi-glib >= 1.6") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_QMI_CFLAGS=`$PKG_CONFIG --cflags "qmi-glib >= 1.4" 2>/dev/null`
+ pkg_cv_QMI_CFLAGS=`$PKG_CONFIG --cflags "qmi-glib >= 1.6" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
@@ -16322,12 +16718,12 @@ if test -n "$QMI_LIBS"; then
pkg_cv_QMI_LIBS="$QMI_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"qmi-glib >= 1.4\""; } >&5
- ($PKG_CONFIG --exists --print-errors "qmi-glib >= 1.4") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"qmi-glib >= 1.6\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "qmi-glib >= 1.6") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_QMI_LIBS=`$PKG_CONFIG --libs "qmi-glib >= 1.4" 2>/dev/null`
+ pkg_cv_QMI_LIBS=`$PKG_CONFIG --libs "qmi-glib >= 1.6" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
@@ -16348,9 +16744,9 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- QMI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "qmi-glib >= 1.4" 2>&1`
+ QMI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "qmi-glib >= 1.6" 2>&1`
else
- QMI_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "qmi-glib >= 1.4" 2>&1`
+ QMI_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "qmi-glib >= 1.6" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$QMI_PKG_ERRORS" >&5
@@ -16502,7 +16898,7 @@ else
fi
-ac_config_files="$ac_config_files Makefile data/Makefile data/ModemManager.pc data/mm-glib.pc data/org.freedesktop.ModemManager1.policy.in data/org.freedesktop.ModemManager1.service include/Makefile include/ModemManager-version.h build-aux/Makefile libqcdm/Makefile libqcdm/src/Makefile libqcdm/tests/Makefile libwmc/Makefile libwmc/src/Makefile libwmc/tests/Makefile src/Makefile src/tests/Makefile plugins/Makefile uml290/Makefile test/Makefile introspection/Makefile po/Makefile.in docs/Makefile docs/man/Makefile docs/reference/Makefile docs/reference/api/Makefile docs/reference/api/version.xml docs/reference/libmm-glib/Makefile docs/reference/libmm-glib/version.xml libmm-glib/Makefile libmm-glib/generated/Makefile libmm-glib/tests/Makefile cli/Makefile"
+ac_config_files="$ac_config_files Makefile data/Makefile data/ModemManager.pc data/mm-glib.pc data/org.freedesktop.ModemManager1.policy.in include/Makefile include/ModemManager-version.h build-aux/Makefile libqcdm/Makefile libqcdm/src/Makefile libqcdm/tests/Makefile libwmc/Makefile libwmc/src/Makefile libwmc/tests/Makefile src/Makefile src/tests/Makefile plugins/Makefile uml290/Makefile test/Makefile introspection/Makefile po/Makefile.in docs/Makefile docs/man/Makefile docs/reference/Makefile docs/reference/api/Makefile docs/reference/api/version.xml docs/reference/libmm-glib/Makefile docs/reference/libmm-glib/version.xml libmm-glib/Makefile libmm-glib/generated/Makefile libmm-glib/tests/Makefile vapi/Makefile cli/Makefile"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
@@ -16669,6 +17065,14 @@ fi
ac_config_commands="$ac_config_commands po/stamp-it"
+if test -z "${HAVE_INTROSPECTION_TRUE}" && test -z "${HAVE_INTROSPECTION_FALSE}"; then
+ as_fn_error $? "conditional \"HAVE_INTROSPECTION\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ENABLE_VAPIGEN_TRUE}" && test -z "${ENABLE_VAPIGEN_FALSE}"; then
+ as_fn_error $? "conditional \"ENABLE_VAPIGEN\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${HAVE_SYSTEMD_TRUE}" && test -z "${HAVE_SYSTEMD_FALSE}"; then
as_fn_error $? "conditional \"HAVE_SYSTEMD\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -17094,7 +17498,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by ModemManager $as_me 1.0.0, which was
+This file was extended by ModemManager $as_me 1.2.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -17160,7 +17564,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-ModemManager config.status 1.0.0
+ModemManager config.status 1.2.0
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
@@ -17582,7 +17986,6 @@ do
"data/ModemManager.pc") CONFIG_FILES="$CONFIG_FILES data/ModemManager.pc" ;;
"data/mm-glib.pc") CONFIG_FILES="$CONFIG_FILES data/mm-glib.pc" ;;
"data/org.freedesktop.ModemManager1.policy.in") CONFIG_FILES="$CONFIG_FILES data/org.freedesktop.ModemManager1.policy.in" ;;
- "data/org.freedesktop.ModemManager1.service") CONFIG_FILES="$CONFIG_FILES data/org.freedesktop.ModemManager1.service" ;;
"include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;;
"include/ModemManager-version.h") CONFIG_FILES="$CONFIG_FILES include/ModemManager-version.h" ;;
"build-aux/Makefile") CONFIG_FILES="$CONFIG_FILES build-aux/Makefile" ;;
@@ -17609,6 +18012,7 @@ do
"libmm-glib/Makefile") CONFIG_FILES="$CONFIG_FILES libmm-glib/Makefile" ;;
"libmm-glib/generated/Makefile") CONFIG_FILES="$CONFIG_FILES libmm-glib/generated/Makefile" ;;
"libmm-glib/tests/Makefile") CONFIG_FILES="$CONFIG_FILES libmm-glib/tests/Makefile" ;;
+ "vapi/Makefile") CONFIG_FILES="$CONFIG_FILES vapi/Makefile" ;;
"cli/Makefile") CONFIG_FILES="$CONFIG_FILES cli/Makefile" ;;
"po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;;
@@ -19114,6 +19518,8 @@ echo "
systemd unit directory: ${with_systemdsystemunitdir}
PolicyKit support: ${with_polkit}
+ GObject Introspection: ${found_introspection}
+ Vala Bindings: ${enable_vala}
Documentation: ${enable_gtk_doc}
MBIM support: ${with_mbim}
QMI support: ${with_qmi}
diff --git a/configure.ac b/configure.ac
index 8679b3d..d13815b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.63])
dnl The MM version number
m4_define([mm_major_version], [1])
-m4_define([mm_minor_version], [0])
+m4_define([mm_minor_version], [2])
m4_define([mm_micro_version], [0])
m4_define([mm_version],
[mm_major_version.mm_minor_version.mm_micro_version])
@@ -15,9 +15,9 @@ dnl If the interface has grown (that is, the new library is compatible
dnl with old code), increment a.
dnl If the interface has changed in an incompatible way (that is,
dnl functions have changed or been removed), then zero a.
-m4_define([mm_glib_lt_current], [0])
+m4_define([mm_glib_lt_current], [1])
m4_define([mm_glib_lt_revision], [0])
-m4_define([mm_glib_lt_age], [0])
+m4_define([mm_glib_lt_age], [1])
AC_INIT([ModemManager],[mm_version],[modemmanager-devel@lists.freedesktop.org],[ModemManager])
@@ -110,6 +110,17 @@ AC_SUBST(GLIB_GENMARSHAL)
GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0`
AC_SUBST(GLIB_MKENUMS)
+# GObject Introspection
+GOBJECT_INTROSPECTION_CHECK([0.9.6])
+
+# Vala bindings
+VAPIGEN_CHECK(0.18)
+
+# Sanity check
+if test "x$enable_vala" = "xyes" -a ! -f "$VAPIGEN_MAKEFILE"; then
+ AC_MSG_ERROR([Vala bindings enabled but Makefile.vapigen not found. Install vala-devel, or pass --disable-vala])
+fi
+
# DBus system directory
AC_ARG_WITH(dbus-sys-dir, AS_HELP_STRING([--with-dbus-sys-dir=DIR], [where D-BUS system.d directory is]))
if test -n "$with_dbus_sys_dir" ; then
@@ -211,7 +222,7 @@ AC_ARG_WITH(qmi, AS_HELP_STRING([--without-qmi], [Build without QMI support]), [
AM_CONDITIONAL(WITH_QMI, test "x$with_qmi" = "xyes")
case $with_qmi in
yes)
- PKG_CHECK_MODULES(QMI, [qmi-glib >= 1.4], [have_qmi=yes],[have_qmi=no])
+ PKG_CHECK_MODULES(QMI, [qmi-glib >= 1.6], [have_qmi=yes],[have_qmi=no])
if test "x$have_qmi" = "xno"; then
AC_MSG_ERROR([Couldn't find libqmi-glib. Install it, or otherwise configure using --without-qmi to disable QMI support.])
else
@@ -265,7 +276,6 @@ data/Makefile
data/ModemManager.pc
data/mm-glib.pc
data/org.freedesktop.ModemManager1.policy.in
-data/org.freedesktop.ModemManager1.service
include/Makefile
include/ModemManager-version.h
build-aux/Makefile
@@ -292,6 +302,7 @@ docs/reference/libmm-glib/version.xml
libmm-glib/Makefile
libmm-glib/generated/Makefile
libmm-glib/tests/Makefile
+vapi/Makefile
cli/Makefile
])
AC_OUTPUT
@@ -309,6 +320,8 @@ echo "
systemd unit directory: ${with_systemdsystemunitdir}
PolicyKit support: ${with_polkit}
+ GObject Introspection: ${found_introspection}
+ Vala Bindings: ${enable_vala}
Documentation: ${enable_gtk_doc}
MBIM support: ${with_mbim}
QMI support: ${with_qmi}
diff --git a/data/Makefile.am b/data/Makefile.am
index 3a31ec5..70a92ee 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -35,6 +35,9 @@ endif
dbusactivationdir = $(datadir)/dbus-1/system-services
dbusactivation_DATA = org.freedesktop.ModemManager1.service
dbusactivation_in_files = org.freedesktop.ModemManager1.service.in
+org.freedesktop.ModemManager1.service: org.freedesktop.ModemManager1.service.in
+ $(edit) $< >$@
+
# Icon
icondir=${datadir}/icons/hicolor/22x22/apps
diff --git a/data/Makefile.in b/data/Makefile.in
index 34889fd..4a2850a 100644
--- a/data/Makefile.in
+++ b/data/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -82,26 +82,25 @@ host_triplet = @host@
subdir = data
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
$(srcdir)/ModemManager.pc.in $(srcdir)/mm-glib.pc.in \
- $(srcdir)/org.freedesktop.ModemManager1.policy.in.in \
- $(srcdir)/org.freedesktop.ModemManager1.service.in
+ $(srcdir)/org.freedesktop.ModemManager1.policy.in.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \
$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
- $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
- $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/introspection.m4 \
+ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES = ModemManager.pc mm-glib.pc \
- org.freedesktop.ModemManager1.policy.in \
- org.freedesktop.ModemManager1.service
+ org.freedesktop.ModemManager1.policy.in
CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
@@ -216,6 +215,14 @@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
@@ -282,6 +289,9 @@ STRIP = @STRIP@
SYSTEMD_UNIT_DIR = @SYSTEMD_UNIT_DIR@
UDEV_BASE_DIR = @UDEV_BASE_DIR@
USE_NLS = @USE_NLS@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
@@ -443,8 +453,6 @@ mm-glib.pc: $(top_builddir)/config.status $(srcdir)/mm-glib.pc.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
org.freedesktop.ModemManager1.policy.in: $(top_builddir)/config.status $(srcdir)/org.freedesktop.ModemManager1.policy.in.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
-org.freedesktop.ModemManager1.service: $(top_builddir)/config.status $(srcdir)/org.freedesktop.ModemManager1.service.in
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
mostlyclean-libtool:
-rm -f *.lo
@@ -749,6 +757,8 @@ uninstall-am: uninstall-dbusactivationDATA uninstall-dbusserviceDATA \
@WITH_POLKIT_FALSE@ cp -f $(top_srcdir)/data/$(dbusservice_file_nopolkit) $(dbusservice_DATA)
@HAVE_SYSTEMD_TRUE@ModemManager.service: ModemManager.service.in
@HAVE_SYSTEMD_TRUE@ $(edit) $< >$@
+org.freedesktop.ModemManager1.service: org.freedesktop.ModemManager1.service.in
+ $(edit) $< >$@
@WITH_POLKIT_TRUE@@INTLTOOL_POLICY_RULE@
# Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/data/org.freedesktop.ModemManager1.conf.polkit b/data/org.freedesktop.ModemManager1.conf.polkit
index 64c43eb..5c96384 100644
--- a/data/org.freedesktop.ModemManager1.conf.polkit
+++ b/data/org.freedesktop.ModemManager1.conf.polkit
@@ -192,6 +192,13 @@
send_interface="org.freedesktop.ModemManager1.Sms"
send_member="Send"/>
+ <!-- org.freedesktop.ModemManager1.Modem.Signal.xml -->
+
+ <!-- Allowed for everyone -->
+ <allow send_destination="org.freedesktop.ModemManager1"
+ send_interface="org.freedesktop.ModemManager1.Modem.Signal"
+ send_member="Setup"/>
+
</policy>
<policy user="root">
diff --git a/docs/Makefile.in b/docs/Makefile.in
index e593b08..168c359 100644
--- a/docs/Makefile.in
+++ b/docs/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -83,12 +83,13 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \
$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
- $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
- $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/introspection.m4 \
+ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
@@ -235,6 +236,14 @@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
@@ -301,6 +310,9 @@ STRIP = @STRIP@
SYSTEMD_UNIT_DIR = @SYSTEMD_UNIT_DIR@
UDEV_BASE_DIR = @UDEV_BASE_DIR@
USE_NLS = @USE_NLS@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
diff --git a/docs/man/Makefile.in b/docs/man/Makefile.in
index ab6fa88..f6f04ac 100644
--- a/docs/man/Makefile.in
+++ b/docs/man/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -83,12 +83,13 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \
$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
- $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
- $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/introspection.m4 \
+ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
@@ -206,6 +207,14 @@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
@@ -272,6 +281,9 @@ STRIP = @STRIP@
SYSTEMD_UNIT_DIR = @SYSTEMD_UNIT_DIR@
UDEV_BASE_DIR = @UDEV_BASE_DIR@
USE_NLS = @USE_NLS@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
diff --git a/docs/man/mmcli.8 b/docs/man/mmcli.8
index 24488ce..0b0ecc9 100644
--- a/docs/man/mmcli.8
+++ b/docs/man/mmcli.8
@@ -65,6 +65,9 @@ Show time specific options.
.B \-\-help\-firmware
Show firmware specific options.
.TP
+.B \-\-help\-oma
+Show OMA specific options.
+.TP
.B \-\-help\-sim
Show SIM card specific options.
.TP
@@ -426,6 +429,30 @@ of available firmware images can be seen using the
The \fBID\fR provided is a \fIUNIQUE\fR identifier for the firmware.
+.SH OMA OPTIONS
+All OMA options require the \fB\-\-modem\fR or \fB\-m\fR option.
+
+.TP
+.B \-\-oma\-status
+Show the status of the OMA device management subsystem.
+.TP
+.B \-\-oma\-start\-client\-initiated\-session=[SESSION TYPE]
+Request to start a client initiated session.
+
+The given session type must be one of:
+ 'client\-initiated\-device\-configure'
+ 'client\-initiated\-prl\-update'
+ 'client\-initiated\-hands\-free\-activation'
+.TP
+.B \-\-oma\-accept\-network\-initiated\-session=[SESSION ID]
+Request to accept a network initiated session.
+.TP
+.B \-\-oma\-reject\-network\-initiated\-session=[SESSION ID]
+Request to reject a network initiated session.
+.TP
+.B \-\-oma\-cancel\-session
+Request to cancel current OMA session, if any.
+
.SH SIM OPTIONS
.TP
.B \-\-pin=PIN
diff --git a/docs/reference/Makefile.in b/docs/reference/Makefile.in
index b412be2..003b19c 100644
--- a/docs/reference/Makefile.in
+++ b/docs/reference/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -83,12 +83,13 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \
$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
- $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
- $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/introspection.m4 \
+ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
@@ -235,6 +236,14 @@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
@@ -301,6 +310,9 @@ STRIP = @STRIP@
SYSTEMD_UNIT_DIR = @SYSTEMD_UNIT_DIR@
UDEV_BASE_DIR = @UDEV_BASE_DIR@
USE_NLS = @USE_NLS@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
diff --git a/docs/reference/api/Makefile.am b/docs/reference/api/Makefile.am
index 33c28e2..6079687 100644
--- a/docs/reference/api/Makefile.am
+++ b/docs/reference/api/Makefile.am
@@ -73,10 +73,12 @@ expand_content_files = \
$(top_builddir)/libmm-glib/generated/mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Location.xml \
$(top_builddir)/libmm-glib/generated/mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Time.xml \
$(top_builddir)/libmm-glib/generated/mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Firmware.xml \
+ $(top_builddir)/libmm-glib/generated/mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Oma.xml \
$(top_builddir)/libmm-glib/generated/mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.ModemCdma.xml \
$(top_builddir)/libmm-glib/generated/mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Modem3gpp.xml \
$(top_builddir)/libmm-glib/generated/mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.xml \
$(top_builddir)/libmm-glib/generated/mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Simple.xml \
+ $(top_builddir)/libmm-glib/generated/mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Signal.xml \
$(NULL)
extra_files = \
diff --git a/docs/reference/api/Makefile.in b/docs/reference/api/Makefile.in
index c6707df..2569a9d 100644
--- a/docs/reference/api/Makefile.in
+++ b/docs/reference/api/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -90,12 +90,13 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \
$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
- $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
- $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/introspection.m4 \
+ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
@@ -182,6 +183,14 @@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
@@ -248,6 +257,9 @@ STRIP = @STRIP@
SYSTEMD_UNIT_DIR = @SYSTEMD_UNIT_DIR@
UDEV_BASE_DIR = @UDEV_BASE_DIR@
USE_NLS = @USE_NLS@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
@@ -385,10 +397,12 @@ expand_content_files = \
$(top_builddir)/libmm-glib/generated/mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Location.xml \
$(top_builddir)/libmm-glib/generated/mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Time.xml \
$(top_builddir)/libmm-glib/generated/mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Firmware.xml \
+ $(top_builddir)/libmm-glib/generated/mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Oma.xml \
$(top_builddir)/libmm-glib/generated/mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.ModemCdma.xml \
$(top_builddir)/libmm-glib/generated/mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Modem3gpp.xml \
$(top_builddir)/libmm-glib/generated/mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.xml \
$(top_builddir)/libmm-glib/generated/mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Simple.xml \
+ $(top_builddir)/libmm-glib/generated/mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Signal.xml \
$(NULL)
extra_files = \
@@ -471,6 +485,42 @@ extra_files = \
@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_PDF_FALSE@PDF_BUILD_STAMP =
@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_PDF_TRUE@PDF_BUILD_STAMP = pdf-build.stamp
+#### setup ####
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_SETUP = $(GTK_DOC_V_SETUP_$(V))
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_SETUP_ = $(GTK_DOC_V_SETUP_$(AM_DEFAULT_VERBOSITY))
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_SETUP_0 = @echo " DOC Preparing build";
+
+#### scan ####
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_SCAN = $(GTK_DOC_V_SCAN_$(V))
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_SCAN_ = $(GTK_DOC_V_SCAN_$(AM_DEFAULT_VERBOSITY))
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_SCAN_0 = @echo " DOC Scanning header files";
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_INTROSPECT = $(GTK_DOC_V_INTROSPECT_$(V))
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_INTROSPECT_ = $(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY))
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_INTROSPECT_0 = @echo " DOC Introspecting gobjects";
+
+#### templates ####
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_TMPL = $(GTK_DOC_V_TMPL_$(V))
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_TMPL_ = $(GTK_DOC_V_TMPL_$(AM_DEFAULT_VERBOSITY))
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_TMPL_0 = @echo " DOC Rebuilding template files";
+
+#### xml ####
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_XML = $(GTK_DOC_V_XML_$(V))
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_XML_ = $(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY))
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_XML_0 = @echo " DOC Building XML";
+
+#### html ####
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_HTML = $(GTK_DOC_V_HTML_$(V))
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_HTML_ = $(GTK_DOC_V_HTML_$(AM_DEFAULT_VERBOSITY))
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_HTML_0 = @echo " DOC Building HTML";
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_XREF = $(GTK_DOC_V_XREF_$(V))
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_XREF_ = $(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY))
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_XREF_0 = @echo " DOC Fixing cross-references";
+
+#### pdf ####
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_PDF = $(GTK_DOC_V_PDF_$(V))
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_PDF_ = $(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY))
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_PDF_0 = @echo " DOC Building PDF";
+
# PNGs are removed only in dist-clean
# Diagrams and logos are generated by dia in the current directory
DISTCLEANFILES = \
@@ -597,9 +647,9 @@ distclean-generic:
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
+@ENABLE_GTK_DOC_FALSE@install-data-local:
@ENABLE_GTK_DOC_FALSE@uninstall-local:
@ENABLE_GTK_DOC_FALSE@distclean-local:
-@ENABLE_GTK_DOC_FALSE@install-data-local:
@ENABLE_GTK_DOC_FALSE@maintainer-clean-local:
@ENABLE_GTK_DOC_FALSE@clean-local:
clean: clean-am
@@ -693,35 +743,28 @@ uninstall-am: uninstall-local
@ENABLE_GTK_DOC_TRUE@$(REPORT_FILES): sgml-build.stamp
-#### setup ####
-
@ENABLE_GTK_DOC_TRUE@setup-build.stamp:
-@ENABLE_GTK_DOC_TRUE@ -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
-@ENABLE_GTK_DOC_TRUE@ echo ' DOC Preparing build'; \
+@ENABLE_GTK_DOC_TRUE@ -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
@ENABLE_GTK_DOC_TRUE@ files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \
@ENABLE_GTK_DOC_TRUE@ if test "x$$files" != "x" ; then \
@ENABLE_GTK_DOC_TRUE@ for file in $$files ; do \
@ENABLE_GTK_DOC_TRUE@ test -f $(abs_srcdir)/$$file && \
-@ENABLE_GTK_DOC_TRUE@ cp -pu $(abs_srcdir)/$$file $(abs_builddir)/ || true; \
+@ENABLE_GTK_DOC_TRUE@ cp -pu $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \
@ENABLE_GTK_DOC_TRUE@ done; \
@ENABLE_GTK_DOC_TRUE@ fi; \
@ENABLE_GTK_DOC_TRUE@ test -d $(abs_srcdir)/tmpl && \
@ENABLE_GTK_DOC_TRUE@ { cp -rp $(abs_srcdir)/tmpl $(abs_builddir)/; \
@ENABLE_GTK_DOC_TRUE@ chmod -R u+w $(abs_builddir)/tmpl; } \
@ENABLE_GTK_DOC_TRUE@ fi
-@ENABLE_GTK_DOC_TRUE@ @touch setup-build.stamp
-
-#### scan ####
+@ENABLE_GTK_DOC_TRUE@ $(AM_V_at)touch setup-build.stamp
@ENABLE_GTK_DOC_TRUE@scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
-@ENABLE_GTK_DOC_TRUE@ @echo ' DOC Scanning header files'
-@ENABLE_GTK_DOC_TRUE@ @_source_dir='' ; \
+@ENABLE_GTK_DOC_TRUE@ $(GTK_DOC_V_SCAN)_source_dir='' ; \
@ENABLE_GTK_DOC_TRUE@ for i in $(DOC_SOURCE_DIR) ; do \
@ENABLE_GTK_DOC_TRUE@ _source_dir="$${_source_dir} --source-dir=$$i" ; \
@ENABLE_GTK_DOC_TRUE@ done ; \
@ENABLE_GTK_DOC_TRUE@ gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)
-@ENABLE_GTK_DOC_TRUE@ @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
-@ENABLE_GTK_DOC_TRUE@ echo " DOC Introspecting gobjects"; \
+@ENABLE_GTK_DOC_TRUE@ $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
@ENABLE_GTK_DOC_TRUE@ scanobj_options=""; \
@ENABLE_GTK_DOC_TRUE@ gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \
@ENABLE_GTK_DOC_TRUE@ if test "$(?)" = "0"; then \
@@ -736,22 +779,19 @@ uninstall-am: uninstall-local
@ENABLE_GTK_DOC_TRUE@ test -f $$i || touch $$i ; \
@ENABLE_GTK_DOC_TRUE@ done \
@ENABLE_GTK_DOC_TRUE@ fi
-@ENABLE_GTK_DOC_TRUE@ @touch scan-build.stamp
+@ENABLE_GTK_DOC_TRUE@ $(AM_V_at)touch scan-build.stamp
@ENABLE_GTK_DOC_TRUE@$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp
@ENABLE_GTK_DOC_TRUE@ @true
-#### templates ####
-
@ENABLE_GTK_DOC_TRUE@tmpl-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
-@ENABLE_GTK_DOC_TRUE@ @echo ' DOC Rebuilding template files'
-@ENABLE_GTK_DOC_TRUE@ @gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS)
-@ENABLE_GTK_DOC_TRUE@ @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
+@ENABLE_GTK_DOC_TRUE@ $(GTK_DOC_V_TMPL)gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS)
+@ENABLE_GTK_DOC_TRUE@ $(AM_V_at)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
@ENABLE_GTK_DOC_TRUE@ if test -w $(abs_srcdir) ; then \
@ENABLE_GTK_DOC_TRUE@ cp -rp $(abs_builddir)/tmpl $(abs_srcdir)/; \
@ENABLE_GTK_DOC_TRUE@ fi \
@ENABLE_GTK_DOC_TRUE@ fi
-@ENABLE_GTK_DOC_TRUE@ @touch tmpl-build.stamp
+@ENABLE_GTK_DOC_TRUE@ $(AM_V_at)touch tmpl-build.stamp
@ENABLE_GTK_DOC_TRUE@tmpl.stamp: tmpl-build.stamp
@ENABLE_GTK_DOC_TRUE@ @true
@@ -759,28 +799,20 @@ uninstall-am: uninstall-local
@ENABLE_GTK_DOC_TRUE@$(srcdir)/tmpl/*.sgml:
@ENABLE_GTK_DOC_TRUE@ @true
-#### xml ####
-
@ENABLE_GTK_DOC_TRUE@sgml-build.stamp: tmpl.stamp $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files)
-@ENABLE_GTK_DOC_TRUE@ @echo ' DOC Building XML'
-@ENABLE_GTK_DOC_TRUE@ @-chmod -R u+w $(srcdir)
-@ENABLE_GTK_DOC_TRUE@ @_source_dir='' ; \
+@ENABLE_GTK_DOC_TRUE@ $(GTK_DOC_V_XML)-chmod -R u+w $(srcdir) && _source_dir='' ; \
@ENABLE_GTK_DOC_TRUE@ for i in $(DOC_SOURCE_DIR) ; do \
@ENABLE_GTK_DOC_TRUE@ _source_dir="$${_source_dir} --source-dir=$$i" ; \
@ENABLE_GTK_DOC_TRUE@ done ; \
@ENABLE_GTK_DOC_TRUE@ gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS)
-@ENABLE_GTK_DOC_TRUE@ @touch sgml-build.stamp
+@ENABLE_GTK_DOC_TRUE@ $(AM_V_at)touch sgml-build.stamp
@ENABLE_GTK_DOC_TRUE@sgml.stamp: sgml-build.stamp
@ENABLE_GTK_DOC_TRUE@ @true
-#### html ####
-
@ENABLE_GTK_DOC_TRUE@html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
-@ENABLE_GTK_DOC_TRUE@ @echo ' DOC Building HTML'
-@ENABLE_GTK_DOC_TRUE@ @rm -rf html
-@ENABLE_GTK_DOC_TRUE@ @mkdir html
-@ENABLE_GTK_DOC_TRUE@ @mkhtml_options=""; \
+@ENABLE_GTK_DOC_TRUE@ $(GTK_DOC_V_HTML)rm -rf html && mkdir html && \
+@ENABLE_GTK_DOC_TRUE@ mkhtml_options=""; \
@ENABLE_GTK_DOC_TRUE@ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \
@ENABLE_GTK_DOC_TRUE@ if test "$(?)" = "0"; then \
@ENABLE_GTK_DOC_TRUE@ if test "x$(V)" = "x1"; then \
@@ -801,16 +833,12 @@ uninstall-am: uninstall-local
@ENABLE_GTK_DOC_TRUE@ cp $(abs_builddir)/$$file $(abs_builddir)/html; \
@ENABLE_GTK_DOC_TRUE@ fi; \
@ENABLE_GTK_DOC_TRUE@ done;
-@ENABLE_GTK_DOC_TRUE@ @echo ' DOC Fixing cross-references'
-@ENABLE_GTK_DOC_TRUE@ @gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
-@ENABLE_GTK_DOC_TRUE@ @touch html-build.stamp
-
-#### pdf ####
+@ENABLE_GTK_DOC_TRUE@ $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
+@ENABLE_GTK_DOC_TRUE@ $(AM_V_at)touch html-build.stamp
@ENABLE_GTK_DOC_TRUE@pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
-@ENABLE_GTK_DOC_TRUE@ @echo ' DOC Building PDF'
-@ENABLE_GTK_DOC_TRUE@ @rm -f $(DOC_MODULE).pdf
-@ENABLE_GTK_DOC_TRUE@ @mkpdf_options=""; \
+@ENABLE_GTK_DOC_TRUE@ $(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \
+@ENABLE_GTK_DOC_TRUE@ mkpdf_options=""; \
@ENABLE_GTK_DOC_TRUE@ gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \
@ENABLE_GTK_DOC_TRUE@ if test "$(?)" = "0"; then \
@ENABLE_GTK_DOC_TRUE@ if test "x$(V)" = "x1"; then \
@@ -827,7 +855,7 @@ uninstall-am: uninstall-local
@ENABLE_GTK_DOC_TRUE@ done; \
@ENABLE_GTK_DOC_TRUE@ fi; \
@ENABLE_GTK_DOC_TRUE@ gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)
-@ENABLE_GTK_DOC_TRUE@ @touch pdf-build.stamp
+@ENABLE_GTK_DOC_TRUE@ $(AM_V_at)touch pdf-build.stamp
##############
diff --git a/docs/reference/api/ModemManager-dbus-reference.xml b/docs/reference/api/ModemManager-dbus-reference.xml
index f6f7d32..fb15f98 100644
--- a/docs/reference/api/ModemManager-dbus-reference.xml
+++ b/docs/reference/api/ModemManager-dbus-reference.xml
@@ -136,6 +136,8 @@
<xi:include href="../../../../libmm-glib/generated/mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Location.xml"/>
<xi:include href="../../../../libmm-glib/generated/mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Time.xml"/>
<xi:include href="../../../../libmm-glib/generated/mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Firmware.xml"/>
+ <xi:include href="../../../../libmm-glib/generated/mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Signal.xml"/>
+ <xi:include href="../../../../libmm-glib/generated/mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Oma.xml"/>
<!--xi:include href="../../../../libmm-glib/generated/mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Contacts.xml"/-->
</chapter>
diff --git a/docs/reference/api/ModemManager-sections.txt b/docs/reference/api/ModemManager-sections.txt
index f2d0ded..fd551a2 100644
--- a/docs/reference/api/ModemManager-sections.txt
+++ b/docs/reference/api/ModemManager-sections.txt
@@ -16,6 +16,7 @@ MMBearerAllowedAuth
MMFirmwareImageType
MMModem3gppFacility
MMModem3gppNetworkAvailability
+MMModem3gppSubscriptionState
MMModem3gppRegistrationState
MMModem3gppUssdSessionState
MMModemAccessTechnology
@@ -33,11 +34,17 @@ MMModemStateFailedReason
MMModemStateChangeReason
MMModemPowerState
MMModemPortType
+MMOmaFeature
+MMOmaSessionState
+MMOmaSessionStateFailedReason
+MMOmaSessionType
MMSmsPduType
MMSmsState
MMSmsDeliveryState
MMSmsStorage
MMSmsValidityType
+MMSmsCdmaTeleserviceId
+MMSmsCdmaServiceCategory
</SECTION>
<SECTION>
diff --git a/docs/reference/api/html/ModemManager-Errors.html b/docs/reference/api/html/ModemManager-Errors.html
index a5f69d0..1a17619 100644
--- a/docs/reference/api/html/ModemManager-Errors.html
+++ b/docs/reference/api/html/ModemManager-Errors.html
@@ -8,7 +8,7 @@
<link rel="up" href="ref-common-types.html" title="Part II. Common types and definitions">
<link rel="prev" href="ModemManager-Flags-and-Enumerations.html" title="Flags and Enumerations">
<link rel="next" href="ref-dbus.html" title="Part III. D-Bus Reference">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -408,23 +408,23 @@ Enumeration of message errors, as defined in 3GPP TS 27.005 version 10 section 3
MM_MOBILE_EQUIPMENT_ERROR_CORP_PUK = 47, /*&lt; nick=CorpPuk &gt;*/
MM_MOBILE_EQUIPMENT_ERROR_UNKNOWN = 100, /*&lt; nick=Unknown &gt;*/
/* GPRS related errors */
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_IMSI_UNKNOWN_IN_HLR = 102, /*&lt; nick=Gprs.ImsiUnknownInHlr &gt;*/
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_ILLEGAL_MS = 103, /*&lt; nick=Gprs.IllegalMs &gt;*/
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_IMSI_UNKNOWN_IN_VLR = 104, /*&lt; nick=Gprs.ImsiUnknownInVlr &gt;*/
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_ILLEGAL_ME = 106, /*&lt; nick=Gprs.IllegalMe &gt;*/
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_SERVICE_NOT_ALLOWED = 107, /*&lt; nick=Gprs.ServiceNotAllowed &gt;*/
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_PLMN_NOT_ALLOWED = 111, /*&lt; nick=Gprs.PlmnNotAllowed &gt;*/
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_LOCATION_NOT_ALLOWED = 112, /*&lt; nick=Gprs.LocationNotAllowed &gt;*/
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_ROAMING_NOT_ALLOWED = 113, /*&lt; nick=Gprs.RomaingNotAllowed &gt;*/
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_NO_CELLS_IN_LOCATION_AREA = 115, /*&lt; nick=Gprs.NoCellsInLocationArea &gt;*/
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_NETWORK_FAILURE = 117, /*&lt; nick=Gprs.NetworkFailure &gt;*/
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_CONGESTION = 122, /*&lt; nick=Gprs.Congestion &gt;*/
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_SERVICE_OPTION_NOT_SUPPORTED = 132, /*&lt; nick=Gprs.ServiceOptionNotSupported &gt;*/
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_SERVICE_OPTION_NOT_SUBSCRIBED = 133, /*&lt; nick=Gprs.ServiceOptionNotSubscribed &gt;*/
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_SERVICE_OPTION_OUT_OF_ORDER = 134, /*&lt; nick=Gprs.ServiceOptionOutOfOrder &gt;*/
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_UNKNOWN = 148, /*&lt; nick=Gprs.Unknown &gt;*/
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_PDP_AUTH_FAILURE = 149, /*&lt; nick=Gprs.PdpAuthFailure &gt;*/
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_INVALID_MOBILE_CLASS = 150, /*&lt; nick=Gprs.InvalidMobileClass &gt;*/
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_IMSI_UNKNOWN_IN_HLR = 102, /*&lt; nick=GprsImsiUnknownInHlr &gt;*/
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_ILLEGAL_MS = 103, /*&lt; nick=GprsIllegalMs &gt;*/
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_IMSI_UNKNOWN_IN_VLR = 104, /*&lt; nick=GprsImsiUnknownInVlr &gt;*/
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_ILLEGAL_ME = 106, /*&lt; nick=GprsIllegalMe &gt;*/
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_SERVICE_NOT_ALLOWED = 107, /*&lt; nick=GprsServiceNotAllowed &gt;*/
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_PLMN_NOT_ALLOWED = 111, /*&lt; nick=GprsPlmnNotAllowed &gt;*/
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_LOCATION_NOT_ALLOWED = 112, /*&lt; nick=GprsLocationNotAllowed &gt;*/
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_ROAMING_NOT_ALLOWED = 113, /*&lt; nick=GprsRomaingNotAllowed &gt;*/
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_NO_CELLS_IN_LOCATION_AREA = 115, /*&lt; nick=GprsNoCellsInLocationArea &gt;*/
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_NETWORK_FAILURE = 117, /*&lt; nick=GprsNetworkFailure &gt;*/
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_CONGESTION = 122, /*&lt; nick=GprsCongestion &gt;*/
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_SERVICE_OPTION_NOT_SUPPORTED = 132, /*&lt; nick=GprsServiceOptionNotSupported &gt;*/
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_SERVICE_OPTION_NOT_SUBSCRIBED = 133, /*&lt; nick=GprsServiceOptionNotSubscribed &gt;*/
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_SERVICE_OPTION_OUT_OF_ORDER = 134, /*&lt; nick=GprsServiceOptionOutOfOrder &gt;*/
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_UNKNOWN = 148, /*&lt; nick=GprsUnknown &gt;*/
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_PDP_AUTH_FAILURE = 149, /*&lt; nick=GprsPdpAuthFailure &gt;*/
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_INVALID_MOBILE_CLASS = 150, /*&lt; nick=GprsInvalidMobileClass &gt;*/
} MMMobileEquipmentError;
</pre>
<p>
@@ -859,6 +859,6 @@ CDMA Activation errors.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/ModemManager-Flags-and-Enumerations.html b/docs/reference/api/html/ModemManager-Flags-and-Enumerations.html
index 0d20495..54f0091 100644
--- a/docs/reference/api/html/ModemManager-Flags-and-Enumerations.html
+++ b/docs/reference/api/html/ModemManager-Flags-and-Enumerations.html
@@ -8,7 +8,7 @@
<link rel="up" href="ref-common-types.html" title="Part II. Common types and definitions">
<link rel="prev" href="ModemManager-Version-checks.html" title="Version checks">
<link rel="next" href="ModemManager-Errors.html" title="Errors">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -43,6 +43,7 @@ enum <a class="link" href="ModemManager-Flags-and-Enumerations.ht
enum <a class="link" href="ModemManager-Flags-and-Enumerations.html#MMFirmwareImageType" title="enum MMFirmwareImageType">MMFirmwareImageType</a>;
enum <a class="link" href="ModemManager-Flags-and-Enumerations.html#MMModem3gppFacility" title="enum MMModem3gppFacility">MMModem3gppFacility</a>;
enum <a class="link" href="ModemManager-Flags-and-Enumerations.html#MMModem3gppNetworkAvailability" title="enum MMModem3gppNetworkAvailability">MMModem3gppNetworkAvailability</a>;
+enum <a class="link" href="ModemManager-Flags-and-Enumerations.html#MMModem3gppSubscriptionState" title="enum MMModem3gppSubscriptionState">MMModem3gppSubscriptionState</a>;
enum <a class="link" href="ModemManager-Flags-and-Enumerations.html#MMModem3gppRegistrationState" title="enum MMModem3gppRegistrationState">MMModem3gppRegistrationState</a>;
enum <a class="link" href="ModemManager-Flags-and-Enumerations.html#MMModem3gppUssdSessionState" title="enum MMModem3gppUssdSessionState">MMModem3gppUssdSessionState</a>;
enum <a class="link" href="ModemManager-Flags-and-Enumerations.html#MMModemAccessTechnology" title="enum MMModemAccessTechnology">MMModemAccessTechnology</a>;
@@ -60,11 +61,17 @@ enum <a class="link" href="ModemManager-Flags-and-Enumerations.ht
enum <a class="link" href="ModemManager-Flags-and-Enumerations.html#MMModemStateChangeReason" title="enum MMModemStateChangeReason">MMModemStateChangeReason</a>;
enum <a class="link" href="ModemManager-Flags-and-Enumerations.html#MMModemPowerState" title="enum MMModemPowerState">MMModemPowerState</a>;
enum <a class="link" href="ModemManager-Flags-and-Enumerations.html#MMModemPortType" title="enum MMModemPortType">MMModemPortType</a>;
+enum <a class="link" href="ModemManager-Flags-and-Enumerations.html#MMOmaFeature" title="enum MMOmaFeature">MMOmaFeature</a>;
+enum <a class="link" href="ModemManager-Flags-and-Enumerations.html#MMOmaSessionState" title="enum MMOmaSessionState">MMOmaSessionState</a>;
+enum <a class="link" href="ModemManager-Flags-and-Enumerations.html#MMOmaSessionStateFailedReason" title="enum MMOmaSessionStateFailedReason">MMOmaSessionStateFailedReason</a>;
+enum <a class="link" href="ModemManager-Flags-and-Enumerations.html#MMOmaSessionType" title="enum MMOmaSessionType">MMOmaSessionType</a>;
enum <a class="link" href="ModemManager-Flags-and-Enumerations.html#MMSmsPduType" title="enum MMSmsPduType">MMSmsPduType</a>;
enum <a class="link" href="ModemManager-Flags-and-Enumerations.html#MMSmsState" title="enum MMSmsState">MMSmsState</a>;
enum <a class="link" href="ModemManager-Flags-and-Enumerations.html#MMSmsDeliveryState" title="enum MMSmsDeliveryState">MMSmsDeliveryState</a>;
enum <a class="link" href="ModemManager-Flags-and-Enumerations.html#MMSmsStorage" title="enum MMSmsStorage">MMSmsStorage</a>;
enum <a class="link" href="ModemManager-Flags-and-Enumerations.html#MMSmsValidityType" title="enum MMSmsValidityType">MMSmsValidityType</a>;
+enum <a class="link" href="ModemManager-Flags-and-Enumerations.html#MMSmsCdmaTeleserviceId" title="enum MMSmsCdmaTeleserviceId">MMSmsCdmaTeleserviceId</a>;
+enum <a class="link" href="ModemManager-Flags-and-Enumerations.html#MMSmsCdmaServiceCategory" title="enum MMSmsCdmaServiceCategory">MMSmsCdmaServiceCategory</a>;
</pre>
</div>
<div class="refsect1">
@@ -387,6 +394,50 @@ Network availability status as defined in 3GPP TS 27.007 section 7.3
</div>
<hr>
<div class="refsect2">
+<a name="MMModem3gppSubscriptionState"></a><h3>enum MMModem3gppSubscriptionState</h3>
+<pre class="programlisting">typedef enum {
+ /*&lt; underscore_name=mm_modem_3gpp_subscription_state &gt;*/
+ MM_MODEM_3GPP_SUBSCRIPTION_STATE_UNKNOWN = 0,
+ MM_MODEM_3GPP_SUBSCRIPTION_STATE_UNPROVISIONED = 1,
+ MM_MODEM_3GPP_SUBSCRIPTION_STATE_PROVISIONED = 2,
+ MM_MODEM_3GPP_SUBSCRIPTION_STATE_OUT_OF_DATA = 3,
+} MMModem3gppSubscriptionState;
+</pre>
+<p>
+Describes the current subscription status of the SIM. This value is only available after the
+modem attempts to register with the network.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><a name="MM-MODEM-3GPP-SUBSCRIPTION-STATE-UNKNOWN:CAPS"></a><span class="term"><code class="literal">MM_MODEM_3GPP_SUBSCRIPTION_STATE_UNKNOWN</code></span></p></td>
+<td>The subscription state is unknown.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-MODEM-3GPP-SUBSCRIPTION-STATE-UNPROVISIONED:CAPS"></a><span class="term"><code class="literal">MM_MODEM_3GPP_SUBSCRIPTION_STATE_UNPROVISIONED</code></span></p></td>
+<td>The account is unprovisioned.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-MODEM-3GPP-SUBSCRIPTION-STATE-PROVISIONED:CAPS"></a><span class="term"><code class="literal">MM_MODEM_3GPP_SUBSCRIPTION_STATE_PROVISIONED</code></span></p></td>
+<td>The account is provisioned and has data available.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-MODEM-3GPP-SUBSCRIPTION-STATE-OUT-OF-DATA:CAPS"></a><span class="term"><code class="literal">MM_MODEM_3GPP_SUBSCRIPTION_STATE_OUT_OF_DATA</code></span></p></td>
+<td>The account is provisioned but there is no data left.
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
<a name="MMModem3gppRegistrationState"></a><h3>enum MMModem3gppRegistrationState</h3>
<pre class="programlisting">typedef enum {
/*&lt; underscore_name=mm_modem_3gpp_registration_state &gt;*/
@@ -1821,13 +1872,275 @@ Type of modem port.
</div>
<hr>
<div class="refsect2">
+<a name="MMOmaFeature"></a><h3>enum MMOmaFeature</h3>
+<pre class="programlisting">typedef enum {
+ /*&lt; underscore_name=mm_oma_feature &gt;*/
+ MM_OMA_FEATURE_NONE = 0,
+ MM_OMA_FEATURE_DEVICE_PROVISIONING = 1 &lt;&lt; 0,
+ MM_OMA_FEATURE_PRL_UPDATE = 1 &lt;&lt; 1,
+ MM_OMA_FEATURE_HANDS_FREE_ACTIVATION = 1 &lt;&lt; 2,
+} MMOmaFeature;
+</pre>
+<p>
+Features that can be enabled or disabled in the OMA device management support.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><a name="MM-OMA-FEATURE-NONE:CAPS"></a><span class="term"><code class="literal">MM_OMA_FEATURE_NONE</code></span></p></td>
+<td>None.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-OMA-FEATURE-DEVICE-PROVISIONING:CAPS"></a><span class="term"><code class="literal">MM_OMA_FEATURE_DEVICE_PROVISIONING</code></span></p></td>
+<td>Device provisioning service.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-OMA-FEATURE-PRL-UPDATE:CAPS"></a><span class="term"><code class="literal">MM_OMA_FEATURE_PRL_UPDATE</code></span></p></td>
+<td>PRL update service.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-OMA-FEATURE-HANDS-FREE-ACTIVATION:CAPS"></a><span class="term"><code class="literal">MM_OMA_FEATURE_HANDS_FREE_ACTIVATION</code></span></p></td>
+<td>Hands free activation service.
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="MMOmaSessionState"></a><h3>enum MMOmaSessionState</h3>
+<pre class="programlisting">typedef enum {
+ /*&lt; underscore_name=mm_oma_session_state &gt;*/
+ MM_OMA_SESSION_STATE_FAILED = -1,
+ MM_OMA_SESSION_STATE_UNKNOWN = 0,
+ MM_OMA_SESSION_STATE_STARTED = 1,
+ MM_OMA_SESSION_STATE_RETRYING = 2,
+ MM_OMA_SESSION_STATE_CONNECTING = 3,
+ MM_OMA_SESSION_STATE_CONNECTED = 4,
+ MM_OMA_SESSION_STATE_AUTHENTICATED = 5,
+ MM_OMA_SESSION_STATE_MDN_DOWNLOADED = 10,
+ MM_OMA_SESSION_STATE_MSID_DOWNLOADED = 11,
+ MM_OMA_SESSION_STATE_PRL_DOWNLOADED = 12,
+ MM_OMA_SESSION_STATE_MIP_PROFILE_DOWNLOADED = 13,
+ MM_OMA_SESSION_STATE_COMPLETED = 20,
+} MMOmaSessionState;
+</pre>
+<p>
+State of the OMA device management session.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><a name="MM-OMA-SESSION-STATE-FAILED:CAPS"></a><span class="term"><code class="literal">MM_OMA_SESSION_STATE_FAILED</code></span></p></td>
+<td>Failed.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-OMA-SESSION-STATE-UNKNOWN:CAPS"></a><span class="term"><code class="literal">MM_OMA_SESSION_STATE_UNKNOWN</code></span></p></td>
+<td>Unknown.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-OMA-SESSION-STATE-STARTED:CAPS"></a><span class="term"><code class="literal">MM_OMA_SESSION_STATE_STARTED</code></span></p></td>
+<td>Started.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-OMA-SESSION-STATE-RETRYING:CAPS"></a><span class="term"><code class="literal">MM_OMA_SESSION_STATE_RETRYING</code></span></p></td>
+<td>Retrying.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-OMA-SESSION-STATE-CONNECTING:CAPS"></a><span class="term"><code class="literal">MM_OMA_SESSION_STATE_CONNECTING</code></span></p></td>
+<td>Connecting.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-OMA-SESSION-STATE-CONNECTED:CAPS"></a><span class="term"><code class="literal">MM_OMA_SESSION_STATE_CONNECTED</code></span></p></td>
+<td>Connected.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-OMA-SESSION-STATE-AUTHENTICATED:CAPS"></a><span class="term"><code class="literal">MM_OMA_SESSION_STATE_AUTHENTICATED</code></span></p></td>
+<td>Authenticated.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-OMA-SESSION-STATE-MDN-DOWNLOADED:CAPS"></a><span class="term"><code class="literal">MM_OMA_SESSION_STATE_MDN_DOWNLOADED</code></span></p></td>
+<td>MDN downloaded.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-OMA-SESSION-STATE-MSID-DOWNLOADED:CAPS"></a><span class="term"><code class="literal">MM_OMA_SESSION_STATE_MSID_DOWNLOADED</code></span></p></td>
+<td>MSID downloaded.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-OMA-SESSION-STATE-PRL-DOWNLOADED:CAPS"></a><span class="term"><code class="literal">MM_OMA_SESSION_STATE_PRL_DOWNLOADED</code></span></p></td>
+<td>PRL downloaded.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-OMA-SESSION-STATE-MIP-PROFILE-DOWNLOADED:CAPS"></a><span class="term"><code class="literal">MM_OMA_SESSION_STATE_MIP_PROFILE_DOWNLOADED</code></span></p></td>
+<td>MIP profile downloaded.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-OMA-SESSION-STATE-COMPLETED:CAPS"></a><span class="term"><code class="literal">MM_OMA_SESSION_STATE_COMPLETED</code></span></p></td>
+<td>Session completed.
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="MMOmaSessionStateFailedReason"></a><h3>enum MMOmaSessionStateFailedReason</h3>
+<pre class="programlisting">typedef enum {
+ /*&lt; underscore_name=mm_oma_session_state_failed_reason &gt;*/
+ MM_OMA_SESSION_STATE_FAILED_REASON_UNKNOWN = 0,
+ MM_OMA_SESSION_STATE_FAILED_REASON_NETWORK_UNAVAILABLE = 1,
+ MM_OMA_SESSION_STATE_FAILED_REASON_SERVER_UNAVAILABLE = 2,
+ MM_OMA_SESSION_STATE_FAILED_REASON_AUTHENTICATION_FAILED = 3,
+ MM_OMA_SESSION_STATE_FAILED_REASON_MAX_RETRY_EXCEEDED = 4,
+ MM_OMA_SESSION_STATE_FAILED_REASON_SESSION_CANCELLED = 5
+} MMOmaSessionStateFailedReason;
+</pre>
+<p>
+Reason of failure in the OMA device management session.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><a name="MM-OMA-SESSION-STATE-FAILED-REASON-UNKNOWN:CAPS"></a><span class="term"><code class="literal">MM_OMA_SESSION_STATE_FAILED_REASON_UNKNOWN</code></span></p></td>
+<td>No reason or unknown.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-OMA-SESSION-STATE-FAILED-REASON-NETWORK-UNAVAILABLE:CAPS"></a><span class="term"><code class="literal">MM_OMA_SESSION_STATE_FAILED_REASON_NETWORK_UNAVAILABLE</code></span></p></td>
+<td>Network unavailable.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-OMA-SESSION-STATE-FAILED-REASON-SERVER-UNAVAILABLE:CAPS"></a><span class="term"><code class="literal">MM_OMA_SESSION_STATE_FAILED_REASON_SERVER_UNAVAILABLE</code></span></p></td>
+<td>Server unavailable.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-OMA-SESSION-STATE-FAILED-REASON-AUTHENTICATION-FAILED:CAPS"></a><span class="term"><code class="literal">MM_OMA_SESSION_STATE_FAILED_REASON_AUTHENTICATION_FAILED</code></span></p></td>
+<td>Authentication failed.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-OMA-SESSION-STATE-FAILED-REASON-MAX-RETRY-EXCEEDED:CAPS"></a><span class="term"><code class="literal">MM_OMA_SESSION_STATE_FAILED_REASON_MAX_RETRY_EXCEEDED</code></span></p></td>
+<td>Maximum retries exceeded.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-OMA-SESSION-STATE-FAILED-REASON-SESSION-CANCELLED:CAPS"></a><span class="term"><code class="literal">MM_OMA_SESSION_STATE_FAILED_REASON_SESSION_CANCELLED</code></span></p></td>
+<td>Session cancelled.
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="MMOmaSessionType"></a><h3>enum MMOmaSessionType</h3>
+<pre class="programlisting">typedef enum {
+ /*&lt; underscore_name=mm_oma_session_type &gt;*/
+ MM_OMA_SESSION_TYPE_UNKNOWN = 0,
+ MM_OMA_SESSION_TYPE_CLIENT_INITIATED_DEVICE_CONFIGURE = 10,
+ MM_OMA_SESSION_TYPE_CLIENT_INITIATED_PRL_UPDATE = 11,
+ MM_OMA_SESSION_TYPE_CLIENT_INITIATED_HANDS_FREE_ACTIVATION = 12,
+ MM_OMA_SESSION_TYPE_NETWORK_INITIATED_DEVICE_CONFIGURE = 20,
+ MM_OMA_SESSION_TYPE_NETWORK_INITIATED_PRL_UPDATE = 21,
+ MM_OMA_SESSION_TYPE_DEVICE_INITIATED_PRL_UPDATE = 30,
+ MM_OMA_SESSION_TYPE_DEVICE_INITIATED_HANDS_FREE_ACTIVATION = 31,
+} MMOmaSessionType;
+</pre>
+<p>
+Type of OMA device management session.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><a name="MM-OMA-SESSION-TYPE-UNKNOWN:CAPS"></a><span class="term"><code class="literal">MM_OMA_SESSION_TYPE_UNKNOWN</code></span></p></td>
+<td>Unknown session type.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-OMA-SESSION-TYPE-CLIENT-INITIATED-DEVICE-CONFIGURE:CAPS"></a><span class="term"><code class="literal">MM_OMA_SESSION_TYPE_CLIENT_INITIATED_DEVICE_CONFIGURE</code></span></p></td>
+<td>Client-initiated device configure.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-OMA-SESSION-TYPE-CLIENT-INITIATED-PRL-UPDATE:CAPS"></a><span class="term"><code class="literal">MM_OMA_SESSION_TYPE_CLIENT_INITIATED_PRL_UPDATE</code></span></p></td>
+<td>Client-initiated PRL update.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-OMA-SESSION-TYPE-CLIENT-INITIATED-HANDS-FREE-ACTIVATION:CAPS"></a><span class="term"><code class="literal">MM_OMA_SESSION_TYPE_CLIENT_INITIATED_HANDS_FREE_ACTIVATION</code></span></p></td>
+<td>Client-initiated hands free activation.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-OMA-SESSION-TYPE-NETWORK-INITIATED-DEVICE-CONFIGURE:CAPS"></a><span class="term"><code class="literal">MM_OMA_SESSION_TYPE_NETWORK_INITIATED_DEVICE_CONFIGURE</code></span></p></td>
+<td>Network-initiated device configure.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-OMA-SESSION-TYPE-NETWORK-INITIATED-PRL-UPDATE:CAPS"></a><span class="term"><code class="literal">MM_OMA_SESSION_TYPE_NETWORK_INITIATED_PRL_UPDATE</code></span></p></td>
+<td>Network-initiated PRL update.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-OMA-SESSION-TYPE-DEVICE-INITIATED-PRL-UPDATE:CAPS"></a><span class="term"><code class="literal">MM_OMA_SESSION_TYPE_DEVICE_INITIATED_PRL_UPDATE</code></span></p></td>
+<td>Device-initiated PRL update.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-OMA-SESSION-TYPE-DEVICE-INITIATED-HANDS-FREE-ACTIVATION:CAPS"></a><span class="term"><code class="literal">MM_OMA_SESSION_TYPE_DEVICE_INITIATED_HANDS_FREE_ACTIVATION</code></span></p></td>
+<td>Device-initiated hands free activation.
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
<a name="MMSmsPduType"></a><h3>enum MMSmsPduType</h3>
<pre class="programlisting">typedef enum {
/*&lt; underscore_name=mm_sms_pdu_type &gt;*/
- MM_SMS_PDU_TYPE_UNKNOWN = 0,
+ MM_SMS_PDU_TYPE_UNKNOWN = 0,
MM_SMS_PDU_TYPE_DELIVER = 1,
MM_SMS_PDU_TYPE_SUBMIT = 2,
- MM_SMS_PDU_TYPE_STATUS_REPORT = 3
+ MM_SMS_PDU_TYPE_STATUS_REPORT = 3,
+ MM_SMS_PDU_TYPE_CDMA_DELIVER = 32,
+ MM_SMS_PDU_TYPE_CDMA_SUBMIT = 33,
+ MM_SMS_PDU_TYPE_CDMA_CANCELLATION = 34,
+ MM_SMS_PDU_TYPE_CDMA_DELIVERY_ACKNOWLEDGEMENT = 35,
+ MM_SMS_PDU_TYPE_CDMA_USER_ACKNOWLEDGEMENT = 36,
+ MM_SMS_PDU_TYPE_CDMA_READ_ACKNOWLEDGEMENT = 37,
} MMSmsPduType;
</pre>
<p>
@@ -1846,17 +2159,47 @@ Type of PDUs used in the SMS.
</tr>
<tr>
<td><p><a name="MM-SMS-PDU-TYPE-DELIVER:CAPS"></a><span class="term"><code class="literal">MM_SMS_PDU_TYPE_DELIVER</code></span></p></td>
-<td>SMS has been received from the SMSC.
+<td>3GPP Mobile-Terminated (MT) message.
</td>
</tr>
<tr>
<td><p><a name="MM-SMS-PDU-TYPE-SUBMIT:CAPS"></a><span class="term"><code class="literal">MM_SMS_PDU_TYPE_SUBMIT</code></span></p></td>
-<td>SMS is sent, or to be sent to the SMSC.
+<td>3GPP Mobile-Originated (MO) message.
</td>
</tr>
<tr>
<td><p><a name="MM-SMS-PDU-TYPE-STATUS-REPORT:CAPS"></a><span class="term"><code class="literal">MM_SMS_PDU_TYPE_STATUS_REPORT</code></span></p></td>
-<td>SMS is a status report received from the SMSC.
+<td>3GPP status report (MT).
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-PDU-TYPE-CDMA-DELIVER:CAPS"></a><span class="term"><code class="literal">MM_SMS_PDU_TYPE_CDMA_DELIVER</code></span></p></td>
+<td>3GPP2 Mobile-Terminated (MT) message.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-PDU-TYPE-CDMA-SUBMIT:CAPS"></a><span class="term"><code class="literal">MM_SMS_PDU_TYPE_CDMA_SUBMIT</code></span></p></td>
+<td>3GPP2 Mobile-Originated (MO) message.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-PDU-TYPE-CDMA-CANCELLATION:CAPS"></a><span class="term"><code class="literal">MM_SMS_PDU_TYPE_CDMA_CANCELLATION</code></span></p></td>
+<td>3GPP2 Cancellation (MO) message.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-PDU-TYPE-CDMA-DELIVERY-ACKNOWLEDGEMENT:CAPS"></a><span class="term"><code class="literal">MM_SMS_PDU_TYPE_CDMA_DELIVERY_ACKNOWLEDGEMENT</code></span></p></td>
+<td>3GPP2 Delivery Acknowledgement (MT) message.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-PDU-TYPE-CDMA-USER-ACKNOWLEDGEMENT:CAPS"></a><span class="term"><code class="literal">MM_SMS_PDU_TYPE_CDMA_USER_ACKNOWLEDGEMENT</code></span></p></td>
+<td>3GPP2 User Acknowledgement (MT or MO) message.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-PDU-TYPE-CDMA-READ-ACKNOWLEDGEMENT:CAPS"></a><span class="term"><code class="literal">MM_SMS_PDU_TYPE_CDMA_READ_ACKNOWLEDGEMENT</code></span></p></td>
+<td>3GPP2 Read Acknowledgement (MT or MO) message.
</td>
</tr>
</tbody>
@@ -1922,6 +2265,8 @@ State of a given SMS.
<a name="MMSmsDeliveryState"></a><h3>enum MMSmsDeliveryState</h3>
<pre class="programlisting">typedef enum {
/*&lt; underscore_name=mm_sms_delivery_state &gt;*/
+ /* --------------- 3GPP specific errors ---------------------- */
+
/* Completed deliveries */
MM_SMS_DELIVERY_STATE_COMPLETED_RECEIVED = 0x00,
MM_SMS_DELIVERY_STATE_COMPLETED_FORWARDED_UNCONFIRMED = 0x01,
@@ -1956,11 +2301,80 @@ State of a given SMS.
MM_SMS_DELIVERY_STATE_TEMPORARY_FATAL_ERROR_IN_SME = 0x65,
/* Unknown, out of any possible valid value [0x00-0xFF] */
- MM_SMS_DELIVERY_STATE_UNKNOWN = 0x100
+ MM_SMS_DELIVERY_STATE_UNKNOWN = 0x100,
+
+ /* --------------- 3GPP2 specific errors ---------------------- */
+
+ /* Network problems */
+ MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_ADDRESS_VACANT = 0x200,
+ MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_ADDRESS_TRANSLATION_FAILURE = 0x201,
+ MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_NETWORK_RESOURCE_OUTAGE = 0x202,
+ MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_NETWORK_FAILURE = 0x203,
+ MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_INVALID_TELESERVICE_ID = 0x204,
+ MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_OTHER = 0x205,
+ /* Terminal problems */
+ MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_NO_PAGE_RESPONSE = 0x220,
+ MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_DESTINATION_BUSY = 0x221,
+ MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_NO_ACKNOWLEDGMENT = 0x222,
+ MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_DESTINATION_RESOURCE_SHORTAGE = 0x223,
+ MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_SMS_DELIVERY_POSTPONED = 0x224,
+ MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_DESTINATION_OUT_OF_SERVICE = 0x225,
+ MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_DESTINATION_NO_LONGER_AT_THIS_ADDRESS = 0x226,
+ MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_OTHER = 0x227,
+ /* Radio problems */
+ MM_SMS_DELIVERY_STATE_RADIO_INTERFACE_PROBLEM_RESOURCE_SHORTAGE = 0x240,
+ MM_SMS_DELIVERY_STATE_RADIO_INTERFACE_PROBLEM_INCOMPATIBILITY = 0x241,
+ MM_SMS_DELIVERY_STATE_RADIO_INTERFACE_PROBLEM_OTHER = 0x242,
+ /* General problems */
+ MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_ENCODING = 0x260,
+ MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_SMS_ORIGINATION_DENIED = 0x261,
+ MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_SMS_TERMINATION_DENIED = 0x262,
+ MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_SUPPLEMENTARY_SERVICE_NOT_SUPPORTED = 0x263,
+ MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_SMS_NOT_SUPPORTED = 0x264,
+ MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_MISSING_EXPECTED_PARAMETER = 0x266,
+ MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_MISSING_MANDATORY_PARAMETER = 0x267,
+ MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_UNRECOGNIZED_PARAMETER_VALUE = 0x268,
+ MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_UNEXPECTED_PARAMETER_VALUE = 0x269,
+ MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_USER_DATA_SIZE_ERROR = 0x26A,
+ MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_OTHER = 0x26B,
+
+ /* Temporary network problems */
+ MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_ADDRESS_VACANT = 0x300,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_ADDRESS_TRANSLATION_FAILURE = 0x301,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_NETWORK_RESOURCE_OUTAGE = 0x302,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_NETWORK_FAILURE = 0x303,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_INVALID_TELESERVICE_ID = 0x304,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_OTHER = 0x305,
+ /* Temporary terminal problems */
+ MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_NO_PAGE_RESPONSE = 0x320,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_DESTINATION_BUSY = 0x321,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_NO_ACKNOWLEDGMENT = 0x322,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_DESTINATION_RESOURCE_SHORTAGE = 0x323,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_SMS_DELIVERY_POSTPONED = 0x324,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_DESTINATION_OUT_OF_SERVICE = 0x325,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_DESTINATION_NO_LONGER_AT_THIS_ADDRESS = 0x326,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_OTHER = 0x327,
+ /* Temporary radio problems */
+ MM_SMS_DELIVERY_STATE_TEMPORARY_RADIO_INTERFACE_PROBLEM_RESOURCE_SHORTAGE = 0x340,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_RADIO_INTERFACE_PROBLEM_INCOMPATIBILITY = 0x341,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_RADIO_INTERFACE_PROBLEM_OTHER = 0x342,
+ /* Temporary general problems */
+ MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_ENCODING = 0x360,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_SMS_ORIGINATION_DENIED = 0x361,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_SMS_TERMINATION_DENIED = 0x362,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_SUPPLEMENTARY_SERVICE_NOT_SUPPORTED = 0x363,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_SMS_NOT_SUPPORTED = 0x364,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_MISSING_EXPECTED_PARAMETER = 0x366,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_MISSING_MANDATORY_PARAMETER = 0x367,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_UNRECOGNIZED_PARAMETER_VALUE = 0x368,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_UNEXPECTED_PARAMETER_VALUE = 0x369,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_USER_DATA_SIZE_ERROR = 0x36A,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_OTHER = 0x36B,
} MMSmsDeliveryState;
</pre>
<p>
-Enumeration of known SMS delivery states as defined in 3GPP TS 03.40.
+Enumeration of known SMS delivery states as defined in 3GPP TS 03.40 and
+3GPP2 N.S0005-O, section 6.5.2.125.
</p>
<p>
States out of the known ranges may also be valid (either reserved or SC-specific).
@@ -2101,6 +2515,286 @@ States out of the known ranges may also be valid (either reserved or SC-specific
<td>Unknown state.
</td>
</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-NETWORK-PROBLEM-ADDRESS-VACANT:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_ADDRESS_VACANT</code></span></p></td>
+<td>Permanent error in network, address vacant.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-NETWORK-PROBLEM-ADDRESS-TRANSLATION-FAILURE:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_ADDRESS_TRANSLATION_FAILURE</code></span></p></td>
+<td>Permanent error in network, address translation failure.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-NETWORK-PROBLEM-NETWORK-RESOURCE-OUTAGE:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_NETWORK_RESOURCE_OUTAGE</code></span></p></td>
+<td>Permanent error in network, network resource outage.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-NETWORK-PROBLEM-NETWORK-FAILURE:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_NETWORK_FAILURE</code></span></p></td>
+<td>Permanent error in network, network failure.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-NETWORK-PROBLEM-INVALID-TELESERVICE-ID:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_INVALID_TELESERVICE_ID</code></span></p></td>
+<td>Permanent error in network, invalid teleservice id.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-NETWORK-PROBLEM-OTHER:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_OTHER</code></span></p></td>
+<td>Permanent error, other network problem.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TERMINAL-PROBLEM-NO-PAGE-RESPONSE:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_NO_PAGE_RESPONSE</code></span></p></td>
+<td>Permanent error in terminal, no page response.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TERMINAL-PROBLEM-DESTINATION-BUSY:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_DESTINATION_BUSY</code></span></p></td>
+<td>Permanent error in terminal, destination busy.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TERMINAL-PROBLEM-NO-ACKNOWLEDGMENT:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_NO_ACKNOWLEDGMENT</code></span></p></td>
+<td>Permanent error in terminal, no acknowledgement.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TERMINAL-PROBLEM-DESTINATION-RESOURCE-SHORTAGE:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_DESTINATION_RESOURCE_SHORTAGE</code></span></p></td>
+<td>Permanent error in terminal, destination resource shortage.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TERMINAL-PROBLEM-SMS-DELIVERY-POSTPONED:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_SMS_DELIVERY_POSTPONED</code></span></p></td>
+<td>Permanent error in terminal, SMS delivery postponed.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TERMINAL-PROBLEM-DESTINATION-OUT-OF-SERVICE:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_DESTINATION_OUT_OF_SERVICE</code></span></p></td>
+<td>Permanent error in terminal, destination out of service.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TERMINAL-PROBLEM-DESTINATION-NO-LONGER-AT-THIS-ADDRESS:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_DESTINATION_NO_LONGER_AT_THIS_ADDRESS</code></span></p></td>
+<td>Permanent error in terminal, destination no longer at this address.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TERMINAL-PROBLEM-OTHER:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_OTHER</code></span></p></td>
+<td>Permanent error, other terminal problem.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-RADIO-INTERFACE-PROBLEM-RESOURCE-SHORTAGE:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_RADIO_INTERFACE_PROBLEM_RESOURCE_SHORTAGE</code></span></p></td>
+<td>Permanent error in radio interface, resource shortage.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-RADIO-INTERFACE-PROBLEM-INCOMPATIBILITY:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_RADIO_INTERFACE_PROBLEM_INCOMPATIBILITY</code></span></p></td>
+<td>Permanent error in radio interface, problem incompatibility.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-RADIO-INTERFACE-PROBLEM-OTHER:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_RADIO_INTERFACE_PROBLEM_OTHER</code></span></p></td>
+<td>Permanent error, other radio interface problem.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-ENCODING:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_ENCODING</code></span></p></td>
+<td>Permanent error, encoding.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-SMS-ORIGINATION-DENIED:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_SMS_ORIGINATION_DENIED</code></span></p></td>
+<td>Permanent error, SMS origination denied.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-SMS-TERMINATION-DENIED:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_SMS_TERMINATION_DENIED</code></span></p></td>
+<td>Permanent error, SMS termination denied.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-SUPPLEMENTARY-SERVICE-NOT-SUPPORTED:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_SUPPLEMENTARY_SERVICE_NOT_SUPPORTED</code></span></p></td>
+<td>Permanent error, supplementary service not supported.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-SMS-NOT-SUPPORTED:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_SMS_NOT_SUPPORTED</code></span></p></td>
+<td>Permanent error, SMS not supported.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-MISSING-EXPECTED-PARAMETER:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_MISSING_EXPECTED_PARAMETER</code></span></p></td>
+<td>Permanent error, missing expected parameter.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-MISSING-MANDATORY-PARAMETER:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_MISSING_MANDATORY_PARAMETER</code></span></p></td>
+<td>Permanent error, missing mandatory parameter.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-UNRECOGNIZED-PARAMETER-VALUE:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_UNRECOGNIZED_PARAMETER_VALUE</code></span></p></td>
+<td>Permanent error, unrecognized parameter value.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-UNEXPECTED-PARAMETER-VALUE:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_UNEXPECTED_PARAMETER_VALUE</code></span></p></td>
+<td>Permanent error, unexpected parameter value.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-USER-DATA-SIZE-ERROR:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_USER_DATA_SIZE_ERROR</code></span></p></td>
+<td>Permanent error, user data size error.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-OTHER:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_OTHER</code></span></p></td>
+<td>Permanent error, other general problem.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TEMPORARY-NETWORK-PROBLEM-ADDRESS-VACANT:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_ADDRESS_VACANT</code></span></p></td>
+<td>Temporary error in network, address vacant.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TEMPORARY-NETWORK-PROBLEM-ADDRESS-TRANSLATION-FAILURE:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_ADDRESS_TRANSLATION_FAILURE</code></span></p></td>
+<td>Temporary error in network, address translation failure.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TEMPORARY-NETWORK-PROBLEM-NETWORK-RESOURCE-OUTAGE:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_NETWORK_RESOURCE_OUTAGE</code></span></p></td>
+<td>Temporary error in network, network resource outage.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TEMPORARY-NETWORK-PROBLEM-NETWORK-FAILURE:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_NETWORK_FAILURE</code></span></p></td>
+<td>Temporary error in network, network failure.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TEMPORARY-NETWORK-PROBLEM-INVALID-TELESERVICE-ID:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_INVALID_TELESERVICE_ID</code></span></p></td>
+<td>Temporary error in network, invalid teleservice id.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TEMPORARY-NETWORK-PROBLEM-OTHER:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_OTHER</code></span></p></td>
+<td>Temporary error, other network problem.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TEMPORARY-TERMINAL-PROBLEM-NO-PAGE-RESPONSE:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_NO_PAGE_RESPONSE</code></span></p></td>
+<td>Temporary error in terminal, no page response.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TEMPORARY-TERMINAL-PROBLEM-DESTINATION-BUSY:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_DESTINATION_BUSY</code></span></p></td>
+<td>Temporary error in terminal, destination busy.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TEMPORARY-TERMINAL-PROBLEM-NO-ACKNOWLEDGMENT:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_NO_ACKNOWLEDGMENT</code></span></p></td>
+<td>Temporary error in terminal, no acknowledgement.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TEMPORARY-TERMINAL-PROBLEM-DESTINATION-RESOURCE-SHORTAGE:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_DESTINATION_RESOURCE_SHORTAGE</code></span></p></td>
+<td>Temporary error in terminal, destination resource shortage.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TEMPORARY-TERMINAL-PROBLEM-SMS-DELIVERY-POSTPONED:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_SMS_DELIVERY_POSTPONED</code></span></p></td>
+<td>Temporary error in terminal, SMS delivery postponed.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TEMPORARY-TERMINAL-PROBLEM-DESTINATION-OUT-OF-SERVICE:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_DESTINATION_OUT_OF_SERVICE</code></span></p></td>
+<td>Temporary error in terminal, destination out of service.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TEMPORARY-TERMINAL-PROBLEM-DESTINATION-NO-LONGER-AT-THIS-ADDRESS:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_DESTINATION_NO_LONGER_AT_THIS_ADDRESS</code></span></p></td>
+<td>Temporary error in terminal, destination no longer at this address.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TEMPORARY-TERMINAL-PROBLEM-OTHER:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_OTHER</code></span></p></td>
+<td>Temporary error, other terminal problem.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TEMPORARY-RADIO-INTERFACE-PROBLEM-RESOURCE-SHORTAGE:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TEMPORARY_RADIO_INTERFACE_PROBLEM_RESOURCE_SHORTAGE</code></span></p></td>
+<td>Temporary error in radio interface, resource shortage.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TEMPORARY-RADIO-INTERFACE-PROBLEM-INCOMPATIBILITY:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TEMPORARY_RADIO_INTERFACE_PROBLEM_INCOMPATIBILITY</code></span></p></td>
+<td>Temporary error in radio interface, problem incompatibility.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TEMPORARY-RADIO-INTERFACE-PROBLEM-OTHER:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TEMPORARY_RADIO_INTERFACE_PROBLEM_OTHER</code></span></p></td>
+<td>Temporary error, other radio interface problem.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-ENCODING:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_ENCODING</code></span></p></td>
+<td>Temporary error, encoding.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-SMS-ORIGINATION-DENIED:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_SMS_ORIGINATION_DENIED</code></span></p></td>
+<td>Temporary error, SMS origination denied.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-SMS-TERMINATION-DENIED:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_SMS_TERMINATION_DENIED</code></span></p></td>
+<td>Temporary error, SMS termination denied.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-SUPPLEMENTARY-SERVICE-NOT-SUPPORTED:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_SUPPLEMENTARY_SERVICE_NOT_SUPPORTED</code></span></p></td>
+<td>Temporary error, supplementary service not supported.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-SMS-NOT-SUPPORTED:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_SMS_NOT_SUPPORTED</code></span></p></td>
+<td>Temporary error, SMS not supported.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-MISSING-EXPECTED-PARAMETER:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_MISSING_EXPECTED_PARAMETER</code></span></p></td>
+<td>Temporary error, missing expected parameter.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-MISSING-MANDATORY-PARAMETER:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_MISSING_MANDATORY_PARAMETER</code></span></p></td>
+<td>Temporary error, missing mandatory parameter.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-UNRECOGNIZED-PARAMETER-VALUE:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_UNRECOGNIZED_PARAMETER_VALUE</code></span></p></td>
+<td>Temporary error, unrecognized parameter value.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-UNEXPECTED-PARAMETER-VALUE:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_UNEXPECTED_PARAMETER_VALUE</code></span></p></td>
+<td>Temporary error, unexpected parameter value.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-USER-DATA-SIZE-ERROR:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_USER_DATA_SIZE_ERROR</code></span></p></td>
+<td>Temporary error, user data size error.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-OTHER:CAPS"></a><span class="term"><code class="literal">MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_OTHER</code></span></p></td>
+<td>Temporary error, other general problem.
+</td>
+</tr>
</tbody>
</table></div>
</div>
@@ -2208,10 +2902,325 @@ Type of SMS validity value.
</tbody>
</table></div>
</div>
+<hr>
+<div class="refsect2">
+<a name="MMSmsCdmaTeleserviceId"></a><h3>enum MMSmsCdmaTeleserviceId</h3>
+<pre class="programlisting">typedef enum {
+ /*&lt; underscore_name=mm_sms_cdma_teleservice_id &gt;*/
+ MM_SMS_CDMA_TELESERVICE_ID_UNKNOWN = 0x0000,
+ MM_SMS_CDMA_TELESERVICE_ID_CMT91 = 0x1000,
+ MM_SMS_CDMA_TELESERVICE_ID_WPT = 0x1001,
+ MM_SMS_CDMA_TELESERVICE_ID_WMT = 0x1002,
+ MM_SMS_CDMA_TELESERVICE_ID_VMN = 0x1003,
+ MM_SMS_CDMA_TELESERVICE_ID_WAP = 0x1004,
+ MM_SMS_CDMA_TELESERVICE_ID_WEMT = 0x1005,
+ MM_SMS_CDMA_TELESERVICE_ID_SCPT = 0x1006,
+ MM_SMS_CDMA_TELESERVICE_ID_CATPT = 0x1007,
+} MMSmsCdmaTeleserviceId;
+</pre>
+<p>
+Teleservice IDs supported for CDMA SMS, as defined in 3GPP2 X.S0004-550-E
+(section 2.256) and 3GPP2 C.S0015-B (section 3.4.3.1).
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><a name="MM-SMS-CDMA-TELESERVICE-ID-UNKNOWN:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_TELESERVICE_ID_UNKNOWN</code></span></p></td>
+<td>Unknown.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-TELESERVICE-ID-CMT91:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_TELESERVICE_ID_CMT91</code></span></p></td>
+<td>IS-91 Extended Protocol Enhanced Services.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-TELESERVICE-ID-WPT:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_TELESERVICE_ID_WPT</code></span></p></td>
+<td>Wireless Paging Teleservice.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-TELESERVICE-ID-WMT:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_TELESERVICE_ID_WMT</code></span></p></td>
+<td>Wireless Messaging Teleservice.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-TELESERVICE-ID-VMN:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_TELESERVICE_ID_VMN</code></span></p></td>
+<td>Voice Mail Notification.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-TELESERVICE-ID-WAP:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_TELESERVICE_ID_WAP</code></span></p></td>
+<td>Wireless Application Protocol.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-TELESERVICE-ID-WEMT:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_TELESERVICE_ID_WEMT</code></span></p></td>
+<td>Wireless Enhanced Messaging Teleservice.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-TELESERVICE-ID-SCPT:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_TELESERVICE_ID_SCPT</code></span></p></td>
+<td>Service Category Programming Teleservice.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-TELESERVICE-ID-CATPT:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_TELESERVICE_ID_CATPT</code></span></p></td>
+<td>Card Application Toolkit Protocol Teleservice.
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="MMSmsCdmaServiceCategory"></a><h3>enum MMSmsCdmaServiceCategory</h3>
+<pre class="programlisting">typedef enum {
+ /*&lt; underscore_name=mm_sms_cdma_service_category &gt;*/
+ MM_SMS_CDMA_SERVICE_CATEGORY_UNKNOWN = 0x0000,
+ MM_SMS_CDMA_SERVICE_CATEGORY_EMERGENCY_BROADCAST = 0x0001,
+ MM_SMS_CDMA_SERVICE_CATEGORY_ADMINISTRATIVE = 0x0002,
+ MM_SMS_CDMA_SERVICE_CATEGORY_MAINTENANCE = 0x0003,
+ MM_SMS_CDMA_SERVICE_CATEGORY_GENERAL_NEWS_LOCAL = 0x0004,
+ MM_SMS_CDMA_SERVICE_CATEGORY_GENERAL_NEWS_REGIONAL = 0x0005,
+ MM_SMS_CDMA_SERVICE_CATEGORY_GENERAL_NEWS_NATIONAL = 0x0006,
+ MM_SMS_CDMA_SERVICE_CATEGORY_GENERAL_NEWS_INTERNATIONAL = 0x0007,
+ MM_SMS_CDMA_SERVICE_CATEGORY_BUSINESS_NEWS_LOCAL = 0x0008,
+ MM_SMS_CDMA_SERVICE_CATEGORY_BUSINESS_NEWS_REGIONAL = 0x0009,
+ MM_SMS_CDMA_SERVICE_CATEGORY_BUSINESS_NEWS_NATIONAL = 0x000A,
+ MM_SMS_CDMA_SERVICE_CATEGORY_BUSINESS_NEWS_INTERNATIONAL = 0x000B,
+ MM_SMS_CDMA_SERVICE_CATEGORY_SPORTS_NEWS_LOCAL = 0x000C,
+ MM_SMS_CDMA_SERVICE_CATEGORY_SPORTS_NEWS_REGIONAL = 0x000D,
+ MM_SMS_CDMA_SERVICE_CATEGORY_SPORTS_NEWS_NATIONAL = 0x000E,
+ MM_SMS_CDMA_SERVICE_CATEGORY_SPORTS_NEWS_INTERNATIONAL = 0x000F,
+ MM_SMS_CDMA_SERVICE_CATEGORY_ENTERTAINMENT_NEWS_LOCAL = 0x0010,
+ MM_SMS_CDMA_SERVICE_CATEGORY_ENTERTAINMENT_NEWS_REGIONAL = 0x0011,
+ MM_SMS_CDMA_SERVICE_CATEGORY_ENTERTAINMENT_NEWS_NATIONAL = 0x0012,
+ MM_SMS_CDMA_SERVICE_CATEGORY_ENTERTAINMENT_NEWS_INTERNATIONAL = 0x0013,
+ MM_SMS_CDMA_SERVICE_CATEGORY_LOCAL_WEATHER = 0x0014,
+ MM_SMS_CDMA_SERVICE_CATEGORY_TRAFFIC_REPORT = 0x0015,
+ MM_SMS_CDMA_SERVICE_CATEGORY_FLIGHT_SCHEDULES = 0x0016,
+ MM_SMS_CDMA_SERVICE_CATEGORY_RESTAURANTS = 0x0017,
+ MM_SMS_CDMA_SERVICE_CATEGORY_LODGINGS = 0x0018,
+ MM_SMS_CDMA_SERVICE_CATEGORY_RETAIL_DIRECTORY = 0x0019,
+ MM_SMS_CDMA_SERVICE_CATEGORY_ADVERTISEMENTS = 0x001A,
+ MM_SMS_CDMA_SERVICE_CATEGORY_STOCK_QUOTES = 0x001B,
+ MM_SMS_CDMA_SERVICE_CATEGORY_EMPLOYMENT = 0x001C,
+ MM_SMS_CDMA_SERVICE_CATEGORY_HOSPITALS = 0x001D,
+ MM_SMS_CDMA_SERVICE_CATEGORY_TECHNOLOGY_NEWS = 0x001E,
+ MM_SMS_CDMA_SERVICE_CATEGORY_MULTICATEGORY = 0x001F,
+ MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_PRESIDENTIAL_ALERT = 0x1000,
+ MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_EXTREME_THREAT = 0x1001,
+ MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_SEVERE_THREAT = 0x1002,
+ MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_CHILD_ABDUCTION_EMERGENCY = 0x1003,
+ MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_TEST = 0x1004,
+} MMSmsCdmaServiceCategory;
+</pre>
+<p>
+Service category for CDMA SMS, as defined in 3GPP2 C.R1001-D (section 9.3).
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-UNKNOWN:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_UNKNOWN</code></span></p></td>
+<td>Unknown.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-EMERGENCY-BROADCAST:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_EMERGENCY_BROADCAST</code></span></p></td>
+<td>Emergency broadcast.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-ADMINISTRATIVE:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_ADMINISTRATIVE</code></span></p></td>
+<td>Administrative.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-MAINTENANCE:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_MAINTENANCE</code></span></p></td>
+<td>Maintenance.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-GENERAL-NEWS-LOCAL:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_GENERAL_NEWS_LOCAL</code></span></p></td>
+<td>General news (local).
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-GENERAL-NEWS-REGIONAL:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_GENERAL_NEWS_REGIONAL</code></span></p></td>
+<td>General news (regional).
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-GENERAL-NEWS-NATIONAL:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_GENERAL_NEWS_NATIONAL</code></span></p></td>
+<td>General news (national).
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-GENERAL-NEWS-INTERNATIONAL:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_GENERAL_NEWS_INTERNATIONAL</code></span></p></td>
+<td>General news (international).
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-BUSINESS-NEWS-LOCAL:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_BUSINESS_NEWS_LOCAL</code></span></p></td>
+<td>Business/Financial news (local).
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-BUSINESS-NEWS-REGIONAL:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_BUSINESS_NEWS_REGIONAL</code></span></p></td>
+<td>Business/Financial news (regional).
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-BUSINESS-NEWS-NATIONAL:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_BUSINESS_NEWS_NATIONAL</code></span></p></td>
+<td>Business/Financial news (national).
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-BUSINESS-NEWS-INTERNATIONAL:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_BUSINESS_NEWS_INTERNATIONAL</code></span></p></td>
+<td>Business/Financial news (international).
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-SPORTS-NEWS-LOCAL:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_SPORTS_NEWS_LOCAL</code></span></p></td>
+<td>Sports news (local).
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-SPORTS-NEWS-REGIONAL:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_SPORTS_NEWS_REGIONAL</code></span></p></td>
+<td>Sports news (regional).
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-SPORTS-NEWS-NATIONAL:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_SPORTS_NEWS_NATIONAL</code></span></p></td>
+<td>Sports news (national).
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-SPORTS-NEWS-INTERNATIONAL:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_SPORTS_NEWS_INTERNATIONAL</code></span></p></td>
+<td>Sports news (international).
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-ENTERTAINMENT-NEWS-LOCAL:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_ENTERTAINMENT_NEWS_LOCAL</code></span></p></td>
+<td>Entertainment news (local).
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-ENTERTAINMENT-NEWS-REGIONAL:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_ENTERTAINMENT_NEWS_REGIONAL</code></span></p></td>
+<td>Entertainment news (regional).
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-ENTERTAINMENT-NEWS-NATIONAL:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_ENTERTAINMENT_NEWS_NATIONAL</code></span></p></td>
+<td>Entertainment news (national).
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-ENTERTAINMENT-NEWS-INTERNATIONAL:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_ENTERTAINMENT_NEWS_INTERNATIONAL</code></span></p></td>
+<td>Entertainment news (international).
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-LOCAL-WEATHER:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_LOCAL_WEATHER</code></span></p></td>
+<td>Local weather.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-TRAFFIC-REPORT:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_TRAFFIC_REPORT</code></span></p></td>
+<td>Area traffic report.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-FLIGHT-SCHEDULES:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_FLIGHT_SCHEDULES</code></span></p></td>
+<td>Local airport flight schedules.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-RESTAURANTS:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_RESTAURANTS</code></span></p></td>
+<td>Restaurants.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-LODGINGS:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_LODGINGS</code></span></p></td>
+<td>Lodgings.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-RETAIL-DIRECTORY:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_RETAIL_DIRECTORY</code></span></p></td>
+<td>Retail directory.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-ADVERTISEMENTS:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_ADVERTISEMENTS</code></span></p></td>
+<td>Advertisements.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-STOCK-QUOTES:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_STOCK_QUOTES</code></span></p></td>
+<td>Stock quotes.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-EMPLOYMENT:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_EMPLOYMENT</code></span></p></td>
+<td>Employment.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-HOSPITALS:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_HOSPITALS</code></span></p></td>
+<td>Medical / Health / Hospitals.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-TECHNOLOGY-NEWS:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_TECHNOLOGY_NEWS</code></span></p></td>
+<td>Technology news.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-MULTICATEGORY:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_MULTICATEGORY</code></span></p></td>
+<td>Multi-category.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-CMAS-PRESIDENTIAL-ALERT:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_PRESIDENTIAL_ALERT</code></span></p></td>
+<td>Presidential alert.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-CMAS-EXTREME-THREAT:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_EXTREME_THREAT</code></span></p></td>
+<td>Extreme threat.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-CMAS-SEVERE-THREAT:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_SEVERE_THREAT</code></span></p></td>
+<td>Severe threat.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-CMAS-CHILD-ABDUCTION-EMERGENCY:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_CHILD_ABDUCTION_EMERGENCY</code></span></p></td>
+<td>Child abduction emergency.
+</td>
+</tr>
+<tr>
+<td><p><a name="MM-SMS-CDMA-SERVICE-CATEGORY-CMAS-TEST:CAPS"></a><span class="term"><code class="literal">MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_TEST</code></span></p></td>
+<td>CMAS test.
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/ModemManager-Version-checks.html b/docs/reference/api/html/ModemManager-Version-checks.html
index 1dafb8d..24a5b64 100644
--- a/docs/reference/api/html/ModemManager-Version-checks.html
+++ b/docs/reference/api/html/ModemManager-Version-checks.html
@@ -8,7 +8,7 @@
<link rel="up" href="ref-common-types.html" title="Part II. Common types and definitions">
<link rel="prev" href="ref-common-types.html" title="Part II. Common types and definitions">
<link rel="next" href="ModemManager-Flags-and-Enumerations.html" title="Flags and Enumerations">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -65,7 +65,7 @@ is compiled against.
<hr>
<div class="refsect2">
<a name="MM-MINOR-VERSION:CAPS"></a><h3>MM_MINOR_VERSION</h3>
-<pre class="programlisting">#define MM_MINOR_VERSION (0)
+<pre class="programlisting">#define MM_MINOR_VERSION (2)
</pre>
<p>
Evaluates to the minor version number of ModemManager which this source
@@ -117,6 +117,6 @@ is the same as or newer than the passed-in version.</td>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/ModemManager.devhelp2 b/docs/reference/api/html/ModemManager.devhelp2
index 8daac50..a0f594e 100644
--- a/docs/reference/api/html/ModemManager.devhelp2
+++ b/docs/reference/api/html/ModemManager.devhelp2
@@ -5,17 +5,17 @@
<sub name="ModemManager Overview" link="ref-overview.html">
<sub name="Introduction" link="ref-overview-introduction.html"/>
<sub name="Modem detection and setup" link="ref-overview-modem-detection-and-setup.html">
- <sub name="Detection mechanisms" link="ref-overview-modem-detection-and-setup.html#idm211863910672"/>
+ <sub name="Detection mechanisms" link="ref-overview-modem-detection-and-setup.html#id-1.2.3.2"/>
<sub name="Probing" link="ch02s02.html">
- <sub name="Pre-probing filters" link="ch02s02.html#idm211863905456"/>
- <sub name="Probing sequence" link="ch02s02.html#idm211854553632"/>
- <sub name="Post-probing filters" link="ch02s02.html#idm211864004288"/>
- <sub name="Probing setup examples" link="ch02s02.html#idm211856775152"/>
+ <sub name="Pre-probing filters" link="ch02s02.html#id-1.2.3.3.4"/>
+ <sub name="Probing sequence" link="ch02s02.html#id-1.2.3.3.5"/>
+ <sub name="Post-probing filters" link="ch02s02.html#id-1.2.3.3.6"/>
+ <sub name="Probing setup examples" link="ch02s02.html#id-1.2.3.3.7"/>
</sub>
<sub name="Port grabbing and Modem object creation" link="ch02s03.html"/>
</sub>
<sub name="Modem state machine" link="ref-overview-modem-state-machine.html">
- <sub name="Initialization" link="ref-overview-modem-state-machine.html#idm211856759264"/>
+ <sub name="Initialization" link="ref-overview-modem-state-machine.html#id-1.2.4.5"/>
<sub name="Enabling" link="ch03s02.html"/>
<sub name="Connection &amp; disconnection" link="ch03s03.html"/>
<sub name="Disabling" link="ch03s04.html"/>
@@ -47,6 +47,8 @@
<sub name="org.freedesktop.ModemManager1.Modem.Location" link="gdbus-org.freedesktop.ModemManager1.Modem.Location.html"/>
<sub name="org.freedesktop.ModemManager1.Modem.Time" link="gdbus-org.freedesktop.ModemManager1.Modem.Time.html"/>
<sub name="org.freedesktop.ModemManager1.Modem.Firmware" link="gdbus-org.freedesktop.ModemManager1.Modem.Firmware.html"/>
+ <sub name="org.freedesktop.ModemManager1.Modem.Signal" link="gdbus-org.freedesktop.ModemManager1.Modem.Signal.html"/>
+ <sub name="org.freedesktop.ModemManager1.Modem.Oma" link="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html"/>
</sub>
<sub name="The /org/freedesktop/ModemManager/Bearers objects" link="ref-dbus-object-bearer.html">
<sub name="org.freedesktop.ModemManager1.Bearer" link="gdbus-org.freedesktop.ModemManager1.Bearer.html"/>
@@ -60,7 +62,7 @@
</sub>
<sub name="Migrating from ModemManager 0.6 to ModemManager 1.0" link="ref-migrating.html">
<sub name="" link="ch12.html">
- <sub name="Listing available modems" link="ch12.html#idm211850989168"/>
+ <sub name="Listing available modems" link="ch12.html#id-1.5.3.1"/>
<sub name="PIN unlocking" link="ch12s02.html"/>
<sub name="Connection and disconnection" link="ch12s03.html"/>
<sub name="Simple connection" link="ch12s04.html"/>
@@ -79,6 +81,7 @@
<keyword type="enum" name="enum MMFirmwareImageType" link="ModemManager-Flags-and-Enumerations.html#MMFirmwareImageType"/>
<keyword type="enum" name="enum MMModem3gppFacility" link="ModemManager-Flags-and-Enumerations.html#MMModem3gppFacility"/>
<keyword type="enum" name="enum MMModem3gppNetworkAvailability" link="ModemManager-Flags-and-Enumerations.html#MMModem3gppNetworkAvailability"/>
+ <keyword type="enum" name="enum MMModem3gppSubscriptionState" link="ModemManager-Flags-and-Enumerations.html#MMModem3gppSubscriptionState"/>
<keyword type="enum" name="enum MMModem3gppRegistrationState" link="ModemManager-Flags-and-Enumerations.html#MMModem3gppRegistrationState"/>
<keyword type="enum" name="enum MMModem3gppUssdSessionState" link="ModemManager-Flags-and-Enumerations.html#MMModem3gppUssdSessionState"/>
<keyword type="enum" name="enum MMModemAccessTechnology" link="ModemManager-Flags-and-Enumerations.html#MMModemAccessTechnology"/>
@@ -96,11 +99,17 @@
<keyword type="enum" name="enum MMModemStateChangeReason" link="ModemManager-Flags-and-Enumerations.html#MMModemStateChangeReason"/>
<keyword type="enum" name="enum MMModemPowerState" link="ModemManager-Flags-and-Enumerations.html#MMModemPowerState"/>
<keyword type="enum" name="enum MMModemPortType" link="ModemManager-Flags-and-Enumerations.html#MMModemPortType"/>
+ <keyword type="enum" name="enum MMOmaFeature" link="ModemManager-Flags-and-Enumerations.html#MMOmaFeature"/>
+ <keyword type="enum" name="enum MMOmaSessionState" link="ModemManager-Flags-and-Enumerations.html#MMOmaSessionState"/>
+ <keyword type="enum" name="enum MMOmaSessionStateFailedReason" link="ModemManager-Flags-and-Enumerations.html#MMOmaSessionStateFailedReason"/>
+ <keyword type="enum" name="enum MMOmaSessionType" link="ModemManager-Flags-and-Enumerations.html#MMOmaSessionType"/>
<keyword type="enum" name="enum MMSmsPduType" link="ModemManager-Flags-and-Enumerations.html#MMSmsPduType"/>
<keyword type="enum" name="enum MMSmsState" link="ModemManager-Flags-and-Enumerations.html#MMSmsState"/>
<keyword type="enum" name="enum MMSmsDeliveryState" link="ModemManager-Flags-and-Enumerations.html#MMSmsDeliveryState"/>
<keyword type="enum" name="enum MMSmsStorage" link="ModemManager-Flags-and-Enumerations.html#MMSmsStorage"/>
<keyword type="enum" name="enum MMSmsValidityType" link="ModemManager-Flags-and-Enumerations.html#MMSmsValidityType"/>
+ <keyword type="enum" name="enum MMSmsCdmaTeleserviceId" link="ModemManager-Flags-and-Enumerations.html#MMSmsCdmaTeleserviceId"/>
+ <keyword type="enum" name="enum MMSmsCdmaServiceCategory" link="ModemManager-Flags-and-Enumerations.html#MMSmsCdmaServiceCategory"/>
<keyword type="enum" name="enum MMConnectionError" link="ModemManager-Errors.html#MMConnectionError"/>
<keyword type="enum" name="enum MMCoreError" link="ModemManager-Errors.html#MMCoreError"/>
<keyword type="enum" name="enum MMMessageError" link="ModemManager-Errors.html#MMMessageError"/>
@@ -122,6 +131,7 @@
<keyword type="method" name="The Command() method" link="gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.Command"/>
<keyword type="signal" name="The &quot;StateChanged&quot; signal" link="gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-signal-org-freedesktop-ModemManager1-Modem.StateChanged"/>
<keyword type="property" name="The &quot;Sim&quot; property" link="gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.Sim"/>
+ <keyword type="property" name="The &quot;Bearers&quot; property" link="gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.Bearers"/>
<keyword type="property" name="The &quot;SupportedCapabilities&quot; property" link="gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.SupportedCapabilities"/>
<keyword type="property" name="The &quot;CurrentCapabilities&quot; property" link="gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.CurrentCapabilities"/>
<keyword type="property" name="The &quot;MaxBearers&quot; property" link="gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.MaxBearers"/>
@@ -159,6 +169,7 @@
<keyword type="property" name="The &quot;OperatorCode&quot; property" link="gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp.OperatorCode"/>
<keyword type="property" name="The &quot;OperatorName&quot; property" link="gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp.OperatorName"/>
<keyword type="property" name="The &quot;EnabledFacilityLocks&quot; property" link="gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp.EnabledFacilityLocks"/>
+ <keyword type="property" name="The &quot;SubscriptionState&quot; property" link="gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp.SubscriptionState"/>
<keyword type="method" name="The Initiate() method" link="gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Modem3gpp-Ussd.Initiate"/>
<keyword type="method" name="The Respond() method" link="gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Modem3gpp-Ussd.Respond"/>
<keyword type="method" name="The Cancel() method" link="gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Modem3gpp-Ussd.Cancel"/>
@@ -180,6 +191,7 @@
<keyword type="method" name="The Create() method" link="gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Messaging.Create"/>
<keyword type="signal" name="The &quot;Added&quot; signal" link="gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-signal-org-freedesktop-ModemManager1-Modem-Messaging.Added"/>
<keyword type="signal" name="The &quot;Deleted&quot; signal" link="gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-signal-org-freedesktop-ModemManager1-Modem-Messaging.Deleted"/>
+ <keyword type="property" name="The &quot;Messages&quot; property" link="gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Messaging.Messages"/>
<keyword type="property" name="The &quot;SupportedStorages&quot; property" link="gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Messaging.SupportedStorages"/>
<keyword type="property" name="The &quot;DefaultStorage&quot; property" link="gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Messaging.DefaultStorage"/>
<keyword type="method" name="The Setup() method" link="gdbus-org.freedesktop.ModemManager1.Modem.Location.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Location.Setup"/>
@@ -193,6 +205,22 @@
<keyword type="property" name="The &quot;NetworkTimezone&quot; property" link="gdbus-org.freedesktop.ModemManager1.Modem.Time.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Time.NetworkTimezone"/>
<keyword type="method" name="The List() method" link="gdbus-org.freedesktop.ModemManager1.Modem.Firmware.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Firmware.List"/>
<keyword type="method" name="The Select() method" link="gdbus-org.freedesktop.ModemManager1.Modem.Firmware.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Firmware.Select"/>
+ <keyword type="method" name="The Setup() method" link="gdbus-org.freedesktop.ModemManager1.Modem.Signal.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Signal.Setup"/>
+ <keyword type="property" name="The &quot;Rate&quot; property" link="gdbus-org.freedesktop.ModemManager1.Modem.Signal.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Rate"/>
+ <keyword type="property" name="The &quot;Cdma&quot; property" link="gdbus-org.freedesktop.ModemManager1.Modem.Signal.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Cdma"/>
+ <keyword type="property" name="The &quot;Evdo&quot; property" link="gdbus-org.freedesktop.ModemManager1.Modem.Signal.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Evdo"/>
+ <keyword type="property" name="The &quot;Gsm&quot; property" link="gdbus-org.freedesktop.ModemManager1.Modem.Signal.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Gsm"/>
+ <keyword type="property" name="The &quot;Umts&quot; property" link="gdbus-org.freedesktop.ModemManager1.Modem.Signal.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Umts"/>
+ <keyword type="property" name="The &quot;Lte&quot; property" link="gdbus-org.freedesktop.ModemManager1.Modem.Signal.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Lte"/>
+ <keyword type="method" name="The Setup() method" link="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Oma.Setup"/>
+ <keyword type="method" name="The StartClientInitiatedSession() method" link="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Oma.StartClientInitiatedSession"/>
+ <keyword type="method" name="The AcceptNetworkInitiatedSession() method" link="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Oma.AcceptNetworkInitiatedSession"/>
+ <keyword type="method" name="The CancelSession() method" link="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Oma.CancelSession"/>
+ <keyword type="signal" name="The &quot;SessionStateChanged&quot; signal" link="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-signal-org-freedesktop-ModemManager1-Modem-Oma.SessionStateChanged"/>
+ <keyword type="property" name="The &quot;Features&quot; property" link="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Oma.Features"/>
+ <keyword type="property" name="The &quot;PendingNetworkInitiatedSessions&quot; property" link="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Oma.PendingNetworkInitiatedSessions"/>
+ <keyword type="property" name="The &quot;SessionType&quot; property" link="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Oma.SessionType"/>
+ <keyword type="property" name="The &quot;SessionState&quot; property" link="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Oma.SessionState"/>
<keyword type="method" name="The Connect() method" link="gdbus-org.freedesktop.ModemManager1.Bearer.html#gdbus-method-org-freedesktop-ModemManager1-Bearer.Connect"/>
<keyword type="method" name="The Disconnect() method" link="gdbus-org.freedesktop.ModemManager1.Bearer.html#gdbus-method-org-freedesktop-ModemManager1-Bearer.Disconnect"/>
<keyword type="property" name="The &quot;Interface&quot; property" link="gdbus-org.freedesktop.ModemManager1.Bearer.html#gdbus-property-org-freedesktop-ModemManager1-Bearer.Interface"/>
@@ -220,6 +248,8 @@
<keyword type="property" name="The &quot;SMSC&quot; property" link="gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.SMSC"/>
<keyword type="property" name="The &quot;Validity&quot; property" link="gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.Validity"/>
<keyword type="property" name="The &quot;Class&quot; property" link="gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.Class"/>
+ <keyword type="property" name="The &quot;TeleserviceId&quot; property" link="gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.TeleserviceId"/>
+ <keyword type="property" name="The &quot;ServiceCategory&quot; property" link="gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.ServiceCategory"/>
<keyword type="property" name="The &quot;DeliveryReportRequest&quot; property" link="gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.DeliveryReportRequest"/>
<keyword type="property" name="The &quot;MessageReference&quot; property" link="gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.MessageReference"/>
<keyword type="property" name="The &quot;Timestamp&quot; property" link="gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.Timestamp"/>
@@ -258,6 +288,10 @@
<keyword type="constant" name="MM_MODEM_3GPP_NETWORK_AVAILABILITY_AVAILABLE" link="ModemManager-Flags-and-Enumerations.html#MM-MODEM-3GPP-NETWORK-AVAILABILITY-AVAILABLE:CAPS"/>
<keyword type="constant" name="MM_MODEM_3GPP_NETWORK_AVAILABILITY_CURRENT" link="ModemManager-Flags-and-Enumerations.html#MM-MODEM-3GPP-NETWORK-AVAILABILITY-CURRENT:CAPS"/>
<keyword type="constant" name="MM_MODEM_3GPP_NETWORK_AVAILABILITY_FORBIDDEN" link="ModemManager-Flags-and-Enumerations.html#MM-MODEM-3GPP-NETWORK-AVAILABILITY-FORBIDDEN:CAPS"/>
+ <keyword type="constant" name="MM_MODEM_3GPP_SUBSCRIPTION_STATE_UNKNOWN" link="ModemManager-Flags-and-Enumerations.html#MM-MODEM-3GPP-SUBSCRIPTION-STATE-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="MM_MODEM_3GPP_SUBSCRIPTION_STATE_UNPROVISIONED" link="ModemManager-Flags-and-Enumerations.html#MM-MODEM-3GPP-SUBSCRIPTION-STATE-UNPROVISIONED:CAPS"/>
+ <keyword type="constant" name="MM_MODEM_3GPP_SUBSCRIPTION_STATE_PROVISIONED" link="ModemManager-Flags-and-Enumerations.html#MM-MODEM-3GPP-SUBSCRIPTION-STATE-PROVISIONED:CAPS"/>
+ <keyword type="constant" name="MM_MODEM_3GPP_SUBSCRIPTION_STATE_OUT_OF_DATA" link="ModemManager-Flags-and-Enumerations.html#MM-MODEM-3GPP-SUBSCRIPTION-STATE-OUT-OF-DATA:CAPS"/>
<keyword type="constant" name="MM_MODEM_3GPP_REGISTRATION_STATE_IDLE" link="ModemManager-Flags-and-Enumerations.html#MM-MODEM-3GPP-REGISTRATION-STATE-IDLE:CAPS"/>
<keyword type="constant" name="MM_MODEM_3GPP_REGISTRATION_STATE_HOME" link="ModemManager-Flags-and-Enumerations.html#MM-MODEM-3GPP-REGISTRATION-STATE-HOME:CAPS"/>
<keyword type="constant" name="MM_MODEM_3GPP_REGISTRATION_STATE_SEARCHING" link="ModemManager-Flags-and-Enumerations.html#MM-MODEM-3GPP-REGISTRATION-STATE-SEARCHING:CAPS"/>
@@ -442,10 +476,46 @@
<keyword type="constant" name="MM_MODEM_PORT_TYPE_GPS" link="ModemManager-Flags-and-Enumerations.html#MM-MODEM-PORT-TYPE-GPS:CAPS"/>
<keyword type="constant" name="MM_MODEM_PORT_TYPE_QMI" link="ModemManager-Flags-and-Enumerations.html#MM-MODEM-PORT-TYPE-QMI:CAPS"/>
<keyword type="constant" name="MM_MODEM_PORT_TYPE_MBIM" link="ModemManager-Flags-and-Enumerations.html#MM-MODEM-PORT-TYPE-MBIM:CAPS"/>
+ <keyword type="constant" name="MM_OMA_FEATURE_NONE" link="ModemManager-Flags-and-Enumerations.html#MM-OMA-FEATURE-NONE:CAPS"/>
+ <keyword type="constant" name="MM_OMA_FEATURE_DEVICE_PROVISIONING" link="ModemManager-Flags-and-Enumerations.html#MM-OMA-FEATURE-DEVICE-PROVISIONING:CAPS"/>
+ <keyword type="constant" name="MM_OMA_FEATURE_PRL_UPDATE" link="ModemManager-Flags-and-Enumerations.html#MM-OMA-FEATURE-PRL-UPDATE:CAPS"/>
+ <keyword type="constant" name="MM_OMA_FEATURE_HANDS_FREE_ACTIVATION" link="ModemManager-Flags-and-Enumerations.html#MM-OMA-FEATURE-HANDS-FREE-ACTIVATION:CAPS"/>
+ <keyword type="constant" name="MM_OMA_SESSION_STATE_FAILED" link="ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-FAILED:CAPS"/>
+ <keyword type="constant" name="MM_OMA_SESSION_STATE_UNKNOWN" link="ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="MM_OMA_SESSION_STATE_STARTED" link="ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-STARTED:CAPS"/>
+ <keyword type="constant" name="MM_OMA_SESSION_STATE_RETRYING" link="ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-RETRYING:CAPS"/>
+ <keyword type="constant" name="MM_OMA_SESSION_STATE_CONNECTING" link="ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-CONNECTING:CAPS"/>
+ <keyword type="constant" name="MM_OMA_SESSION_STATE_CONNECTED" link="ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-CONNECTED:CAPS"/>
+ <keyword type="constant" name="MM_OMA_SESSION_STATE_AUTHENTICATED" link="ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-AUTHENTICATED:CAPS"/>
+ <keyword type="constant" name="MM_OMA_SESSION_STATE_MDN_DOWNLOADED" link="ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-MDN-DOWNLOADED:CAPS"/>
+ <keyword type="constant" name="MM_OMA_SESSION_STATE_MSID_DOWNLOADED" link="ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-MSID-DOWNLOADED:CAPS"/>
+ <keyword type="constant" name="MM_OMA_SESSION_STATE_PRL_DOWNLOADED" link="ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-PRL-DOWNLOADED:CAPS"/>
+ <keyword type="constant" name="MM_OMA_SESSION_STATE_MIP_PROFILE_DOWNLOADED" link="ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-MIP-PROFILE-DOWNLOADED:CAPS"/>
+ <keyword type="constant" name="MM_OMA_SESSION_STATE_COMPLETED" link="ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-COMPLETED:CAPS"/>
+ <keyword type="constant" name="MM_OMA_SESSION_STATE_FAILED_REASON_UNKNOWN" link="ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-FAILED-REASON-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="MM_OMA_SESSION_STATE_FAILED_REASON_NETWORK_UNAVAILABLE" link="ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-FAILED-REASON-NETWORK-UNAVAILABLE:CAPS"/>
+ <keyword type="constant" name="MM_OMA_SESSION_STATE_FAILED_REASON_SERVER_UNAVAILABLE" link="ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-FAILED-REASON-SERVER-UNAVAILABLE:CAPS"/>
+ <keyword type="constant" name="MM_OMA_SESSION_STATE_FAILED_REASON_AUTHENTICATION_FAILED" link="ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-FAILED-REASON-AUTHENTICATION-FAILED:CAPS"/>
+ <keyword type="constant" name="MM_OMA_SESSION_STATE_FAILED_REASON_MAX_RETRY_EXCEEDED" link="ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-FAILED-REASON-MAX-RETRY-EXCEEDED:CAPS"/>
+ <keyword type="constant" name="MM_OMA_SESSION_STATE_FAILED_REASON_SESSION_CANCELLED" link="ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-FAILED-REASON-SESSION-CANCELLED:CAPS"/>
+ <keyword type="constant" name="MM_OMA_SESSION_TYPE_UNKNOWN" link="ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-TYPE-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="MM_OMA_SESSION_TYPE_CLIENT_INITIATED_DEVICE_CONFIGURE" link="ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-TYPE-CLIENT-INITIATED-DEVICE-CONFIGURE:CAPS"/>
+ <keyword type="constant" name="MM_OMA_SESSION_TYPE_CLIENT_INITIATED_PRL_UPDATE" link="ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-TYPE-CLIENT-INITIATED-PRL-UPDATE:CAPS"/>
+ <keyword type="constant" name="MM_OMA_SESSION_TYPE_CLIENT_INITIATED_HANDS_FREE_ACTIVATION" link="ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-TYPE-CLIENT-INITIATED-HANDS-FREE-ACTIVATION:CAPS"/>
+ <keyword type="constant" name="MM_OMA_SESSION_TYPE_NETWORK_INITIATED_DEVICE_CONFIGURE" link="ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-TYPE-NETWORK-INITIATED-DEVICE-CONFIGURE:CAPS"/>
+ <keyword type="constant" name="MM_OMA_SESSION_TYPE_NETWORK_INITIATED_PRL_UPDATE" link="ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-TYPE-NETWORK-INITIATED-PRL-UPDATE:CAPS"/>
+ <keyword type="constant" name="MM_OMA_SESSION_TYPE_DEVICE_INITIATED_PRL_UPDATE" link="ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-TYPE-DEVICE-INITIATED-PRL-UPDATE:CAPS"/>
+ <keyword type="constant" name="MM_OMA_SESSION_TYPE_DEVICE_INITIATED_HANDS_FREE_ACTIVATION" link="ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-TYPE-DEVICE-INITIATED-HANDS-FREE-ACTIVATION:CAPS"/>
<keyword type="constant" name="MM_SMS_PDU_TYPE_UNKNOWN" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-PDU-TYPE-UNKNOWN:CAPS"/>
<keyword type="constant" name="MM_SMS_PDU_TYPE_DELIVER" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-PDU-TYPE-DELIVER:CAPS"/>
<keyword type="constant" name="MM_SMS_PDU_TYPE_SUBMIT" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-PDU-TYPE-SUBMIT:CAPS"/>
<keyword type="constant" name="MM_SMS_PDU_TYPE_STATUS_REPORT" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-PDU-TYPE-STATUS-REPORT:CAPS"/>
+ <keyword type="constant" name="MM_SMS_PDU_TYPE_CDMA_DELIVER" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-PDU-TYPE-CDMA-DELIVER:CAPS"/>
+ <keyword type="constant" name="MM_SMS_PDU_TYPE_CDMA_SUBMIT" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-PDU-TYPE-CDMA-SUBMIT:CAPS"/>
+ <keyword type="constant" name="MM_SMS_PDU_TYPE_CDMA_CANCELLATION" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-PDU-TYPE-CDMA-CANCELLATION:CAPS"/>
+ <keyword type="constant" name="MM_SMS_PDU_TYPE_CDMA_DELIVERY_ACKNOWLEDGEMENT" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-PDU-TYPE-CDMA-DELIVERY-ACKNOWLEDGEMENT:CAPS"/>
+ <keyword type="constant" name="MM_SMS_PDU_TYPE_CDMA_USER_ACKNOWLEDGEMENT" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-PDU-TYPE-CDMA-USER-ACKNOWLEDGEMENT:CAPS"/>
+ <keyword type="constant" name="MM_SMS_PDU_TYPE_CDMA_READ_ACKNOWLEDGEMENT" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-PDU-TYPE-CDMA-READ-ACKNOWLEDGEMENT:CAPS"/>
<keyword type="constant" name="MM_SMS_STATE_UNKNOWN" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-STATE-UNKNOWN:CAPS"/>
<keyword type="constant" name="MM_SMS_STATE_STORED" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-STATE-STORED:CAPS"/>
<keyword type="constant" name="MM_SMS_STATE_RECEIVING" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-STATE-RECEIVING:CAPS"/>
@@ -478,6 +548,62 @@
<keyword type="constant" name="MM_SMS_DELIVERY_STATE_TEMPORARY_FATAL_ERROR_QOS_NOT_AVAILABLE" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-FATAL-ERROR-QOS-NOT-AVAILABLE:CAPS"/>
<keyword type="constant" name="MM_SMS_DELIVERY_STATE_TEMPORARY_FATAL_ERROR_IN_SME" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-FATAL-ERROR-IN-SME:CAPS"/>
<keyword type="constant" name="MM_SMS_DELIVERY_STATE_UNKNOWN" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_ADDRESS_VACANT" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-NETWORK-PROBLEM-ADDRESS-VACANT:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_ADDRESS_TRANSLATION_FAILURE" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-NETWORK-PROBLEM-ADDRESS-TRANSLATION-FAILURE:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_NETWORK_RESOURCE_OUTAGE" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-NETWORK-PROBLEM-NETWORK-RESOURCE-OUTAGE:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_NETWORK_FAILURE" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-NETWORK-PROBLEM-NETWORK-FAILURE:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_INVALID_TELESERVICE_ID" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-NETWORK-PROBLEM-INVALID-TELESERVICE-ID:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_OTHER" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-NETWORK-PROBLEM-OTHER:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_NO_PAGE_RESPONSE" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TERMINAL-PROBLEM-NO-PAGE-RESPONSE:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_DESTINATION_BUSY" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TERMINAL-PROBLEM-DESTINATION-BUSY:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_NO_ACKNOWLEDGMENT" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TERMINAL-PROBLEM-NO-ACKNOWLEDGMENT:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_DESTINATION_RESOURCE_SHORTAGE" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TERMINAL-PROBLEM-DESTINATION-RESOURCE-SHORTAGE:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_SMS_DELIVERY_POSTPONED" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TERMINAL-PROBLEM-SMS-DELIVERY-POSTPONED:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_DESTINATION_OUT_OF_SERVICE" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TERMINAL-PROBLEM-DESTINATION-OUT-OF-SERVICE:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_DESTINATION_NO_LONGER_AT_THIS_ADDRESS" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TERMINAL-PROBLEM-DESTINATION-NO-LONGER-AT-THIS-ADDRESS:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_OTHER" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TERMINAL-PROBLEM-OTHER:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_RADIO_INTERFACE_PROBLEM_RESOURCE_SHORTAGE" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-RADIO-INTERFACE-PROBLEM-RESOURCE-SHORTAGE:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_RADIO_INTERFACE_PROBLEM_INCOMPATIBILITY" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-RADIO-INTERFACE-PROBLEM-INCOMPATIBILITY:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_RADIO_INTERFACE_PROBLEM_OTHER" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-RADIO-INTERFACE-PROBLEM-OTHER:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_ENCODING" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-ENCODING:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_SMS_ORIGINATION_DENIED" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-SMS-ORIGINATION-DENIED:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_SMS_TERMINATION_DENIED" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-SMS-TERMINATION-DENIED:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_SUPPLEMENTARY_SERVICE_NOT_SUPPORTED" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-SUPPLEMENTARY-SERVICE-NOT-SUPPORTED:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_SMS_NOT_SUPPORTED" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-SMS-NOT-SUPPORTED:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_MISSING_EXPECTED_PARAMETER" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-MISSING-EXPECTED-PARAMETER:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_MISSING_MANDATORY_PARAMETER" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-MISSING-MANDATORY-PARAMETER:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_UNRECOGNIZED_PARAMETER_VALUE" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-UNRECOGNIZED-PARAMETER-VALUE:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_UNEXPECTED_PARAMETER_VALUE" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-UNEXPECTED-PARAMETER-VALUE:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_USER_DATA_SIZE_ERROR" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-USER-DATA-SIZE-ERROR:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_OTHER" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-OTHER:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_ADDRESS_VACANT" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-NETWORK-PROBLEM-ADDRESS-VACANT:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_ADDRESS_TRANSLATION_FAILURE" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-NETWORK-PROBLEM-ADDRESS-TRANSLATION-FAILURE:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_NETWORK_RESOURCE_OUTAGE" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-NETWORK-PROBLEM-NETWORK-RESOURCE-OUTAGE:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_NETWORK_FAILURE" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-NETWORK-PROBLEM-NETWORK-FAILURE:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_INVALID_TELESERVICE_ID" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-NETWORK-PROBLEM-INVALID-TELESERVICE-ID:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_OTHER" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-NETWORK-PROBLEM-OTHER:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_NO_PAGE_RESPONSE" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-TERMINAL-PROBLEM-NO-PAGE-RESPONSE:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_DESTINATION_BUSY" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-TERMINAL-PROBLEM-DESTINATION-BUSY:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_NO_ACKNOWLEDGMENT" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-TERMINAL-PROBLEM-NO-ACKNOWLEDGMENT:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_DESTINATION_RESOURCE_SHORTAGE" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-TERMINAL-PROBLEM-DESTINATION-RESOURCE-SHORTAGE:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_SMS_DELIVERY_POSTPONED" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-TERMINAL-PROBLEM-SMS-DELIVERY-POSTPONED:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_DESTINATION_OUT_OF_SERVICE" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-TERMINAL-PROBLEM-DESTINATION-OUT-OF-SERVICE:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_DESTINATION_NO_LONGER_AT_THIS_ADDRESS" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-TERMINAL-PROBLEM-DESTINATION-NO-LONGER-AT-THIS-ADDRESS:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_OTHER" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-TERMINAL-PROBLEM-OTHER:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TEMPORARY_RADIO_INTERFACE_PROBLEM_RESOURCE_SHORTAGE" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-RADIO-INTERFACE-PROBLEM-RESOURCE-SHORTAGE:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TEMPORARY_RADIO_INTERFACE_PROBLEM_INCOMPATIBILITY" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-RADIO-INTERFACE-PROBLEM-INCOMPATIBILITY:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TEMPORARY_RADIO_INTERFACE_PROBLEM_OTHER" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-RADIO-INTERFACE-PROBLEM-OTHER:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_ENCODING" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-ENCODING:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_SMS_ORIGINATION_DENIED" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-SMS-ORIGINATION-DENIED:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_SMS_TERMINATION_DENIED" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-SMS-TERMINATION-DENIED:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_SUPPLEMENTARY_SERVICE_NOT_SUPPORTED" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-SUPPLEMENTARY-SERVICE-NOT-SUPPORTED:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_SMS_NOT_SUPPORTED" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-SMS-NOT-SUPPORTED:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_MISSING_EXPECTED_PARAMETER" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-MISSING-EXPECTED-PARAMETER:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_MISSING_MANDATORY_PARAMETER" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-MISSING-MANDATORY-PARAMETER:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_UNRECOGNIZED_PARAMETER_VALUE" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-UNRECOGNIZED-PARAMETER-VALUE:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_UNEXPECTED_PARAMETER_VALUE" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-UNEXPECTED-PARAMETER-VALUE:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_USER_DATA_SIZE_ERROR" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-USER-DATA-SIZE-ERROR:CAPS"/>
+ <keyword type="constant" name="MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_OTHER" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-OTHER:CAPS"/>
<keyword type="constant" name="MM_SMS_STORAGE_UNKNOWN" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-STORAGE-UNKNOWN:CAPS"/>
<keyword type="constant" name="MM_SMS_STORAGE_SM" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-STORAGE-SM:CAPS"/>
<keyword type="constant" name="MM_SMS_STORAGE_ME" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-STORAGE-ME:CAPS"/>
@@ -489,6 +615,52 @@
<keyword type="constant" name="MM_SMS_VALIDITY_TYPE_RELATIVE" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-VALIDITY-TYPE-RELATIVE:CAPS"/>
<keyword type="constant" name="MM_SMS_VALIDITY_TYPE_ABSOLUTE" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-VALIDITY-TYPE-ABSOLUTE:CAPS"/>
<keyword type="constant" name="MM_SMS_VALIDITY_TYPE_ENHANCED" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-VALIDITY-TYPE-ENHANCED:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_TELESERVICE_ID_UNKNOWN" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-TELESERVICE-ID-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_TELESERVICE_ID_CMT91" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-TELESERVICE-ID-CMT91:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_TELESERVICE_ID_WPT" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-TELESERVICE-ID-WPT:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_TELESERVICE_ID_WMT" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-TELESERVICE-ID-WMT:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_TELESERVICE_ID_VMN" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-TELESERVICE-ID-VMN:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_TELESERVICE_ID_WAP" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-TELESERVICE-ID-WAP:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_TELESERVICE_ID_WEMT" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-TELESERVICE-ID-WEMT:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_TELESERVICE_ID_SCPT" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-TELESERVICE-ID-SCPT:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_TELESERVICE_ID_CATPT" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-TELESERVICE-ID-CATPT:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_UNKNOWN" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_EMERGENCY_BROADCAST" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-EMERGENCY-BROADCAST:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_ADMINISTRATIVE" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-ADMINISTRATIVE:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_MAINTENANCE" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-MAINTENANCE:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_GENERAL_NEWS_LOCAL" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-GENERAL-NEWS-LOCAL:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_GENERAL_NEWS_REGIONAL" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-GENERAL-NEWS-REGIONAL:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_GENERAL_NEWS_NATIONAL" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-GENERAL-NEWS-NATIONAL:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_GENERAL_NEWS_INTERNATIONAL" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-GENERAL-NEWS-INTERNATIONAL:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_BUSINESS_NEWS_LOCAL" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-BUSINESS-NEWS-LOCAL:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_BUSINESS_NEWS_REGIONAL" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-BUSINESS-NEWS-REGIONAL:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_BUSINESS_NEWS_NATIONAL" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-BUSINESS-NEWS-NATIONAL:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_BUSINESS_NEWS_INTERNATIONAL" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-BUSINESS-NEWS-INTERNATIONAL:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_SPORTS_NEWS_LOCAL" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-SPORTS-NEWS-LOCAL:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_SPORTS_NEWS_REGIONAL" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-SPORTS-NEWS-REGIONAL:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_SPORTS_NEWS_NATIONAL" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-SPORTS-NEWS-NATIONAL:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_SPORTS_NEWS_INTERNATIONAL" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-SPORTS-NEWS-INTERNATIONAL:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_ENTERTAINMENT_NEWS_LOCAL" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-ENTERTAINMENT-NEWS-LOCAL:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_ENTERTAINMENT_NEWS_REGIONAL" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-ENTERTAINMENT-NEWS-REGIONAL:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_ENTERTAINMENT_NEWS_NATIONAL" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-ENTERTAINMENT-NEWS-NATIONAL:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_ENTERTAINMENT_NEWS_INTERNATIONAL" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-ENTERTAINMENT-NEWS-INTERNATIONAL:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_LOCAL_WEATHER" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-LOCAL-WEATHER:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_TRAFFIC_REPORT" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-TRAFFIC-REPORT:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_FLIGHT_SCHEDULES" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-FLIGHT-SCHEDULES:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_RESTAURANTS" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-RESTAURANTS:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_LODGINGS" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-LODGINGS:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_RETAIL_DIRECTORY" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-RETAIL-DIRECTORY:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_ADVERTISEMENTS" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-ADVERTISEMENTS:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_STOCK_QUOTES" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-STOCK-QUOTES:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_EMPLOYMENT" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-EMPLOYMENT:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_HOSPITALS" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-HOSPITALS:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_TECHNOLOGY_NEWS" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-TECHNOLOGY-NEWS:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_MULTICATEGORY" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-MULTICATEGORY:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_PRESIDENTIAL_ALERT" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-CMAS-PRESIDENTIAL-ALERT:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_EXTREME_THREAT" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-CMAS-EXTREME-THREAT:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_SEVERE_THREAT" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-CMAS-SEVERE-THREAT:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_CHILD_ABDUCTION_EMERGENCY" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-CMAS-CHILD-ABDUCTION-EMERGENCY:CAPS"/>
+ <keyword type="constant" name="MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_TEST" link="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-CMAS-TEST:CAPS"/>
<keyword type="constant" name="MM_CONNECTION_ERROR_UNKNOWN" link="ModemManager-Errors.html#MM-CONNECTION-ERROR-UNKNOWN:CAPS"/>
<keyword type="constant" name="MM_CONNECTION_ERROR_NO_CARRIER" link="ModemManager-Errors.html#MM-CONNECTION-ERROR-NO-CARRIER:CAPS"/>
<keyword type="constant" name="MM_CONNECTION_ERROR_NO_DIALTONE" link="ModemManager-Errors.html#MM-CONNECTION-ERROR-NO-DIALTONE:CAPS"/>
diff --git a/docs/reference/api/html/ch02s02.html b/docs/reference/api/html/ch02s02.html
index 4d01761..5d54c14 100644
--- a/docs/reference/api/html/ch02s02.html
+++ b/docs/reference/api/html/ch02s02.html
@@ -8,7 +8,7 @@
<link rel="up" href="ref-overview-modem-detection-and-setup.html" title="Modem detection and setup">
<link rel="prev" href="ref-overview-modem-detection-and-setup.html" title="Modem detection and setup">
<link rel="next" href="ch02s03.html" title="Port grabbing and Modem object creation">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -21,7 +21,7 @@
</tr></table>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="idm211863907456"></a>Probing</h2></div></div></div>
+<a name="id-1.2.3.3"></a>Probing</h2></div></div></div>
<p>
Whenever a new device is detected by ModemManager, port probing process will
get started, so that we can determine which kind of ports we have, and also
@@ -37,7 +37,7 @@
</p>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
-<a name="idm211863905456"></a>Pre-probing filters</h3></div></div></div>
+<a name="id-1.2.3.3.4"></a>Pre-probing filters</h3></div></div></div>
<p>
Pre-probing filters are those which control whether the probing, as
requested by the specific plugin, takes place.
@@ -127,7 +127,7 @@
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
-<a name="idm211854553632"></a>Probing sequence</h3></div></div></div>
+<a name="id-1.2.3.3.5"></a>Probing sequence</h3></div></div></div>
<p>
Whenever all pre-probing filters of a given plugin pass, ModemManager will run
the probing sequence as requested by the specific plugin. The main purpose of the
@@ -216,7 +216,7 @@
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
-<a name="idm211864004288"></a>Post-probing filters</h3></div></div></div>
+<a name="id-1.2.3.3.6"></a>Post-probing filters</h3></div></div></div>
<p>
Post-probing filters are required to identify whether a plugin can handle a given
modem, in special cases where the information retrieved from udev is either not
@@ -294,9 +294,9 @@
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
-<a name="idm211856775152"></a>Probing setup examples</h3></div></div></div>
+<a name="id-1.2.3.3.7"></a>Probing setup examples</h3></div></div></div>
<div class="example">
-<a name="idm211856774416"></a><p class="title"><b>Example 1. Probing setup for a plugin requiring udev-based vendor/product checks</b></p>
+<a name="id-1.2.3.3.7.2"></a><p class="title"><b>Example 1. Probing setup for a plugin requiring udev-based vendor/product checks</b></p>
<div class="example-contents">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -358,7 +358,7 @@
</div>
<br class="example-break"><div class="example">
-<a name="idm211856771984"></a><p class="title"><b>Example 2. Probing setup for a plugin requiring AT-probed vendor/product checks</b></p>
+<a name="id-1.2.3.3.7.3"></a><p class="title"><b>Example 2. Probing setup for a plugin requiring AT-probed vendor/product checks</b></p>
<div class="example-contents">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -414,7 +414,7 @@
</div>
<br class="example-break"><div class="example">
-<a name="idm211856769584"></a><p class="title"><b>Example 3. Probing setup for a plugin with custom initialization requirements</b></p>
+<a name="id-1.2.3.3.7.4"></a><p class="title"><b>Example 3. Probing setup for a plugin with custom initialization requirements</b></p>
<div class="example-contents">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -516,6 +516,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/ch02s03.html b/docs/reference/api/html/ch02s03.html
index 89fc5b3..36ecf49 100644
--- a/docs/reference/api/html/ch02s03.html
+++ b/docs/reference/api/html/ch02s03.html
@@ -8,7 +8,7 @@
<link rel="up" href="ref-overview-modem-detection-and-setup.html" title="Modem detection and setup">
<link rel="prev" href="ch02s02.html" title="Probing">
<link rel="next" href="ref-overview-modem-state-machine.html" title="Modem state machine">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -21,7 +21,7 @@
</tr></table>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="idm211856766320"></a>Port grabbing and Modem object creation</h2></div></div></div>
+<a name="id-1.2.3.4"></a>Port grabbing and Modem object creation</h2></div></div></div>
<p>
Once a port passes all probing filters of a given plugin, the plugin will grab
the port. When the first port of a given device is grabbed, the plugin will create
@@ -35,6 +35,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/ch03s02.html b/docs/reference/api/html/ch03s02.html
index 664cc69..ef78241 100644
--- a/docs/reference/api/html/ch03s02.html
+++ b/docs/reference/api/html/ch03s02.html
@@ -8,7 +8,7 @@
<link rel="up" href="ref-overview-modem-state-machine.html" title="Modem state machine">
<link rel="prev" href="ref-overview-modem-state-machine.html" title="Modem state machine">
<link rel="next" href="ch03s03.html" title="Connection &amp; disconnection">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -21,7 +21,7 @@
</tr></table>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="idm211856742224"></a>Enabling</h2></div></div></div>
+<a name="id-1.2.4.6"></a>Enabling</h2></div></div></div>
<p>
Modem enabling is the user-requested sequence with the sole purpose of bringing
the modem to a state where it can get connected.
@@ -78,6 +78,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/ch03s03.html b/docs/reference/api/html/ch03s03.html
index cc62014..c7744a3 100644
--- a/docs/reference/api/html/ch03s03.html
+++ b/docs/reference/api/html/ch03s03.html
@@ -8,7 +8,7 @@
<link rel="up" href="ref-overview-modem-state-machine.html" title="Modem state machine">
<link rel="prev" href="ch03s02.html" title="Enabling">
<link rel="next" href="ch03s04.html" title="Disabling">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -21,7 +21,7 @@
</tr></table>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="idm211856727392"></a>Connection &amp; disconnection</h2></div></div></div>
+<a name="id-1.2.4.7"></a>Connection &amp; disconnection</h2></div></div></div>
<p>
Connecting the Modem is done through the <span class="emphasis"><em>Bearer</em></span> objects. Once such an
object is created, the user can request to get the given bearer connected.
@@ -45,6 +45,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/ch03s04.html b/docs/reference/api/html/ch03s04.html
index 388da75..0c3999d 100644
--- a/docs/reference/api/html/ch03s04.html
+++ b/docs/reference/api/html/ch03s04.html
@@ -8,7 +8,7 @@
<link rel="up" href="ref-overview-modem-state-machine.html" title="Modem state machine">
<link rel="prev" href="ch03s03.html" title="Connection &amp; disconnection">
<link rel="next" href="ref-overview-plugin-specific-modems.html" title="Plugin-specific Modems">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -21,7 +21,7 @@
</tr></table>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="idm211856723376"></a>Disabling</h2></div></div></div>
+<a name="id-1.2.4.8"></a>Disabling</h2></div></div></div>
<p>
Users can disable the modems, which will bring them to a state where they are in low power
mode (e.g. RF switched off) and not registered in any network.
@@ -85,6 +85,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/ch12.html b/docs/reference/api/html/ch12.html
index 3ec9d85..89575ea 100644
--- a/docs/reference/api/html/ch12.html
+++ b/docs/reference/api/html/ch12.html
@@ -8,7 +8,7 @@
<link rel="up" href="ref-migrating.html" title="Part IV. Migrating from ModemManager 0.6 to ModemManager 1.0">
<link rel="prev" href="ref-migrating.html" title="Part IV. Migrating from ModemManager 0.6 to ModemManager 1.0">
<link rel="next" href="ch12s02.html" title="PIN unlocking">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,14 +22,14 @@
<div class="chapter">
<div class="titlepage"></div>
<div class="toc"><dl class="toc">
-<dt><span class="section"><a href="ch12.html#idm211850989168">Listing available modems</a></span></dt>
+<dt><span class="section"><a href="ch12.html#id-1.5.3.1">Listing available modems</a></span></dt>
<dt><span class="section"><a href="ch12s02.html">PIN unlocking</a></span></dt>
<dt><span class="section"><a href="ch12s03.html">Connection and disconnection</a></span></dt>
<dt><span class="section"><a href="ch12s04.html">Simple connection</a></span></dt>
</dl></div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="idm211850989168"></a>Listing available modems</h2></div></div></div>
+<a name="id-1.5.3.1"></a>Listing available modems</h2></div></div></div>
<p>
The D-Bus name <code class="literal">org.freedesktop.ModemManager1</code>
on the system bus is the new name used by the ModemManager 1.0 daemon, and it
@@ -60,6 +60,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/ch12s02.html b/docs/reference/api/html/ch12s02.html
index 3d4d66a..d30c93e 100644
--- a/docs/reference/api/html/ch12s02.html
+++ b/docs/reference/api/html/ch12s02.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch12.html" title="">
<link rel="prev" href="ch12.html" title="">
<link rel="next" href="ch12s03.html" title="Connection and disconnection">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -21,7 +21,7 @@
</tr></table>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="idm211856200960"></a>PIN unlocking</h2></div></div></div>
+<a name="id-1.5.3.2"></a>PIN unlocking</h2></div></div></div>
<p>
The process of PIN unlocking the modem is now performed with the
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Sim.html#gdbus-method-org-freedesktop-ModemManager1-Sim.SendPin" title="The SendPin() method">
@@ -47,6 +47,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/ch12s03.html b/docs/reference/api/html/ch12s03.html
index b22ae7a..588e6be 100644
--- a/docs/reference/api/html/ch12s03.html
+++ b/docs/reference/api/html/ch12s03.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch12.html" title="">
<link rel="prev" href="ch12s02.html" title="PIN unlocking">
<link rel="next" href="ch12s04.html" title="Simple connection">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -21,7 +21,7 @@
</tr></table>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="idm211855470720"></a>Connection and disconnection</h2></div></div></div>
+<a name="id-1.5.3.3"></a>Connection and disconnection</h2></div></div></div>
<p>
The process of requesting to connect or disconnect the modem is now split into
two operations: creating a bearer with
@@ -65,6 +65,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/ch12s04.html b/docs/reference/api/html/ch12s04.html
index 68fc85f..6f32fb1 100644
--- a/docs/reference/api/html/ch12s04.html
+++ b/docs/reference/api/html/ch12s04.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch12.html" title="">
<link rel="prev" href="ch12s03.html" title="Connection and disconnection">
<link rel="next" href="ix01.html" title="Index">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -21,7 +21,7 @@
</tr></table>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="idm211857333392"></a>Simple connection</h2></div></div></div>
+<a name="id-1.5.3.4"></a>Simple connection</h2></div></div></div>
<p>
In order to simplify the whole sequence to get the modem connected, ModemManager
still exposes a Simple interface, renamed as:
@@ -56,6 +56,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Bearer.html b/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Bearer.html
index 9563e62..6405c08 100644
--- a/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Bearer.html
+++ b/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Bearer.html
@@ -8,7 +8,7 @@
<link rel="up" href="ref-dbus-object-bearer.html" title="The /org/freedesktop/ModemManager/Bearers objects">
<link rel="prev" href="ref-dbus-object-bearer.html" title="The /org/freedesktop/ModemManager/Bearers objects">
<link rel="next" href="ref-dbus-object-sim.html" title="The /org/freedesktop/ModemManager/SIMs objects">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -45,7 +45,7 @@
</pre>
</div>
<div class="refsect1">
-<a name="idm211849419184"></a><h2>Properties</h2>
+<a name="id-1.4.6.3.4"></a><h2>Properties</h2>
<pre class="synopsis">
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Bearer.html#gdbus-property-org-freedesktop-ModemManager1-Bearer.Interface" title='The "Interface" property'>Interface</a> readable s
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Bearer.html#gdbus-property-org-freedesktop-ModemManager1-Bearer.Connected" title='The "Connected" property'>Connected</a> readable b
@@ -328,6 +328,6 @@ Properties readable a{sv}
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Firmware.html b/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Firmware.html
index 0663fad..b0b57cc 100644
--- a/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Firmware.html
+++ b/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Firmware.html
@@ -7,8 +7,8 @@
<link rel="home" href="index.html" title="ModemManager Reference Manual">
<link rel="up" href="ref-dbus-object-modem.html" title="The /org/freedesktop/ModemManager/Modems objects">
<link rel="prev" href="gdbus-org.freedesktop.ModemManager1.Modem.Time.html" title="org.freedesktop.ModemManager1.Modem.Time">
-<link rel="next" href="ref-dbus-object-bearer.html" title="The /org/freedesktop/ModemManager/Bearers objects">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<link rel="next" href="gdbus-org.freedesktop.ModemManager1.Modem.Signal.html" title="org.freedesktop.ModemManager1.Modem.Signal">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -18,7 +18,7 @@
<td><a accesskey="u" href="ref-dbus-object-modem.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">ModemManager Reference Manual</th>
-<td><a accesskey="n" href="ref-dbus-object-bearer.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gdbus-org.freedesktop.ModemManager1.Modem.Signal.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#gdbus-org.freedesktop.ModemManager1.Modem.Firmware.synopsis" class="shortcut">Top</a>
@@ -184,6 +184,6 @@ Select (IN s uniqueid);
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Location.html b/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Location.html
index 7e6cf75..f6cc631 100644
--- a/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Location.html
+++ b/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Location.html
@@ -8,7 +8,7 @@
<link rel="up" href="ref-dbus-object-modem.html" title="The /org/freedesktop/ModemManager/Modems objects">
<link rel="prev" href="gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html" title="org.freedesktop.ModemManager1.Modem.Messaging">
<link rel="next" href="gdbus-org.freedesktop.ModemManager1.Modem.Time.html" title="org.freedesktop.ModemManager1.Modem.Time">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -46,7 +46,7 @@
</pre>
</div>
<div class="refsect1">
-<a name="idm211857531456"></a><h2>Properties</h2>
+<a name="id-1.4.5.12.4"></a><h2>Properties</h2>
<pre class="synopsis">
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Location.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Location.Capabilities" title='The "Capabilities" property'>Capabilities</a> readable u
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Location.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Location.Enabled" title='The "Enabled" property'>Enabled</a> readable u
@@ -389,6 +389,6 @@ Location readable a{uv}
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html b/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html
index 45d9b7d..2208261 100644
--- a/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html
+++ b/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html
@@ -8,7 +8,7 @@
<link rel="up" href="ref-dbus-object-modem.html" title="The /org/freedesktop/ModemManager/Modems objects">
<link rel="prev" href="gdbus-org.freedesktop.ModemManager1.Modem.ModemCdma.html" title="org.freedesktop.ModemManager1.Modem.ModemCdma">
<link rel="next" href="gdbus-org.freedesktop.ModemManager1.Modem.Location.html" title="org.freedesktop.ModemManager1.Modem.Location">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -49,7 +49,7 @@
</pre>
</div>
<div class="refsect1">
-<a name="idm211849157856"></a><h2>Signals</h2>
+<a name="id-1.4.5.11.4"></a><h2>Signals</h2>
<pre class="synopsis">
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-signal-org-freedesktop-ModemManager1-Modem-Messaging.Added" title='The "Added" signal'>Added</a> (o path,
b received);
@@ -57,8 +57,9 @@
</pre>
</div>
<div class="refsect1">
-<a name="idm211850974416"></a><h2>Properties</h2>
+<a name="id-1.4.5.11.5"></a><h2>Properties</h2>
<pre class="synopsis">
+<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Messaging.Messages" title='The "Messages" property'>Messages</a> readable ao
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Messaging.SupportedStorages" title='The "SupportedStorages" property'>SupportedStorages</a> readable au
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Messaging.DefaultStorage" title='The "DefaultStorage" property'>DefaultStorage</a> readable u
</pre>
@@ -79,9 +80,8 @@ List (OUT ao result);
<p> Retrieve all SMS messages.
</p>
<p> This method should only be used once and subsequent information
- retreived either by listening for the
- <a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-signal-org-freedesktop-ModemManager1-Modem-Messaging.Added" title='The "Added" signal'>"Added"</a> and
- <a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-interface-org-freedesktop-ModemManager1-Modem-Messaging.top_of_page">org.freedesktop.ModemManager1.Modem.Messaging</a>::Completed signals,
+ retrieved either by listening for the
+ <a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-signal-org-freedesktop-ModemManager1-Modem-Messaging.Added" title='The "Added" signal'>"Added"</a> signal,
or by querying the specific SMS object of interest.
</p>
<div class="variablelist"><table border="0" class="variablelist">
@@ -165,9 +165,7 @@ Added (o path,
</p>
<p> Check the
'<a class="link" href="gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.State" title='The "State" property'>State</a>'
- property to determine if the message is complete. The
- <a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-interface-org-freedesktop-ModemManager1-Modem-Messaging.top_of_page">org.freedesktop.ModemManager1.Modem.Messaging</a>::Completed
- signal will also be emitted when the message is complete.
+ property to determine if the message is complete.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -209,6 +207,15 @@ Deleted (o path);
<div class="refsect1">
<a name="gdbus-properties-org.freedesktop.ModemManager1.Modem.Messaging"></a><h2>Property Details</h2>
<div class="refsect2">
+<a name="gdbus-property-org-freedesktop-ModemManager1-Modem-Messaging.Messages"></a><h3>The "Messages" property</h3>
+<pre class="programlisting">
+Messages readable ao
+</pre>
+<p> The list of SMS object paths.
+</p>
+</div>
+<hr>
+<div class="refsect2">
<a name="gdbus-property-org-freedesktop-ModemManager1-Modem-Messaging.SupportedStorages"></a><h3>The "SupportedStorages" property</h3>
<pre class="programlisting">
SupportedStorages readable au
@@ -232,6 +239,6 @@ DefaultStorage readable u
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html b/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html
index e0c1fa6..4cfc85a 100644
--- a/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html
+++ b/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html
@@ -8,7 +8,7 @@
<link rel="up" href="ref-dbus-object-modem.html" title="The /org/freedesktop/ModemManager/Modems objects">
<link rel="prev" href="gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html" title="org.freedesktop.ModemManager1.Modem.Modem3gpp">
<link rel="next" href="gdbus-org.freedesktop.ModemManager1.Modem.ModemCdma.html" title="org.freedesktop.ModemManager1.Modem.ModemCdma">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -48,7 +48,7 @@
</pre>
</div>
<div class="refsect1">
-<a name="idm211849574576"></a><h2>Properties</h2>
+<a name="id-1.4.5.9.4"></a><h2>Properties</h2>
<pre class="synopsis">
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp-Ussd.State" title='The "State" property'>State</a> readable u
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp-Ussd.NetworkNotification" title='The "NetworkNotification" property'>NetworkNotification</a> readable s
@@ -174,6 +174,6 @@ NetworkRequest readable s
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html b/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html
index f542f2e..82cf10b 100644
--- a/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html
+++ b/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html
@@ -8,7 +8,7 @@
<link rel="up" href="ref-dbus-object-modem.html" title="The /org/freedesktop/ModemManager/Modems objects">
<link rel="prev" href="gdbus-org.freedesktop.ModemManager1.Modem.Simple.html" title="org.freedesktop.ModemManager1.Modem.Simple">
<link rel="next" href="gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html" title="org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -45,13 +45,14 @@
</pre>
</div>
<div class="refsect1">
-<a name="idm211849150832"></a><h2>Properties</h2>
+<a name="id-1.4.5.8.4"></a><h2>Properties</h2>
<pre class="synopsis">
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp.Imei" title='The "Imei" property'>Imei</a> readable s
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp.RegistrationState" title='The "RegistrationState" property'>RegistrationState</a> readable u
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp.OperatorCode" title='The "OperatorCode" property'>OperatorCode</a> readable s
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp.OperatorName" title='The "OperatorName" property'>OperatorName</a> readable s
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp.EnabledFacilityLocks" title='The "EnabledFacilityLocks" property'>EnabledFacilityLocks</a> readable u
+<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp.SubscriptionState" title='The "SubscriptionState" property'>SubscriptionState</a> readable u
</pre>
</div>
<div class="refsect1">
@@ -220,10 +221,21 @@ EnabledFacilityLocks readable u
for which PIN locking is enabled.
</p>
</div>
+<hr>
+<div class="refsect2">
+<a name="gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp.SubscriptionState"></a><h3>The "SubscriptionState" property</h3>
+<pre class="programlisting">
+SubscriptionState readable u
+</pre>
+<p> A <a class="link" href="ModemManager-Flags-and-Enumerations.html#MMModem3gppSubscriptionState" title="enum MMModem3gppSubscriptionState">MMModem3gppSubscriptionState</a>
+ value representing the subscription status of the account and whether there
+ is any data remaining, given as an unsigned integer (signature <code class="literal">"u"</code>).
+</p>
+</div>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.ModemCdma.html b/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.ModemCdma.html
index c8c4aa0..cd52074 100644
--- a/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.ModemCdma.html
+++ b/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.ModemCdma.html
@@ -8,7 +8,7 @@
<link rel="up" href="ref-dbus-object-modem.html" title="The /org/freedesktop/ModemManager/Modems objects">
<link rel="prev" href="gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html" title="org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd">
<link rel="next" href="gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html" title="org.freedesktop.ModemManager1.Modem.Messaging">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -47,7 +47,7 @@
</pre>
</div>
<div class="refsect1">
-<a name="idm211849006752"></a><h2>Signals</h2>
+<a name="id-1.4.5.10.4"></a><h2>Signals</h2>
<pre class="synopsis">
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.ModemCdma.html#gdbus-signal-org-freedesktop-ModemManager1-Modem-ModemCdma.ActivationStateChanged" title='The "ActivationStateChanged" signal'>ActivationStateChanged</a> (u activation_state,
u activation_error,
@@ -55,7 +55,7 @@
</pre>
</div>
<div class="refsect1">
-<a name="idm211850177040"></a><h2>Properties</h2>
+<a name="id-1.4.5.10.5"></a><h2>Properties</h2>
<pre class="synopsis">
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.ModemCdma.html#gdbus-property-org-freedesktop-ModemManager1-Modem-ModemCdma.ActivationState" title='The "ActivationState" property'>ActivationState</a> readable u
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.ModemCdma.html#gdbus-property-org-freedesktop-ModemManager1-Modem-ModemCdma.Meid" title='The "Meid" property'>Meid</a> readable s
@@ -107,6 +107,63 @@ ActivateManual (IN a{sv} properties);
</p>
<p> Some modems will reboot after this call is made.
</p>
+<p> This dictionary is composed of a string identifier key
+ with an associated data which contains type-specific location
+ information:
+</p>
+<p> </p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">"spc"</span></p></td>
+<td><p>
+ The Service Programming Code, given as a string of exactly 6 digit characters. Mandatory parameter.
+ </p></td>
+</tr>
+<tr>
+<td><p><span class="term">"sid"</span></p></td>
+<td><p>
+ The System Identification Number, given as a 16-bit unsigned integer (signature <code class="literal">"q"</code>). Mandatory parameter.
+ </p></td>
+</tr>
+<tr>
+<td><p><span class="term">"mdn"</span></p></td>
+<td><p>
+ The Mobile Directory Number, given as a string of maximum 15 characters. Mandatory parameter.
+ </p></td>
+</tr>
+<tr>
+<td><p><span class="term">"min"</span></p></td>
+<td><p>
+ The Mobile Identification Number, given as a string of maximum 15 characters. Mandatory parameter.
+ </p></td>
+</tr>
+<tr>
+<td><p><span class="term">"mn-ha-key"</span></p></td>
+<td><p>
+ The MN-HA key, given as a string of maximum 16 characters.
+ </p></td>
+</tr>
+<tr>
+<td><p><span class="term">"mn-aaa-key"</span></p></td>
+<td><p>
+ The MN-AAA key, given as a string of maximum 16 characters.
+ </p></td>
+</tr>
+<tr>
+<td><p><span class="term">"prl"</span></p></td>
+<td><p>
+ The Preferred Roaming List, given as an array of maximum 16384 bytes.
+ </p></td>
+</tr>
+</tbody>
+</table></div>
+<p>
+</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -114,7 +171,7 @@ ActivateManual (IN a{sv} properties);
</colgroup>
<tbody><tr>
<td><p><span class="term"><code class="literal">IN a{sv} <em class="parameter"><code>properties</code></em></code>:</span></p></td>
-<td><p>A dictionary of properties to set on the modem, including <code class="literal">"mdn"</code> and <code class="literal">"min"</code>.</p></td>
+<td><p>A dictionary of properties to set on the modem.</p></td>
</tr></tbody>
</table></div>
</div>
@@ -234,6 +291,6 @@ EvdoRegistrationState readable u
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Oma.html b/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Oma.html
new file mode 100644
index 0000000..d3d96d7
--- /dev/null
+++ b/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Oma.html
@@ -0,0 +1,257 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.freedesktop.ModemManager1.Modem.Oma</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="ModemManager Reference Manual">
+<link rel="up" href="ref-dbus-object-modem.html" title="The /org/freedesktop/ModemManager/Modems objects">
+<link rel="prev" href="gdbus-org.freedesktop.ModemManager1.Modem.Signal.html" title="org.freedesktop.ModemManager1.Modem.Signal">
+<link rel="next" href="ref-dbus-object-bearer.html" title="The /org/freedesktop/ModemManager/Bearers objects">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="gdbus-org.freedesktop.ModemManager1.Modem.Signal.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ref-dbus-object-modem.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">ModemManager Reference Manual</th>
+<td><a accesskey="n" href="ref-dbus-object-bearer.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#gdbus-org.freedesktop.ModemManager1.Modem.Oma.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#gdbus-org.freedesktop.ModemManager1.Modem.Oma.description" class="shortcut">Description</a>
+  | 
+ <a href="#gdbus-org.freedesktop.ModemManager1.Modem.Oma.properties" class="shortcut">Properties</a>
+  | 
+ <a href="#gdbus-org.freedesktop.ModemManager1.Modem.Oma.signals" class="shortcut">Signals</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gdbus-org.freedesktop.ModemManager1.Modem.Oma"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gdbus-interface-org-freedesktop-ModemManager1-Modem-Oma.top_of_page"></a>org.freedesktop.ModemManager1.Modem.Oma</span></h2>
+<p>org.freedesktop.ModemManager1.Modem.Oma — The ModemManager Open Mobile Alliance interface.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<h2>Methods</h2>
+<pre class="synopsis">
+<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Oma.Setup" title="The Setup() method">Setup</a> (IN u features);
+<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Oma.StartClientInitiatedSession" title="The StartClientInitiatedSession() method">StartClientInitiatedSession</a> (IN u session_type);
+<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Oma.AcceptNetworkInitiatedSession" title="The AcceptNetworkInitiatedSession() method">AcceptNetworkInitiatedSession</a> (IN u session_id,
+ IN b accept);
+<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Oma.CancelSession" title="The CancelSession() method">CancelSession</a> ();
+</pre>
+</div>
+<div class="refsect1">
+<a name="id-1.4.5.16.4"></a><h2>Signals</h2>
+<pre class="synopsis">
+<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-signal-org-freedesktop-ModemManager1-Modem-Oma.SessionStateChanged" title='The "SessionStateChanged" signal'>SessionStateChanged</a> (i old_session_state,
+ i new_session_state,
+ u session_state_failed_reason);
+</pre>
+</div>
+<div class="refsect1">
+<a name="id-1.4.5.16.5"></a><h2>Properties</h2>
+<pre class="synopsis">
+<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Oma.Features" title='The "Features" property'>Features</a> readable u
+<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Oma.PendingNetworkInitiatedSessions" title='The "PendingNetworkInitiatedSessions" property'>PendingNetworkInitiatedSessions</a> readable a(uu)
+<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Oma.SessionType" title='The "SessionType" property'>SessionType</a> readable u
+<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Oma.SessionState" title='The "SessionState" property'>SessionState</a> readable i
+</pre>
+</div>
+<div class="refsect1">
+<a name="gdbus-interface-org-freedesktop-ModemManager1-Modem-Oma"></a><h2>Description</h2>
+<p> This interface allows clients to handle device management operations as
+ specified by the Open Mobile Alliance (OMA).
+</p>
+<p> Device management sessions are either on-demand (client-initiated), or
+ automatically initiated by either the device itself or the network.
+</p>
+</div>
+<div class="refsect1">
+<a name="gdbus-methods-org.freedesktop.ModemManager1.Modem.Oma"></a><h2>Method Details</h2>
+<div class="refsect2">
+<a name="gdbus-method-org-freedesktop-ModemManager1-Modem-Oma.Setup"></a><h3>The Setup() method</h3>
+<pre class="programlisting">
+Setup (IN u features);
+</pre>
+<p> Configures which OMA device management features should be enabled.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><code class="literal">IN u <em class="parameter"><code>features</code></em></code>:</span></p></td>
+<td><p>Bitmask of MMModemOmaFeature flags, specifying which device management features should get enabled or disabled. <a class="link" href="ModemManager-Flags-and-Enumerations.html#MM-OMA-FEATURE-NONE:CAPS">MM_OMA_FEATURE_NONE</a> will disable all features.</p></td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gdbus-method-org-freedesktop-ModemManager1-Modem-Oma.StartClientInitiatedSession"></a><h3>The StartClientInitiatedSession() method</h3>
+<pre class="programlisting">
+StartClientInitiatedSession (IN u session_type);
+</pre>
+<p> Starts a client-initiated device management session.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><code class="literal">IN u <em class="parameter"><code>session_type</code></em></code>:</span></p></td>
+<td><p>Type of client-initiated device management session,given as a MMModemOmaSessionType</p></td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gdbus-method-org-freedesktop-ModemManager1-Modem-Oma.AcceptNetworkInitiatedSession"></a><h3>The AcceptNetworkInitiatedSession() method</h3>
+<pre class="programlisting">
+AcceptNetworkInitiatedSession (IN u session_id,
+ IN b accept);
+</pre>
+<p> Accepts or rejects a network-initiated device management session.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><code class="literal">IN u <em class="parameter"><code>session_id</code></em></code>:</span></p></td>
+<td><p>Unique ID of the network-initiated device management session.</p></td>
+</tr>
+<tr>
+<td><p><span class="term"><code class="literal">IN b <em class="parameter"><code>accept</code></em></code>:</span></p></td>
+<td><p>Boolean specifying whether the session is accepted or rejected.</p></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gdbus-method-org-freedesktop-ModemManager1-Modem-Oma.CancelSession"></a><h3>The CancelSession() method</h3>
+<pre class="programlisting">
+CancelSession ();
+</pre>
+<p> Cancels the current on-going device management session.
+</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gdbus-signals-org.freedesktop.ModemManager1.Modem.Oma"></a><h2>Signal Details</h2>
+<div class="refsect2">
+<a name="gdbus-signal-org-freedesktop-ModemManager1-Modem-Oma.SessionStateChanged"></a><h3>The "SessionStateChanged" signal</h3>
+<pre class="programlisting">
+SessionStateChanged (i old_session_state,
+ i new_session_state,
+ u session_state_failed_reason);
+</pre>
+<p> The session state changed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><code class="literal">i <em class="parameter"><code>old_session_state</code></em></code>:</span></p></td>
+<td><p>Previous session state, given as a <a class="link" href="ModemManager-Flags-and-Enumerations.html#MMOmaSessionState" title="enum MMOmaSessionState">MMOmaSessionState</a>.</p></td>
+</tr>
+<tr>
+<td><p><span class="term"><code class="literal">i <em class="parameter"><code>new_session_state</code></em></code>:</span></p></td>
+<td><p>Current session state, given as a <a class="link" href="ModemManager-Flags-and-Enumerations.html#MMOmaSessionState" title="enum MMOmaSessionState">MMOmaSessionState</a>.</p></td>
+</tr>
+<tr>
+<td><p><span class="term"><code class="literal">u <em class="parameter"><code>session_state_failed_reason</code></em></code>:</span></p></td>
+<td><p>Reason of failure, given as a <a class="link" href="ModemManager-Flags-and-Enumerations.html#MMOmaSessionStateFailedReason" title="enum MMOmaSessionStateFailedReason">MMOmaSessionStateFailedReason</a>, if <em class="parameter"><code>session_state</code></em> is <a class="link" href="ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-FAILED:CAPS">MM_OMA_SESSION_STATE_FAILED</a>.</p></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gdbus-properties-org.freedesktop.ModemManager1.Modem.Oma"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="gdbus-property-org-freedesktop-ModemManager1-Modem-Oma.Features"></a><h3>The "Features" property</h3>
+<pre class="programlisting">
+Features readable u
+</pre>
+<p> Bitmask of MMModemOmaFeature
+ flags, specifying which device management features are enabled or
+ disabled.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gdbus-property-org-freedesktop-ModemManager1-Modem-Oma.PendingNetworkInitiatedSessions"></a><h3>The "PendingNetworkInitiatedSessions" property</h3>
+<pre class="programlisting">
+PendingNetworkInitiatedSessions readable a(uu)
+</pre>
+<p> List of network-initiated sessions which are waiting to be accepted or
+ rejected, given as an array of unsigned integer pairs, where:
+</p>
+<p> </p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p></p></td>
+<td>
+ The first integer is a <a class="link" href="ModemManager-Flags-and-Enumerations.html#MMOmaSessionType" title="enum MMOmaSessionType">MMOmaSessionType</a>.
+ </td>
+</tr>
+<tr>
+<td><p></p></td>
+<td>
+ The second integer is the unique session ID.
+ </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gdbus-property-org-freedesktop-ModemManager1-Modem-Oma.SessionType"></a><h3>The "SessionType" property</h3>
+<pre class="programlisting">
+SessionType readable u
+</pre>
+<p> Type of the current on-going device management session, given as a
+ <a class="link" href="ModemManager-Flags-and-Enumerations.html#MMOmaSessionType" title="enum MMOmaSessionType">MMOmaSessionType</a>.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gdbus-property-org-freedesktop-ModemManager1-Modem-Oma.SessionState"></a><h3>The "SessionState" property</h3>
+<pre class="programlisting">
+SessionState readable i
+</pre>
+<p> State of the current on-going device management session, given as a
+ <a class="link" href="ModemManager-Flags-and-Enumerations.html#MMOmaSessionState" title="enum MMOmaSessionState">MMOmaSessionState</a>.
+</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.19</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Signal.html b/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Signal.html
new file mode 100644
index 0000000..50e19a1
--- /dev/null
+++ b/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Signal.html
@@ -0,0 +1,309 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.freedesktop.ModemManager1.Modem.Signal</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="ModemManager Reference Manual">
+<link rel="up" href="ref-dbus-object-modem.html" title="The /org/freedesktop/ModemManager/Modems objects">
+<link rel="prev" href="gdbus-org.freedesktop.ModemManager1.Modem.Firmware.html" title="org.freedesktop.ModemManager1.Modem.Firmware">
+<link rel="next" href="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html" title="org.freedesktop.ModemManager1.Modem.Oma">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="gdbus-org.freedesktop.ModemManager1.Modem.Firmware.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ref-dbus-object-modem.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">ModemManager Reference Manual</th>
+<td><a accesskey="n" href="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#gdbus-org.freedesktop.ModemManager1.Modem.Signal.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#gdbus-org.freedesktop.ModemManager1.Modem.Signal.description" class="shortcut">Description</a>
+  | 
+ <a href="#gdbus-org.freedesktop.ModemManager1.Modem.Signal.properties" class="shortcut">Properties</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gdbus-org.freedesktop.ModemManager1.Modem.Signal"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gdbus-interface-org-freedesktop-ModemManager1-Modem-Signal.top_of_page"></a>org.freedesktop.ModemManager1.Modem.Signal</span></h2>
+<p>org.freedesktop.ModemManager1.Modem.Signal — The ModemManager Signal interface.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<h2>Methods</h2>
+<pre class="synopsis">
+<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Signal.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Signal.Setup" title="The Setup() method">Setup</a> (IN u rate);
+</pre>
+</div>
+<div class="refsect1">
+<a name="id-1.4.5.15.4"></a><h2>Properties</h2>
+<pre class="synopsis">
+<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Signal.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Rate" title='The "Rate" property'>Rate</a> readable u
+<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Signal.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Cdma" title='The "Cdma" property'>Cdma</a> readable a{sv}
+<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Signal.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Evdo" title='The "Evdo" property'>Evdo</a> readable a{sv}
+<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Signal.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Gsm" title='The "Gsm" property'>Gsm</a> readable a{sv}
+<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Signal.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Umts" title='The "Umts" property'>Umts</a> readable a{sv}
+<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Signal.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Lte" title='The "Lte" property'>Lte</a> readable a{sv}
+</pre>
+</div>
+<div class="refsect1">
+<a name="gdbus-interface-org-freedesktop-ModemManager1-Modem-Signal"></a><h2>Description</h2>
+<p> This interface provides access to extended signal quality information.
+</p>
+</div>
+<div class="refsect1">
+<a name="gdbus-methods-org.freedesktop.ModemManager1.Modem.Signal"></a><h2>Method Details</h2>
+<div class="refsect2">
+<a name="gdbus-method-org-freedesktop-ModemManager1-Modem-Signal.Setup"></a><h3>The Setup() method</h3>
+<pre class="programlisting">
+Setup (IN u rate);
+</pre>
+<p> Setup extended signal quality information retrieval.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><code class="literal">IN u <em class="parameter"><code>rate</code></em></code>:</span></p></td>
+<td><p>refresh rate to set, in seconds. 0 to disable retrieval.</p></td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gdbus-properties-org.freedesktop.ModemManager1.Modem.Signal"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Rate"></a><h3>The "Rate" property</h3>
+<pre class="programlisting">
+Rate readable u
+</pre>
+<p> Refresh rate for the extended signal quality information updates,
+ in seconds. A value of 0 disables the retrieval of the values.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Cdma"></a><h3>The "Cdma" property</h3>
+<pre class="programlisting">
+Cdma readable a{sv}
+</pre>
+<p> Dictionary of available signal information for the CDMA1x access
+ technology.
+</p>
+<p> This dictionary is composed of a string key, with an associated data
+ which contains type-specific information.
+</p>
+<p> </p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><code class="literal">"rssi"</code></span></p></td>
+<td><p>
+ The CDMA1x RSSI (Received Signal Strength Indication), in dBm,
+ given as a floating point value (signature <code class="literal">"d"</code>).
+ </p></td>
+</tr>
+<tr>
+<td><p><span class="term"><code class="literal">"ecio"</code></span></p></td>
+<td><p>
+ The CDMA1x Ec/Io, in dBm, given as a floating point value
+ (signature <code class="literal">"d"</code>).
+ </p></td>
+</tr>
+</tbody>
+</table></div>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Evdo"></a><h3>The "Evdo" property</h3>
+<pre class="programlisting">
+Evdo readable a{sv}
+</pre>
+<p> Dictionary of available signal information for the CDMA EV-DO access
+ technology.
+</p>
+<p> This dictionary is composed of a string key, with an associated data
+ which contains type-specific information.
+</p>
+<p> </p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><code class="literal">"rssi"</code></span></p></td>
+<td><p>
+ The CDMA EV-DO RSSI (Received Signal Strength Indication), in dBm,
+ given as a floating point value (signature <code class="literal">"d"</code>).
+ </p></td>
+</tr>
+<tr>
+<td><p><span class="term"><code class="literal">"ecio"</code></span></p></td>
+<td><p>
+ The CDMA EV-DO Ec/Io, in dBm, given as a floating point value
+ (signature <code class="literal">"d"</code>).
+ </p></td>
+</tr>
+<tr>
+<td><p><span class="term"><code class="literal">"sinr"</code></span></p></td>
+<td><p>
+ CDMA EV-DO SINR level, in dB, given as a floating point value
+ (signature <code class="literal">"d"</code>).
+ </p></td>
+</tr>
+<tr>
+<td><p><span class="term"><code class="literal">"io"</code></span></p></td>
+<td><p>
+ The CDMA EV-DO Io, in dBm, given as a floating point value
+ (signature <code class="literal">"d"</code>).
+ </p></td>
+</tr>
+</tbody>
+</table></div>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Gsm"></a><h3>The "Gsm" property</h3>
+<pre class="programlisting">
+Gsm readable a{sv}
+</pre>
+<p> Dictionary of available signal information for the GSM/GPRS access
+ technology.
+</p>
+<p> This dictionary is composed of a string key, with an associated data
+ which contains type-specific information.
+</p>
+<p> </p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><code class="literal">"rssi"</code></span></p></td>
+<td><p>
+ The GSM RSSI (Received Signal Strength Indication), in dBm,
+ given as a floating point value (signature <code class="literal">"d"</code>).
+ </p></td>
+</tr></tbody>
+</table></div>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Umts"></a><h3>The "Umts" property</h3>
+<pre class="programlisting">
+Umts readable a{sv}
+</pre>
+<p> Dictionary of available signal information for the UMTS (WCDMA) access
+ technology.
+</p>
+<p> This dictionary is composed of a string key, with an associated data
+ which contains type-specific information.
+</p>
+<p> </p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><code class="literal">"rssi"</code></span></p></td>
+<td><p>
+ The UMTS RSSI (Received Signal Strength Indication), in dBm,
+ given as a floating point value (signature <code class="literal">"d"</code>).
+ </p></td>
+</tr>
+<tr>
+<td><p><span class="term"><code class="literal">"ecio"</code></span></p></td>
+<td><p>
+ The UMTS Ec/Io, in dBm, given as a floating point value
+ (signature <code class="literal">"d"</code>).
+ </p></td>
+</tr>
+</tbody>
+</table></div>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Lte"></a><h3>The "Lte" property</h3>
+<pre class="programlisting">
+Lte readable a{sv}
+</pre>
+<p> Dictionary of available signal information for the UMTS (WCDMA) access
+ technology.
+</p>
+<p> This dictionary is composed of a string key, with an associated data
+ which contains type-specific information.
+</p>
+<p> </p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><code class="literal">"rssi"</code></span></p></td>
+<td><p>
+ The LTE RSSI (Received Signal Strength Indication), in dBm,
+ given as a floating point value (signature <code class="literal">"d"</code>).
+ </p></td>
+</tr>
+<tr>
+<td><p><span class="term"><code class="literal">"rsrq"</code></span></p></td>
+<td><p>
+ The LTE RSRQ (Reference Signal Received Quality), in dB, given as
+ a floating point value (signature <code class="literal">"d"</code>).
+ </p></td>
+</tr>
+<tr>
+<td><p><span class="term"><code class="literal">"rsrp"</code></span></p></td>
+<td><p>
+ The LTE RSRP (Reference Signal Received Power), in dBm, given as
+ a floating point value (signature <code class="literal">"d"</code>).
+ </p></td>
+</tr>
+<tr>
+<td><p><span class="term"><code class="literal">"snr"</code></span></p></td>
+<td><p>
+ The LTE S/R ratio, in dB, given as
+ a floating point value (signature <code class="literal">"d"</code>).
+ </p></td>
+</tr>
+</tbody>
+</table></div>
+<p>
+</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.19</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Simple.html b/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Simple.html
index e2d9d7a..d9a1174 100644
--- a/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Simple.html
+++ b/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Simple.html
@@ -8,7 +8,7 @@
<link rel="up" href="ref-dbus-object-modem.html" title="The /org/freedesktop/ModemManager/Modems objects">
<link rel="prev" href="gdbus-org.freedesktop.ModemManager1.Modem.html" title="org.freedesktop.ModemManager1.Modem">
<link rel="next" href="gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html" title="org.freedesktop.ModemManager1.Modem.Modem3gpp">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -317,6 +317,6 @@ GetStatus (OUT a{sv} properties);
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Time.html b/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Time.html
index 05189c4..174249a 100644
--- a/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Time.html
+++ b/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.Time.html
@@ -8,7 +8,7 @@
<link rel="up" href="ref-dbus-object-modem.html" title="The /org/freedesktop/ModemManager/Modems objects">
<link rel="prev" href="gdbus-org.freedesktop.ModemManager1.Modem.Location.html" title="org.freedesktop.ModemManager1.Modem.Location">
<link rel="next" href="gdbus-org.freedesktop.ModemManager1.Modem.Firmware.html" title="org.freedesktop.ModemManager1.Modem.Firmware">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -46,13 +46,13 @@
</pre>
</div>
<div class="refsect1">
-<a name="idm211848200064"></a><h2>Signals</h2>
+<a name="id-1.4.5.13.4"></a><h2>Signals</h2>
<pre class="synopsis">
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Time.html#gdbus-signal-org-freedesktop-ModemManager1-Modem-Time.NetworkTimeChanged" title='The "NetworkTimeChanged" signal'>NetworkTimeChanged</a> (s time);
</pre>
</div>
<div class="refsect1">
-<a name="idm211853110096"></a><h2>Properties</h2>
+<a name="id-1.4.5.13.5"></a><h2>Properties</h2>
<pre class="synopsis">
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.Time.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Time.NetworkTimezone" title='The "NetworkTimezone" property'>NetworkTimezone</a> readable a{sv}
</pre>
@@ -159,6 +159,6 @@ NetworkTimezone readable a{sv}
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.html b/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.html
index 4d34dce..9ca9d56 100644
--- a/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.html
+++ b/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Modem.html
@@ -8,7 +8,7 @@
<link rel="up" href="ref-dbus-object-modem.html" title="The /org/freedesktop/ModemManager/Modems objects">
<link rel="prev" href="ref-dbus-object-modem.html" title="The /org/freedesktop/ModemManager/Modems objects">
<link rel="next" href="gdbus-org.freedesktop.ModemManager1.Modem.Simple.html" title="org.freedesktop.ModemManager1.Modem.Simple">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -59,7 +59,7 @@
</pre>
</div>
<div class="refsect1">
-<a name="idm211852023552"></a><h2>Signals</h2>
+<a name="id-1.4.5.6.4"></a><h2>Signals</h2>
<pre class="synopsis">
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-signal-org-freedesktop-ModemManager1-Modem.StateChanged" title='The "StateChanged" signal'>StateChanged</a> (i old,
i new,
@@ -67,9 +67,10 @@
</pre>
</div>
<div class="refsect1">
-<a name="idm211850417072"></a><h2>Properties</h2>
+<a name="id-1.4.5.6.5"></a><h2>Properties</h2>
<pre class="synopsis">
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.Sim" title='The "Sim" property'>Sim</a> readable o
+<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.Bearers" title='The "Bearers" property'>Bearers</a> readable ao
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.SupportedCapabilities" title='The "SupportedCapabilities" property'>SupportedCapabilities</a> readable au
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.CurrentCapabilities" title='The "CurrentCapabilities" property'>CurrentCapabilities</a> readable u
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.MaxBearers" title='The "MaxBearers" property'>MaxBearers</a> readable u
@@ -445,6 +446,16 @@ Sim readable o
</div>
<hr>
<div class="refsect2">
+<a name="gdbus-property-org-freedesktop-ModemManager1-Modem.Bearers"></a><h3>The "Bearers" property</h3>
+<pre class="programlisting">
+Bearers readable ao
+</pre>
+<p> The list of bearer object paths (EPS Bearers, PDP Contexts, or
+ CDMA2000 Packet Data Sessions).
+</p>
+</div>
+<hr>
+<div class="refsect2">
<a name="gdbus-property-org-freedesktop-ModemManager1-Modem.SupportedCapabilities"></a><h3>The "SupportedCapabilities" property</h3>
<pre class="programlisting">
SupportedCapabilities readable au
@@ -798,6 +809,6 @@ SupportedIpFamilies readable u
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Sim.html b/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Sim.html
index db23dd6..5ed559e 100644
--- a/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Sim.html
+++ b/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Sim.html
@@ -8,7 +8,7 @@
<link rel="up" href="ref-dbus-object-sim.html" title="The /org/freedesktop/ModemManager/SIMs objects">
<link rel="prev" href="ref-dbus-object-sim.html" title="The /org/freedesktop/ModemManager/SIMs objects">
<link rel="next" href="ref-dbus-object-sms.html" title="The /org/freedesktop/ModemManager/SMSs objects">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -50,7 +50,7 @@
</pre>
</div>
<div class="refsect1">
-<a name="idm211853113248"></a><h2>Properties</h2>
+<a name="id-1.4.7.3.4"></a><h2>Properties</h2>
<pre class="synopsis">
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Sim.html#gdbus-property-org-freedesktop-ModemManager1-Sim.SimIdentifier" title='The "SimIdentifier" property'>SimIdentifier</a> readable s
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Sim.html#gdbus-property-org-freedesktop-ModemManager1-Sim.Imsi" title='The "Imsi" property'>Imsi</a> readable s
@@ -207,6 +207,6 @@ OperatorName readable s
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Sms.html b/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Sms.html
index 9e9df3a..9be6f16 100644
--- a/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Sms.html
+++ b/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.Sms.html
@@ -8,7 +8,7 @@
<link rel="up" href="ref-dbus-object-sms.html" title="The /org/freedesktop/ModemManager/SMSs objects">
<link rel="prev" href="ref-dbus-object-sms.html" title="The /org/freedesktop/ModemManager/SMSs objects">
<link rel="next" href="ref-migrating.html" title="Part IV. Migrating from ModemManager 0.6 to ModemManager 1.0">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -45,7 +45,7 @@
</pre>
</div>
<div class="refsect1">
-<a name="idm211852063152"></a><h2>Properties</h2>
+<a name="id-1.4.8.3.4"></a><h2>Properties</h2>
<pre class="synopsis">
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.State" title='The "State" property'>State</a> readable u
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.PduType" title='The "PduType" property'>PduType</a> readable u
@@ -55,6 +55,8 @@
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.SMSC" title='The "SMSC" property'>SMSC</a> readable s
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.Validity" title='The "Validity" property'>Validity</a> readable (uv)
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.Class" title='The "Class" property'>Class</a> readable i
+<a class="link" href="gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.TeleserviceId" title='The "TeleserviceId" property'>TeleserviceId</a> readable u
+<a class="link" href="gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.ServiceCategory" title='The "ServiceCategory" property'>ServiceCategory</a> readable u
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.DeliveryReportRequest" title='The "DeliveryReportRequest" property'>DeliveryReportRequest</a> readable b
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.MessageReference" title='The "MessageReference" property'>MessageReference</a> readable u
<a class="link" href="gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.Timestamp" title='The "Timestamp" property'>Timestamp</a> readable s
@@ -181,11 +183,11 @@ Validity readable (uv)
<p> Indicates when the SMS expires in the SMSC.
</p>
<p> This value is composed of a
- <a class="link" href="ModemManager-Flags-and-Enumerations.html#MMSmsValidityType" title="enum MMSmsValidityType">MMSmsValidityType</a>
- key, with an associated data which contains type-specific validity
- information:
+ <a class="link" href="ModemManager-Flags-and-Enumerations.html#MMSmsValidityType" title="enum MMSmsValidityType">MMSmsValidityType</a>
+ key, with an associated data which contains type-specific validity
+ information:
</p>
-<p> </p>
+<p> </p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -194,8 +196,8 @@ Validity readable (uv)
<tbody><tr>
<td><p><span class="term"><a class="link" href="ModemManager-Flags-and-Enumerations.html#MM-SMS-VALIDITY-TYPE-RELATIVE:CAPS">MM_SMS_VALIDITY_TYPE_RELATIVE</a></span></p></td>
<td><p>
- The value is the length of the validity period in minutes, given
- as an unsigned integer (D-Bus signature <code class="literal">'u'</code>).
+ The value is the length of the validity period in minutes, given
+ as an unsigned integer (D-Bus signature <code class="literal">'u'</code>).
</p></td>
</tr></tbody>
</table></div>
@@ -216,6 +218,28 @@ Class readable i
</div>
<hr>
<div class="refsect2">
+<a name="gdbus-property-org-freedesktop-ModemManager1-Sms.TeleserviceId"></a><h3>The "TeleserviceId" property</h3>
+<pre class="programlisting">
+TeleserviceId readable u
+</pre>
+<p> A <a class="link" href="ModemManager-Flags-and-Enumerations.html#MMSmsCdmaTeleserviceId" title="enum MMSmsCdmaTeleserviceId">MMSmsCdmaTeleserviceId</a> value.
+</p>
+<p> Always <a class="link" href="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-TELESERVICE-ID-UNKNOWN:CAPS">MM_SMS_CDMA_TELESERVICE_ID_UNKNOWN</a> for 3GPP.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gdbus-property-org-freedesktop-ModemManager1-Sms.ServiceCategory"></a><h3>The "ServiceCategory" property</h3>
+<pre class="programlisting">
+ServiceCategory readable u
+</pre>
+<p> A <a class="link" href="ModemManager-Flags-and-Enumerations.html#MMSmsCdmaServiceCategory" title="enum MMSmsCdmaServiceCategory">MMSmsCdmaServiceCategory</a> value.
+</p>
+<p> Always <a class="link" href="ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-UNKNOWN:CAPS">MM_SMS_CDMA_SERVICE_CATEGORY_UNKNOWN</a> for 3GPP.
+</p>
+</div>
+<hr>
+<div class="refsect2">
<a name="gdbus-property-org-freedesktop-ModemManager1-Sms.DeliveryReportRequest"></a><h3>The "DeliveryReportRequest" property</h3>
<pre class="programlisting">
DeliveryReportRequest readable b
@@ -292,6 +316,6 @@ Storage readable u
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.html b/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.html
index 9dca85c..71df36e 100644
--- a/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.html
+++ b/docs/reference/api/html/gdbus-org.freedesktop.ModemManager1.html
@@ -8,7 +8,7 @@
<link rel="up" href="ref-dbus-object-manager.html" title="The /org/freedesktop/ModemManager1 object">
<link rel="prev" href="ref-dbus-object-manager.html" title="The /org/freedesktop/ModemManager1 object">
<link rel="next" href="ref-dbus-object-modem.html" title="The /org/freedesktop/ModemManager/Modems objects">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -81,6 +81,6 @@ SetLogging (IN s level);
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/index.html b/docs/reference/api/html/index.html
index ba407c1..3995098 100644
--- a/docs/reference/api/html/index.html
+++ b/docs/reference/api/html/index.html
@@ -6,7 +6,7 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="ModemManager Reference Manual">
<link rel="next" href="ref-overview.html" title="Part I. ModemManager Overview">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -36,12 +36,12 @@
</div>
</div></div>
<div><p class="releaseinfo">
- For ModemManager version 1.0.0
+ For ModemManager version 1.2.0
</p></div>
<div><p class="copyright">Copyright © 2008, 2009, 2010, 2011, 2012, 2013 The ModemManager Authors</p></div>
<div><div class="legalnotice">
-<a name="idm211863716176"></a><p>
+<a name="id-1.1.6"></a><p>
Permission is granted to copy, distribute and/or modify this
document under the terms of the <em class="citetitle">GNU Free
Documentation License</em>, Version 1.3 or any later
@@ -70,19 +70,19 @@
<dt><span class="chapter"><a href="ref-overview-introduction.html">Introduction</a></span></dt>
<dt><span class="chapter"><a href="ref-overview-modem-detection-and-setup.html">Modem detection and setup</a></span></dt>
<dd><dl>
-<dt><span class="section"><a href="ref-overview-modem-detection-and-setup.html#idm211863910672">Detection mechanisms</a></span></dt>
+<dt><span class="section"><a href="ref-overview-modem-detection-and-setup.html#id-1.2.3.2">Detection mechanisms</a></span></dt>
<dt><span class="section"><a href="ch02s02.html">Probing</a></span></dt>
<dd><dl>
-<dt><span class="section"><a href="ch02s02.html#idm211863905456">Pre-probing filters</a></span></dt>
-<dt><span class="section"><a href="ch02s02.html#idm211854553632">Probing sequence</a></span></dt>
-<dt><span class="section"><a href="ch02s02.html#idm211864004288">Post-probing filters</a></span></dt>
-<dt><span class="section"><a href="ch02s02.html#idm211856775152">Probing setup examples</a></span></dt>
+<dt><span class="section"><a href="ch02s02.html#id-1.2.3.3.4">Pre-probing filters</a></span></dt>
+<dt><span class="section"><a href="ch02s02.html#id-1.2.3.3.5">Probing sequence</a></span></dt>
+<dt><span class="section"><a href="ch02s02.html#id-1.2.3.3.6">Post-probing filters</a></span></dt>
+<dt><span class="section"><a href="ch02s02.html#id-1.2.3.3.7">Probing setup examples</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="ch02s03.html">Port grabbing and Modem object creation</a></span></dt>
</dl></dd>
<dt><span class="chapter"><a href="ref-overview-modem-state-machine.html">Modem state machine</a></span></dt>
<dd><dl>
-<dt><span class="section"><a href="ref-overview-modem-state-machine.html#idm211856759264">Initialization</a></span></dt>
+<dt><span class="section"><a href="ref-overview-modem-state-machine.html#id-1.2.4.5">Initialization</a></span></dt>
<dt><span class="section"><a href="ch03s02.html">Enabling</a></span></dt>
<dt><span class="section"><a href="ch03s03.html">Connection &amp; disconnection</a></span></dt>
<dt><span class="section"><a href="ch03s04.html">Disabling</a></span></dt>
@@ -143,6 +143,12 @@
<dt>
<span class="refentrytitle"><a href="gdbus-org.freedesktop.ModemManager1.Modem.Firmware.html">org.freedesktop.ModemManager1.Modem.Firmware</a></span><span class="refpurpose"> — The ModemManager Firmware interface.</span>
</dt>
+<dt>
+<span class="refentrytitle"><a href="gdbus-org.freedesktop.ModemManager1.Modem.Signal.html">org.freedesktop.ModemManager1.Modem.Signal</a></span><span class="refpurpose"> — The ModemManager Signal interface.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html">org.freedesktop.ModemManager1.Modem.Oma</a></span><span class="refpurpose"> — The ModemManager Open Mobile Alliance interface.</span>
+</dt>
</dl></dd>
<dt><span class="chapter"><a href="ref-dbus-object-bearer.html">The <code class="literal">/org/freedesktop/ModemManager/Bearers</code> objects</a></span></dt>
<dd><dl><dt>
@@ -161,7 +167,7 @@
<dd><dl>
<dt><span class="chapter"><a href="ch12.html"></a></span></dt>
<dd><dl>
-<dt><span class="section"><a href="ch12.html#idm211850989168">Listing available modems</a></span></dt>
+<dt><span class="section"><a href="ch12.html#id-1.5.3.1">Listing available modems</a></span></dt>
<dt><span class="section"><a href="ch12s02.html">PIN unlocking</a></span></dt>
<dt><span class="section"><a href="ch12s03.html">Connection and disconnection</a></span></dt>
<dt><span class="section"><a href="ch12s04.html">Simple connection</a></span></dt>
@@ -172,6 +178,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/index.sgml b/docs/reference/api/html/index.sgml
index dd3638d..3ab6843 100644
--- a/docs/reference/api/html/index.sgml
+++ b/docs/reference/api/html/index.sgml
@@ -48,6 +48,11 @@
<ANCHOR id="MM-MODEM-3GPP-NETWORK-AVAILABILITY-AVAILABLE:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-MODEM-3GPP-NETWORK-AVAILABILITY-AVAILABLE:CAPS">
<ANCHOR id="MM-MODEM-3GPP-NETWORK-AVAILABILITY-CURRENT:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-MODEM-3GPP-NETWORK-AVAILABILITY-CURRENT:CAPS">
<ANCHOR id="MM-MODEM-3GPP-NETWORK-AVAILABILITY-FORBIDDEN:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-MODEM-3GPP-NETWORK-AVAILABILITY-FORBIDDEN:CAPS">
+<ANCHOR id="MMModem3gppSubscriptionState" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MMModem3gppSubscriptionState">
+<ANCHOR id="MM-MODEM-3GPP-SUBSCRIPTION-STATE-UNKNOWN:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-MODEM-3GPP-SUBSCRIPTION-STATE-UNKNOWN:CAPS">
+<ANCHOR id="MM-MODEM-3GPP-SUBSCRIPTION-STATE-UNPROVISIONED:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-MODEM-3GPP-SUBSCRIPTION-STATE-UNPROVISIONED:CAPS">
+<ANCHOR id="MM-MODEM-3GPP-SUBSCRIPTION-STATE-PROVISIONED:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-MODEM-3GPP-SUBSCRIPTION-STATE-PROVISIONED:CAPS">
+<ANCHOR id="MM-MODEM-3GPP-SUBSCRIPTION-STATE-OUT-OF-DATA:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-MODEM-3GPP-SUBSCRIPTION-STATE-OUT-OF-DATA:CAPS">
<ANCHOR id="MMModem3gppRegistrationState" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MMModem3gppRegistrationState">
<ANCHOR id="MM-MODEM-3GPP-REGISTRATION-STATE-IDLE:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-MODEM-3GPP-REGISTRATION-STATE-IDLE:CAPS">
<ANCHOR id="MM-MODEM-3GPP-REGISTRATION-STATE-HOME:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-MODEM-3GPP-REGISTRATION-STATE-HOME:CAPS">
@@ -249,11 +254,51 @@
<ANCHOR id="MM-MODEM-PORT-TYPE-GPS:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-MODEM-PORT-TYPE-GPS:CAPS">
<ANCHOR id="MM-MODEM-PORT-TYPE-QMI:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-MODEM-PORT-TYPE-QMI:CAPS">
<ANCHOR id="MM-MODEM-PORT-TYPE-MBIM:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-MODEM-PORT-TYPE-MBIM:CAPS">
+<ANCHOR id="MMOmaFeature" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MMOmaFeature">
+<ANCHOR id="MM-OMA-FEATURE-NONE:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-OMA-FEATURE-NONE:CAPS">
+<ANCHOR id="MM-OMA-FEATURE-DEVICE-PROVISIONING:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-OMA-FEATURE-DEVICE-PROVISIONING:CAPS">
+<ANCHOR id="MM-OMA-FEATURE-PRL-UPDATE:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-OMA-FEATURE-PRL-UPDATE:CAPS">
+<ANCHOR id="MM-OMA-FEATURE-HANDS-FREE-ACTIVATION:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-OMA-FEATURE-HANDS-FREE-ACTIVATION:CAPS">
+<ANCHOR id="MMOmaSessionState" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MMOmaSessionState">
+<ANCHOR id="MM-OMA-SESSION-STATE-FAILED:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-FAILED:CAPS">
+<ANCHOR id="MM-OMA-SESSION-STATE-UNKNOWN:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-UNKNOWN:CAPS">
+<ANCHOR id="MM-OMA-SESSION-STATE-STARTED:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-STARTED:CAPS">
+<ANCHOR id="MM-OMA-SESSION-STATE-RETRYING:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-RETRYING:CAPS">
+<ANCHOR id="MM-OMA-SESSION-STATE-CONNECTING:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-CONNECTING:CAPS">
+<ANCHOR id="MM-OMA-SESSION-STATE-CONNECTED:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-CONNECTED:CAPS">
+<ANCHOR id="MM-OMA-SESSION-STATE-AUTHENTICATED:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-AUTHENTICATED:CAPS">
+<ANCHOR id="MM-OMA-SESSION-STATE-MDN-DOWNLOADED:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-MDN-DOWNLOADED:CAPS">
+<ANCHOR id="MM-OMA-SESSION-STATE-MSID-DOWNLOADED:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-MSID-DOWNLOADED:CAPS">
+<ANCHOR id="MM-OMA-SESSION-STATE-PRL-DOWNLOADED:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-PRL-DOWNLOADED:CAPS">
+<ANCHOR id="MM-OMA-SESSION-STATE-MIP-PROFILE-DOWNLOADED:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-MIP-PROFILE-DOWNLOADED:CAPS">
+<ANCHOR id="MM-OMA-SESSION-STATE-COMPLETED:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-COMPLETED:CAPS">
+<ANCHOR id="MMOmaSessionStateFailedReason" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MMOmaSessionStateFailedReason">
+<ANCHOR id="MM-OMA-SESSION-STATE-FAILED-REASON-UNKNOWN:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-FAILED-REASON-UNKNOWN:CAPS">
+<ANCHOR id="MM-OMA-SESSION-STATE-FAILED-REASON-NETWORK-UNAVAILABLE:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-FAILED-REASON-NETWORK-UNAVAILABLE:CAPS">
+<ANCHOR id="MM-OMA-SESSION-STATE-FAILED-REASON-SERVER-UNAVAILABLE:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-FAILED-REASON-SERVER-UNAVAILABLE:CAPS">
+<ANCHOR id="MM-OMA-SESSION-STATE-FAILED-REASON-AUTHENTICATION-FAILED:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-FAILED-REASON-AUTHENTICATION-FAILED:CAPS">
+<ANCHOR id="MM-OMA-SESSION-STATE-FAILED-REASON-MAX-RETRY-EXCEEDED:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-FAILED-REASON-MAX-RETRY-EXCEEDED:CAPS">
+<ANCHOR id="MM-OMA-SESSION-STATE-FAILED-REASON-SESSION-CANCELLED:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-STATE-FAILED-REASON-SESSION-CANCELLED:CAPS">
+<ANCHOR id="MMOmaSessionType" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MMOmaSessionType">
+<ANCHOR id="MM-OMA-SESSION-TYPE-UNKNOWN:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-TYPE-UNKNOWN:CAPS">
+<ANCHOR id="MM-OMA-SESSION-TYPE-CLIENT-INITIATED-DEVICE-CONFIGURE:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-TYPE-CLIENT-INITIATED-DEVICE-CONFIGURE:CAPS">
+<ANCHOR id="MM-OMA-SESSION-TYPE-CLIENT-INITIATED-PRL-UPDATE:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-TYPE-CLIENT-INITIATED-PRL-UPDATE:CAPS">
+<ANCHOR id="MM-OMA-SESSION-TYPE-CLIENT-INITIATED-HANDS-FREE-ACTIVATION:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-TYPE-CLIENT-INITIATED-HANDS-FREE-ACTIVATION:CAPS">
+<ANCHOR id="MM-OMA-SESSION-TYPE-NETWORK-INITIATED-DEVICE-CONFIGURE:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-TYPE-NETWORK-INITIATED-DEVICE-CONFIGURE:CAPS">
+<ANCHOR id="MM-OMA-SESSION-TYPE-NETWORK-INITIATED-PRL-UPDATE:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-TYPE-NETWORK-INITIATED-PRL-UPDATE:CAPS">
+<ANCHOR id="MM-OMA-SESSION-TYPE-DEVICE-INITIATED-PRL-UPDATE:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-TYPE-DEVICE-INITIATED-PRL-UPDATE:CAPS">
+<ANCHOR id="MM-OMA-SESSION-TYPE-DEVICE-INITIATED-HANDS-FREE-ACTIVATION:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-OMA-SESSION-TYPE-DEVICE-INITIATED-HANDS-FREE-ACTIVATION:CAPS">
<ANCHOR id="MMSmsPduType" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsPduType">
<ANCHOR id="MM-SMS-PDU-TYPE-UNKNOWN:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-PDU-TYPE-UNKNOWN:CAPS">
<ANCHOR id="MM-SMS-PDU-TYPE-DELIVER:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-PDU-TYPE-DELIVER:CAPS">
<ANCHOR id="MM-SMS-PDU-TYPE-SUBMIT:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-PDU-TYPE-SUBMIT:CAPS">
<ANCHOR id="MM-SMS-PDU-TYPE-STATUS-REPORT:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-PDU-TYPE-STATUS-REPORT:CAPS">
+<ANCHOR id="MM-SMS-PDU-TYPE-CDMA-DELIVER:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-PDU-TYPE-CDMA-DELIVER:CAPS">
+<ANCHOR id="MM-SMS-PDU-TYPE-CDMA-SUBMIT:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-PDU-TYPE-CDMA-SUBMIT:CAPS">
+<ANCHOR id="MM-SMS-PDU-TYPE-CDMA-CANCELLATION:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-PDU-TYPE-CDMA-CANCELLATION:CAPS">
+<ANCHOR id="MM-SMS-PDU-TYPE-CDMA-DELIVERY-ACKNOWLEDGEMENT:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-PDU-TYPE-CDMA-DELIVERY-ACKNOWLEDGEMENT:CAPS">
+<ANCHOR id="MM-SMS-PDU-TYPE-CDMA-USER-ACKNOWLEDGEMENT:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-PDU-TYPE-CDMA-USER-ACKNOWLEDGEMENT:CAPS">
+<ANCHOR id="MM-SMS-PDU-TYPE-CDMA-READ-ACKNOWLEDGEMENT:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-PDU-TYPE-CDMA-READ-ACKNOWLEDGEMENT:CAPS">
<ANCHOR id="MMSmsState" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsState">
<ANCHOR id="MM-SMS-STATE-UNKNOWN:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-STATE-UNKNOWN:CAPS">
<ANCHOR id="MM-SMS-STATE-STORED:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-STATE-STORED:CAPS">
@@ -288,6 +333,62 @@
<ANCHOR id="MM-SMS-DELIVERY-STATE-TEMPORARY-FATAL-ERROR-QOS-NOT-AVAILABLE:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-FATAL-ERROR-QOS-NOT-AVAILABLE:CAPS">
<ANCHOR id="MM-SMS-DELIVERY-STATE-TEMPORARY-FATAL-ERROR-IN-SME:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-FATAL-ERROR-IN-SME:CAPS">
<ANCHOR id="MM-SMS-DELIVERY-STATE-UNKNOWN:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-UNKNOWN:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-NETWORK-PROBLEM-ADDRESS-VACANT:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-NETWORK-PROBLEM-ADDRESS-VACANT:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-NETWORK-PROBLEM-ADDRESS-TRANSLATION-FAILURE:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-NETWORK-PROBLEM-ADDRESS-TRANSLATION-FAILURE:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-NETWORK-PROBLEM-NETWORK-RESOURCE-OUTAGE:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-NETWORK-PROBLEM-NETWORK-RESOURCE-OUTAGE:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-NETWORK-PROBLEM-NETWORK-FAILURE:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-NETWORK-PROBLEM-NETWORK-FAILURE:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-NETWORK-PROBLEM-INVALID-TELESERVICE-ID:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-NETWORK-PROBLEM-INVALID-TELESERVICE-ID:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-NETWORK-PROBLEM-OTHER:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-NETWORK-PROBLEM-OTHER:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TERMINAL-PROBLEM-NO-PAGE-RESPONSE:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TERMINAL-PROBLEM-NO-PAGE-RESPONSE:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TERMINAL-PROBLEM-DESTINATION-BUSY:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TERMINAL-PROBLEM-DESTINATION-BUSY:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TERMINAL-PROBLEM-NO-ACKNOWLEDGMENT:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TERMINAL-PROBLEM-NO-ACKNOWLEDGMENT:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TERMINAL-PROBLEM-DESTINATION-RESOURCE-SHORTAGE:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TERMINAL-PROBLEM-DESTINATION-RESOURCE-SHORTAGE:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TERMINAL-PROBLEM-SMS-DELIVERY-POSTPONED:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TERMINAL-PROBLEM-SMS-DELIVERY-POSTPONED:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TERMINAL-PROBLEM-DESTINATION-OUT-OF-SERVICE:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TERMINAL-PROBLEM-DESTINATION-OUT-OF-SERVICE:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TERMINAL-PROBLEM-DESTINATION-NO-LONGER-AT-THIS-ADDRESS:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TERMINAL-PROBLEM-DESTINATION-NO-LONGER-AT-THIS-ADDRESS:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TERMINAL-PROBLEM-OTHER:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TERMINAL-PROBLEM-OTHER:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-RADIO-INTERFACE-PROBLEM-RESOURCE-SHORTAGE:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-RADIO-INTERFACE-PROBLEM-RESOURCE-SHORTAGE:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-RADIO-INTERFACE-PROBLEM-INCOMPATIBILITY:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-RADIO-INTERFACE-PROBLEM-INCOMPATIBILITY:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-RADIO-INTERFACE-PROBLEM-OTHER:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-RADIO-INTERFACE-PROBLEM-OTHER:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-ENCODING:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-ENCODING:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-SMS-ORIGINATION-DENIED:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-SMS-ORIGINATION-DENIED:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-SMS-TERMINATION-DENIED:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-SMS-TERMINATION-DENIED:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-SUPPLEMENTARY-SERVICE-NOT-SUPPORTED:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-SUPPLEMENTARY-SERVICE-NOT-SUPPORTED:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-SMS-NOT-SUPPORTED:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-SMS-NOT-SUPPORTED:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-MISSING-EXPECTED-PARAMETER:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-MISSING-EXPECTED-PARAMETER:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-MISSING-MANDATORY-PARAMETER:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-MISSING-MANDATORY-PARAMETER:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-UNRECOGNIZED-PARAMETER-VALUE:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-UNRECOGNIZED-PARAMETER-VALUE:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-UNEXPECTED-PARAMETER-VALUE:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-UNEXPECTED-PARAMETER-VALUE:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-USER-DATA-SIZE-ERROR:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-USER-DATA-SIZE-ERROR:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-OTHER:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-GENERAL-PROBLEM-OTHER:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TEMPORARY-NETWORK-PROBLEM-ADDRESS-VACANT:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-NETWORK-PROBLEM-ADDRESS-VACANT:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TEMPORARY-NETWORK-PROBLEM-ADDRESS-TRANSLATION-FAILURE:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-NETWORK-PROBLEM-ADDRESS-TRANSLATION-FAILURE:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TEMPORARY-NETWORK-PROBLEM-NETWORK-RESOURCE-OUTAGE:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-NETWORK-PROBLEM-NETWORK-RESOURCE-OUTAGE:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TEMPORARY-NETWORK-PROBLEM-NETWORK-FAILURE:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-NETWORK-PROBLEM-NETWORK-FAILURE:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TEMPORARY-NETWORK-PROBLEM-INVALID-TELESERVICE-ID:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-NETWORK-PROBLEM-INVALID-TELESERVICE-ID:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TEMPORARY-NETWORK-PROBLEM-OTHER:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-NETWORK-PROBLEM-OTHER:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TEMPORARY-TERMINAL-PROBLEM-NO-PAGE-RESPONSE:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-TERMINAL-PROBLEM-NO-PAGE-RESPONSE:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TEMPORARY-TERMINAL-PROBLEM-DESTINATION-BUSY:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-TERMINAL-PROBLEM-DESTINATION-BUSY:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TEMPORARY-TERMINAL-PROBLEM-NO-ACKNOWLEDGMENT:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-TERMINAL-PROBLEM-NO-ACKNOWLEDGMENT:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TEMPORARY-TERMINAL-PROBLEM-DESTINATION-RESOURCE-SHORTAGE:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-TERMINAL-PROBLEM-DESTINATION-RESOURCE-SHORTAGE:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TEMPORARY-TERMINAL-PROBLEM-SMS-DELIVERY-POSTPONED:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-TERMINAL-PROBLEM-SMS-DELIVERY-POSTPONED:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TEMPORARY-TERMINAL-PROBLEM-DESTINATION-OUT-OF-SERVICE:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-TERMINAL-PROBLEM-DESTINATION-OUT-OF-SERVICE:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TEMPORARY-TERMINAL-PROBLEM-DESTINATION-NO-LONGER-AT-THIS-ADDRESS:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-TERMINAL-PROBLEM-DESTINATION-NO-LONGER-AT-THIS-ADDRESS:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TEMPORARY-TERMINAL-PROBLEM-OTHER:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-TERMINAL-PROBLEM-OTHER:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TEMPORARY-RADIO-INTERFACE-PROBLEM-RESOURCE-SHORTAGE:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-RADIO-INTERFACE-PROBLEM-RESOURCE-SHORTAGE:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TEMPORARY-RADIO-INTERFACE-PROBLEM-INCOMPATIBILITY:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-RADIO-INTERFACE-PROBLEM-INCOMPATIBILITY:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TEMPORARY-RADIO-INTERFACE-PROBLEM-OTHER:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-RADIO-INTERFACE-PROBLEM-OTHER:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-ENCODING:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-ENCODING:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-SMS-ORIGINATION-DENIED:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-SMS-ORIGINATION-DENIED:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-SMS-TERMINATION-DENIED:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-SMS-TERMINATION-DENIED:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-SUPPLEMENTARY-SERVICE-NOT-SUPPORTED:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-SUPPLEMENTARY-SERVICE-NOT-SUPPORTED:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-SMS-NOT-SUPPORTED:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-SMS-NOT-SUPPORTED:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-MISSING-EXPECTED-PARAMETER:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-MISSING-EXPECTED-PARAMETER:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-MISSING-MANDATORY-PARAMETER:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-MISSING-MANDATORY-PARAMETER:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-UNRECOGNIZED-PARAMETER-VALUE:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-UNRECOGNIZED-PARAMETER-VALUE:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-UNEXPECTED-PARAMETER-VALUE:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-UNEXPECTED-PARAMETER-VALUE:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-USER-DATA-SIZE-ERROR:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-USER-DATA-SIZE-ERROR:CAPS">
+<ANCHOR id="MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-OTHER:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-DELIVERY-STATE-TEMPORARY-GENERAL-PROBLEM-OTHER:CAPS">
<ANCHOR id="MMSmsStorage" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsStorage">
<ANCHOR id="MM-SMS-STORAGE-UNKNOWN:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-STORAGE-UNKNOWN:CAPS">
<ANCHOR id="MM-SMS-STORAGE-SM:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-STORAGE-SM:CAPS">
@@ -301,6 +402,54 @@
<ANCHOR id="MM-SMS-VALIDITY-TYPE-RELATIVE:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-VALIDITY-TYPE-RELATIVE:CAPS">
<ANCHOR id="MM-SMS-VALIDITY-TYPE-ABSOLUTE:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-VALIDITY-TYPE-ABSOLUTE:CAPS">
<ANCHOR id="MM-SMS-VALIDITY-TYPE-ENHANCED:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-VALIDITY-TYPE-ENHANCED:CAPS">
+<ANCHOR id="MMSmsCdmaTeleserviceId" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsCdmaTeleserviceId">
+<ANCHOR id="MM-SMS-CDMA-TELESERVICE-ID-UNKNOWN:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-TELESERVICE-ID-UNKNOWN:CAPS">
+<ANCHOR id="MM-SMS-CDMA-TELESERVICE-ID-CMT91:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-TELESERVICE-ID-CMT91:CAPS">
+<ANCHOR id="MM-SMS-CDMA-TELESERVICE-ID-WPT:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-TELESERVICE-ID-WPT:CAPS">
+<ANCHOR id="MM-SMS-CDMA-TELESERVICE-ID-WMT:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-TELESERVICE-ID-WMT:CAPS">
+<ANCHOR id="MM-SMS-CDMA-TELESERVICE-ID-VMN:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-TELESERVICE-ID-VMN:CAPS">
+<ANCHOR id="MM-SMS-CDMA-TELESERVICE-ID-WAP:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-TELESERVICE-ID-WAP:CAPS">
+<ANCHOR id="MM-SMS-CDMA-TELESERVICE-ID-WEMT:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-TELESERVICE-ID-WEMT:CAPS">
+<ANCHOR id="MM-SMS-CDMA-TELESERVICE-ID-SCPT:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-TELESERVICE-ID-SCPT:CAPS">
+<ANCHOR id="MM-SMS-CDMA-TELESERVICE-ID-CATPT:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-TELESERVICE-ID-CATPT:CAPS">
+<ANCHOR id="MMSmsCdmaServiceCategory" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsCdmaServiceCategory">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-UNKNOWN:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-UNKNOWN:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-EMERGENCY-BROADCAST:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-EMERGENCY-BROADCAST:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-ADMINISTRATIVE:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-ADMINISTRATIVE:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-MAINTENANCE:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-MAINTENANCE:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-GENERAL-NEWS-LOCAL:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-GENERAL-NEWS-LOCAL:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-GENERAL-NEWS-REGIONAL:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-GENERAL-NEWS-REGIONAL:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-GENERAL-NEWS-NATIONAL:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-GENERAL-NEWS-NATIONAL:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-GENERAL-NEWS-INTERNATIONAL:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-GENERAL-NEWS-INTERNATIONAL:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-BUSINESS-NEWS-LOCAL:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-BUSINESS-NEWS-LOCAL:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-BUSINESS-NEWS-REGIONAL:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-BUSINESS-NEWS-REGIONAL:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-BUSINESS-NEWS-NATIONAL:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-BUSINESS-NEWS-NATIONAL:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-BUSINESS-NEWS-INTERNATIONAL:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-BUSINESS-NEWS-INTERNATIONAL:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-SPORTS-NEWS-LOCAL:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-SPORTS-NEWS-LOCAL:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-SPORTS-NEWS-REGIONAL:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-SPORTS-NEWS-REGIONAL:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-SPORTS-NEWS-NATIONAL:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-SPORTS-NEWS-NATIONAL:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-SPORTS-NEWS-INTERNATIONAL:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-SPORTS-NEWS-INTERNATIONAL:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-ENTERTAINMENT-NEWS-LOCAL:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-ENTERTAINMENT-NEWS-LOCAL:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-ENTERTAINMENT-NEWS-REGIONAL:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-ENTERTAINMENT-NEWS-REGIONAL:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-ENTERTAINMENT-NEWS-NATIONAL:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-ENTERTAINMENT-NEWS-NATIONAL:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-ENTERTAINMENT-NEWS-INTERNATIONAL:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-ENTERTAINMENT-NEWS-INTERNATIONAL:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-LOCAL-WEATHER:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-LOCAL-WEATHER:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-TRAFFIC-REPORT:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-TRAFFIC-REPORT:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-FLIGHT-SCHEDULES:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-FLIGHT-SCHEDULES:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-RESTAURANTS:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-RESTAURANTS:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-LODGINGS:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-LODGINGS:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-RETAIL-DIRECTORY:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-RETAIL-DIRECTORY:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-ADVERTISEMENTS:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-ADVERTISEMENTS:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-STOCK-QUOTES:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-STOCK-QUOTES:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-EMPLOYMENT:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-EMPLOYMENT:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-HOSPITALS:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-HOSPITALS:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-TECHNOLOGY-NEWS:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-TECHNOLOGY-NEWS:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-MULTICATEGORY:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-MULTICATEGORY:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-CMAS-PRESIDENTIAL-ALERT:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-CMAS-PRESIDENTIAL-ALERT:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-CMAS-EXTREME-THREAT:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-CMAS-EXTREME-THREAT:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-CMAS-SEVERE-THREAT:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-CMAS-SEVERE-THREAT:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-CMAS-CHILD-ABDUCTION-EMERGENCY:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-CMAS-CHILD-ABDUCTION-EMERGENCY:CAPS">
+<ANCHOR id="MM-SMS-CDMA-SERVICE-CATEGORY-CMAS-TEST:CAPS" href="ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-CDMA-SERVICE-CATEGORY-CMAS-TEST:CAPS">
<ANCHOR id="ModemManager-Errors" href="ModemManager/ModemManager-Errors.html">
<ANCHOR id="ModemManager-Errors.synopsis" href="ModemManager/ModemManager-Errors.html#ModemManager-Errors.synopsis">
<ANCHOR id="ModemManager-Errors.description" href="ModemManager/ModemManager-Errors.html#ModemManager-Errors.description">
@@ -448,6 +597,7 @@
<ANCHOR id="gdbus-signal-org-freedesktop-ModemManager1-Modem.StateChanged" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-signal-org-freedesktop-ModemManager1-Modem.StateChanged">
<ANCHOR id="gdbus-properties-org.freedesktop.ModemManager1.Modem" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-properties-org.freedesktop.ModemManager1.Modem">
<ANCHOR id="gdbus-property-org-freedesktop-ModemManager1-Modem.Sim" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.Sim">
+<ANCHOR id="gdbus-property-org-freedesktop-ModemManager1-Modem.Bearers" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.Bearers">
<ANCHOR id="gdbus-property-org-freedesktop-ModemManager1-Modem.SupportedCapabilities" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.SupportedCapabilities">
<ANCHOR id="gdbus-property-org-freedesktop-ModemManager1-Modem.CurrentCapabilities" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.CurrentCapabilities">
<ANCHOR id="gdbus-property-org-freedesktop-ModemManager1-Modem.MaxBearers" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.MaxBearers">
@@ -492,6 +642,7 @@
<ANCHOR id="gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp.OperatorCode" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp.OperatorCode">
<ANCHOR id="gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp.OperatorName" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp.OperatorName">
<ANCHOR id="gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp.EnabledFacilityLocks" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp.EnabledFacilityLocks">
+<ANCHOR id="gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp.SubscriptionState" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp.SubscriptionState">
<ANCHOR id="gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html">
<ANCHOR id="gdbus-interface-org-freedesktop-ModemManager1-Modem-Modem3gpp-Ussd" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html#gdbus-interface-org-freedesktop-ModemManager1-Modem-Modem3gpp-Ussd">
<ANCHOR id="gdbus-methods-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html#gdbus-methods-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd">
@@ -527,6 +678,7 @@
<ANCHOR id="gdbus-signal-org-freedesktop-ModemManager1-Modem-Messaging.Added" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-signal-org-freedesktop-ModemManager1-Modem-Messaging.Added">
<ANCHOR id="gdbus-signal-org-freedesktop-ModemManager1-Modem-Messaging.Deleted" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-signal-org-freedesktop-ModemManager1-Modem-Messaging.Deleted">
<ANCHOR id="gdbus-properties-org.freedesktop.ModemManager1.Modem.Messaging" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-properties-org.freedesktop.ModemManager1.Modem.Messaging">
+<ANCHOR id="gdbus-property-org-freedesktop-ModemManager1-Modem-Messaging.Messages" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Messaging.Messages">
<ANCHOR id="gdbus-property-org-freedesktop-ModemManager1-Modem-Messaging.SupportedStorages" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Messaging.SupportedStorages">
<ANCHOR id="gdbus-property-org-freedesktop-ModemManager1-Modem-Messaging.DefaultStorage" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Messaging.DefaultStorage">
<ANCHOR id="gdbus-org.freedesktop.ModemManager1.Modem.Location" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Location.html">
@@ -552,6 +704,31 @@
<ANCHOR id="gdbus-methods-org.freedesktop.ModemManager1.Modem.Firmware" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Firmware.html#gdbus-methods-org.freedesktop.ModemManager1.Modem.Firmware">
<ANCHOR id="gdbus-method-org-freedesktop-ModemManager1-Modem-Firmware.List" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Firmware.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Firmware.List">
<ANCHOR id="gdbus-method-org-freedesktop-ModemManager1-Modem-Firmware.Select" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Firmware.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Firmware.Select">
+<ANCHOR id="gdbus-org.freedesktop.ModemManager1.Modem.Signal" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Signal.html">
+<ANCHOR id="gdbus-interface-org-freedesktop-ModemManager1-Modem-Signal" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Signal.html#gdbus-interface-org-freedesktop-ModemManager1-Modem-Signal">
+<ANCHOR id="gdbus-methods-org.freedesktop.ModemManager1.Modem.Signal" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Signal.html#gdbus-methods-org.freedesktop.ModemManager1.Modem.Signal">
+<ANCHOR id="gdbus-method-org-freedesktop-ModemManager1-Modem-Signal.Setup" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Signal.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Signal.Setup">
+<ANCHOR id="gdbus-properties-org.freedesktop.ModemManager1.Modem.Signal" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Signal.html#gdbus-properties-org.freedesktop.ModemManager1.Modem.Signal">
+<ANCHOR id="gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Rate" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Signal.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Rate">
+<ANCHOR id="gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Cdma" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Signal.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Cdma">
+<ANCHOR id="gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Evdo" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Signal.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Evdo">
+<ANCHOR id="gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Gsm" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Signal.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Gsm">
+<ANCHOR id="gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Umts" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Signal.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Umts">
+<ANCHOR id="gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Lte" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Signal.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Lte">
+<ANCHOR id="gdbus-org.freedesktop.ModemManager1.Modem.Oma" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Oma.html">
+<ANCHOR id="gdbus-interface-org-freedesktop-ModemManager1-Modem-Oma" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-interface-org-freedesktop-ModemManager1-Modem-Oma">
+<ANCHOR id="gdbus-methods-org.freedesktop.ModemManager1.Modem.Oma" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-methods-org.freedesktop.ModemManager1.Modem.Oma">
+<ANCHOR id="gdbus-method-org-freedesktop-ModemManager1-Modem-Oma.Setup" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Oma.Setup">
+<ANCHOR id="gdbus-method-org-freedesktop-ModemManager1-Modem-Oma.StartClientInitiatedSession" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Oma.StartClientInitiatedSession">
+<ANCHOR id="gdbus-method-org-freedesktop-ModemManager1-Modem-Oma.AcceptNetworkInitiatedSession" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Oma.AcceptNetworkInitiatedSession">
+<ANCHOR id="gdbus-method-org-freedesktop-ModemManager1-Modem-Oma.CancelSession" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Oma.CancelSession">
+<ANCHOR id="gdbus-signals-org.freedesktop.ModemManager1.Modem.Oma" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-signals-org.freedesktop.ModemManager1.Modem.Oma">
+<ANCHOR id="gdbus-signal-org-freedesktop-ModemManager1-Modem-Oma.SessionStateChanged" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-signal-org-freedesktop-ModemManager1-Modem-Oma.SessionStateChanged">
+<ANCHOR id="gdbus-properties-org.freedesktop.ModemManager1.Modem.Oma" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-properties-org.freedesktop.ModemManager1.Modem.Oma">
+<ANCHOR id="gdbus-property-org-freedesktop-ModemManager1-Modem-Oma.Features" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Oma.Features">
+<ANCHOR id="gdbus-property-org-freedesktop-ModemManager1-Modem-Oma.PendingNetworkInitiatedSessions" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Oma.PendingNetworkInitiatedSessions">
+<ANCHOR id="gdbus-property-org-freedesktop-ModemManager1-Modem-Oma.SessionType" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Oma.SessionType">
+<ANCHOR id="gdbus-property-org-freedesktop-ModemManager1-Modem-Oma.SessionState" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Oma.SessionState">
<ANCHOR id="gdbus-org.freedesktop.ModemManager1.Bearer" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Bearer.html">
<ANCHOR id="gdbus-interface-org-freedesktop-ModemManager1-Bearer" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Bearer.html#gdbus-interface-org-freedesktop-ModemManager1-Bearer">
<ANCHOR id="gdbus-methods-org.freedesktop.ModemManager1.Bearer" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Bearer.html#gdbus-methods-org.freedesktop.ModemManager1.Bearer">
@@ -591,6 +768,8 @@
<ANCHOR id="gdbus-property-org-freedesktop-ModemManager1-Sms.SMSC" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.SMSC">
<ANCHOR id="gdbus-property-org-freedesktop-ModemManager1-Sms.Validity" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.Validity">
<ANCHOR id="gdbus-property-org-freedesktop-ModemManager1-Sms.Class" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.Class">
+<ANCHOR id="gdbus-property-org-freedesktop-ModemManager1-Sms.TeleserviceId" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.TeleserviceId">
+<ANCHOR id="gdbus-property-org-freedesktop-ModemManager1-Sms.ServiceCategory" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.ServiceCategory">
<ANCHOR id="gdbus-property-org-freedesktop-ModemManager1-Sms.DeliveryReportRequest" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.DeliveryReportRequest">
<ANCHOR id="gdbus-property-org-freedesktop-ModemManager1-Sms.MessageReference" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.MessageReference">
<ANCHOR id="gdbus-property-org-freedesktop-ModemManager1-Sms.Timestamp" href="ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.Timestamp">
diff --git a/docs/reference/api/html/ix01.html b/docs/reference/api/html/ix01.html
index a41d6e6..3c9fa62 100644
--- a/docs/reference/api/html/ix01.html
+++ b/docs/reference/api/html/ix01.html
@@ -7,7 +7,7 @@
<link rel="home" href="index.html" title="ModemManager Reference Manual">
<link rel="up" href="index.html" title="ModemManager Reference Manual">
<link rel="prev" href="ch12s04.html" title="Simple connection">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,7 +20,7 @@
</tr></table>
<div class="index">
<div class="titlepage"><div><div><h1 class="title">
-<a name="idm211863868880"></a>Index</h1></div></div></div>
+<a name="id-1.6"></a>Index</h1></div></div></div>
<div class="index">
<div class="indexdiv">
<h3>B</h3>
@@ -132,8 +132,30 @@
</dt>
<dt>org.freedesktop.ModemManager1.Modem.Messaging:DefaultStorage, <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Messaging.DefaultStorage">The "DefaultStorage" property</a>
</dt>
+<dt>org.freedesktop.ModemManager1.Modem.Messaging:Messages, <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Messaging.Messages">The "Messages" property</a>
+</dt>
<dt>org.freedesktop.ModemManager1.Modem.Messaging:SupportedStorages, <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Messaging.SupportedStorages">The "SupportedStorages" property</a>
</dt>
+<dt>org.freedesktop.ModemManager1.Modem.Oma, <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-interface-org-freedesktop-ModemManager1-Modem-Oma.top_of_page">org.freedesktop.ModemManager1.Modem.Oma</a>
+</dt>
+<dt>org.freedesktop.ModemManager1.Modem.Oma.AcceptNetworkInitiatedSession(), <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Oma.AcceptNetworkInitiatedSession">The AcceptNetworkInitiatedSession() method</a>
+</dt>
+<dt>org.freedesktop.ModemManager1.Modem.Oma.CancelSession(), <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Oma.CancelSession">The CancelSession() method</a>
+</dt>
+<dt>org.freedesktop.ModemManager1.Modem.Oma.Setup(), <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Oma.Setup">The Setup() method</a>
+</dt>
+<dt>org.freedesktop.ModemManager1.Modem.Oma.StartClientInitiatedSession(), <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Oma.StartClientInitiatedSession">The StartClientInitiatedSession() method</a>
+</dt>
+<dt>org.freedesktop.ModemManager1.Modem.Oma::SessionStateChanged, <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-signal-org-freedesktop-ModemManager1-Modem-Oma.SessionStateChanged">The "SessionStateChanged" signal</a>
+</dt>
+<dt>org.freedesktop.ModemManager1.Modem.Oma:Features, <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Oma.Features">The "Features" property</a>
+</dt>
+<dt>org.freedesktop.ModemManager1.Modem.Oma:PendingNetworkInitiatedSessions, <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Oma.PendingNetworkInitiatedSessions">The "PendingNetworkInitiatedSessions" property</a>
+</dt>
+<dt>org.freedesktop.ModemManager1.Modem.Oma:SessionState, <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Oma.SessionState">The "SessionState" property</a>
+</dt>
+<dt>org.freedesktop.ModemManager1.Modem.Oma:SessionType, <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Oma.SessionType">The "SessionType" property</a>
+</dt>
<dt>org.freedesktop.ModemManager1.Modem.Reset(), <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.Reset">The Reset() method</a>
</dt>
<dt>org.freedesktop.ModemManager1.Modem.SetCurrentBands(), <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.SetCurrentBands">The SetCurrentBands() method</a>
@@ -144,6 +166,22 @@
</dt>
<dt>org.freedesktop.ModemManager1.Modem.SetPowerState(), <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.SetPowerState">The SetPowerState() method</a>
</dt>
+<dt>org.freedesktop.ModemManager1.Modem.Signal, <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Modem.Signal.html#gdbus-interface-org-freedesktop-ModemManager1-Modem-Signal.top_of_page">org.freedesktop.ModemManager1.Modem.Signal</a>
+</dt>
+<dt>org.freedesktop.ModemManager1.Modem.Signal.Setup(), <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Modem.Signal.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Signal.Setup">The Setup() method</a>
+</dt>
+<dt>org.freedesktop.ModemManager1.Modem.Signal:Cdma, <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Modem.Signal.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Cdma">The "Cdma" property</a>
+</dt>
+<dt>org.freedesktop.ModemManager1.Modem.Signal:Evdo, <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Modem.Signal.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Evdo">The "Evdo" property</a>
+</dt>
+<dt>org.freedesktop.ModemManager1.Modem.Signal:Gsm, <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Modem.Signal.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Gsm">The "Gsm" property</a>
+</dt>
+<dt>org.freedesktop.ModemManager1.Modem.Signal:Lte, <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Modem.Signal.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Lte">The "Lte" property</a>
+</dt>
+<dt>org.freedesktop.ModemManager1.Modem.Signal:Rate, <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Modem.Signal.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Rate">The "Rate" property</a>
+</dt>
+<dt>org.freedesktop.ModemManager1.Modem.Signal:Umts, <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Modem.Signal.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Signal.Umts">The "Umts" property</a>
+</dt>
<dt>org.freedesktop.ModemManager1.Modem.Simple, <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Modem.Simple.html#gdbus-interface-org-freedesktop-ModemManager1-Modem-Simple.top_of_page">org.freedesktop.ModemManager1.Modem.Simple</a>
</dt>
<dt>org.freedesktop.ModemManager1.Modem.Simple.Connect(), <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Modem.Simple.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Simple.Connect">The Connect() method</a>
@@ -176,12 +214,16 @@
</dt>
<dt>org.freedesktop.ModemManager1.Modem.Modem3gpp:RegistrationState, <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp.RegistrationState">The "RegistrationState" property</a>
</dt>
+<dt>org.freedesktop.ModemManager1.Modem.Modem3gpp:SubscriptionState, <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp.SubscriptionState">The "SubscriptionState" property</a>
+</dt>
<dt>MMModem3gppFacility, <a class="indexterm" href="ModemManager-Flags-and-Enumerations.html#MMModem3gppFacility">enum MMModem3gppFacility</a>
</dt>
<dt>MMModem3gppNetworkAvailability, <a class="indexterm" href="ModemManager-Flags-and-Enumerations.html#MMModem3gppNetworkAvailability">enum MMModem3gppNetworkAvailability</a>
</dt>
<dt>MMModem3gppRegistrationState, <a class="indexterm" href="ModemManager-Flags-and-Enumerations.html#MMModem3gppRegistrationState">enum MMModem3gppRegistrationState</a>
</dt>
+<dt>MMModem3gppSubscriptionState, <a class="indexterm" href="ModemManager-Flags-and-Enumerations.html#MMModem3gppSubscriptionState">enum MMModem3gppSubscriptionState</a>
+</dt>
<dt>org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd, <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html#gdbus-interface-org-freedesktop-ModemManager1-Modem-Modem3gpp-Ussd.top_of_page">org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd</a>
</dt>
<dt>org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.Cancel(), <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Modem3gpp-Ussd.Cancel">The Cancel() method</a>
@@ -202,6 +244,8 @@
</dt>
<dt>org.freedesktop.ModemManager1.Modem:AccessTechnologies, <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.AccessTechnologies">The "AccessTechnologies" property</a>
</dt>
+<dt>org.freedesktop.ModemManager1.Modem:Bearers, <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.Bearers">The "Bearers" property</a>
+</dt>
<dt>org.freedesktop.ModemManager1.Modem:CurrentBands, <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.CurrentBands">The "CurrentBands" property</a>
</dt>
<dt>org.freedesktop.ModemManager1.Modem:CurrentCapabilities, <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.CurrentCapabilities">The "CurrentCapabilities" property</a>
@@ -313,6 +357,14 @@
<div class="indexdiv">
<h3>O</h3>
<dl>
+<dt>MMOmaFeature, <a class="indexterm" href="ModemManager-Flags-and-Enumerations.html#MMOmaFeature">enum MMOmaFeature</a>
+</dt>
+<dt>MMOmaSessionState, <a class="indexterm" href="ModemManager-Flags-and-Enumerations.html#MMOmaSessionState">enum MMOmaSessionState</a>
+</dt>
+<dt>MMOmaSessionStateFailedReason, <a class="indexterm" href="ModemManager-Flags-and-Enumerations.html#MMOmaSessionStateFailedReason">enum MMOmaSessionStateFailedReason</a>
+</dt>
+<dt>MMOmaSessionType, <a class="indexterm" href="ModemManager-Flags-and-Enumerations.html#MMOmaSessionType">enum MMOmaSessionType</a>
+</dt>
<dt>org.freedesktop.ModemManager1, <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.html#gdbus-interface-org-freedesktop-ModemManager1.top_of_page">org.freedesktop.ModemManager1</a>
</dt>
<dt>org.freedesktop.ModemManager1.ScanDevices(), <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.html#gdbus-method-org-freedesktop-ModemManager1.ScanDevices">The ScanDevices() method</a>
@@ -366,18 +418,26 @@
</dt>
<dt>org.freedesktop.ModemManager1.Sms:PduType, <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.PduType">The "PduType" property</a>
</dt>
+<dt>org.freedesktop.ModemManager1.Sms:ServiceCategory, <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.ServiceCategory">The "ServiceCategory" property</a>
+</dt>
<dt>org.freedesktop.ModemManager1.Sms:SMSC, <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.SMSC">The "SMSC" property</a>
</dt>
<dt>org.freedesktop.ModemManager1.Sms:State, <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.State">The "State" property</a>
</dt>
<dt>org.freedesktop.ModemManager1.Sms:Storage, <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.Storage">The "Storage" property</a>
</dt>
+<dt>org.freedesktop.ModemManager1.Sms:TeleserviceId, <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.TeleserviceId">The "TeleserviceId" property</a>
+</dt>
<dt>org.freedesktop.ModemManager1.Sms:Text, <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.Text">The "Text" property</a>
</dt>
<dt>org.freedesktop.ModemManager1.Sms:Timestamp, <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.Timestamp">The "Timestamp" property</a>
</dt>
<dt>org.freedesktop.ModemManager1.Sms:Validity, <a class="indexterm" href="gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.Validity">The "Validity" property</a>
</dt>
+<dt>MMSmsCdmaServiceCategory, <a class="indexterm" href="ModemManager-Flags-and-Enumerations.html#MMSmsCdmaServiceCategory">enum MMSmsCdmaServiceCategory</a>
+</dt>
+<dt>MMSmsCdmaTeleserviceId, <a class="indexterm" href="ModemManager-Flags-and-Enumerations.html#MMSmsCdmaTeleserviceId">enum MMSmsCdmaTeleserviceId</a>
+</dt>
<dt>MMSmsDeliveryState, <a class="indexterm" href="ModemManager-Flags-and-Enumerations.html#MMSmsDeliveryState">enum MMSmsDeliveryState</a>
</dt>
<dt>MMSmsPduType, <a class="indexterm" href="ModemManager-Flags-and-Enumerations.html#MMSmsPduType">enum MMSmsPduType</a>
@@ -394,6 +454,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/ref-common-types.html b/docs/reference/api/html/ref-common-types.html
index d5b79a9..112d91e 100644
--- a/docs/reference/api/html/ref-common-types.html
+++ b/docs/reference/api/html/ref-common-types.html
@@ -8,7 +8,7 @@
<link rel="up" href="index.html" title="ModemManager Reference Manual">
<link rel="prev" href="ref-overview-plugin-specific-modems.html" title="Plugin-specific Modems">
<link rel="next" href="ModemManager-Version-checks.html" title="Version checks">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -39,6 +39,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/ref-dbus-bus-name.html b/docs/reference/api/html/ref-dbus-bus-name.html
index b288136..b97d69f 100644
--- a/docs/reference/api/html/ref-dbus-bus-name.html
+++ b/docs/reference/api/html/ref-dbus-bus-name.html
@@ -8,7 +8,7 @@
<link rel="up" href="ref-dbus.html" title="Part III. D-Bus Reference">
<link rel="prev" href="ref-dbus.html" title="Part III. D-Bus Reference">
<link rel="next" href="ref-dbus-standard-interfaces.html" title="Standard interfaces">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -33,6 +33,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/ref-dbus-object-bearer.html b/docs/reference/api/html/ref-dbus-object-bearer.html
index 4246389..8b52a5e 100644
--- a/docs/reference/api/html/ref-dbus-object-bearer.html
+++ b/docs/reference/api/html/ref-dbus-object-bearer.html
@@ -6,14 +6,14 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="ModemManager Reference Manual">
<link rel="up" href="ref-dbus.html" title="Part III. D-Bus Reference">
-<link rel="prev" href="gdbus-org.freedesktop.ModemManager1.Modem.Firmware.html" title="org.freedesktop.ModemManager1.Modem.Firmware">
+<link rel="prev" href="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html" title="org.freedesktop.ModemManager1.Modem.Oma">
<link rel="next" href="gdbus-org.freedesktop.ModemManager1.Bearer.html" title="org.freedesktop.ModemManager1.Bearer">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="gdbus-org.freedesktop.ModemManager1.Modem.Firmware.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="ref-dbus.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">ModemManager Reference Manual</th>
@@ -34,6 +34,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/ref-dbus-object-manager.html b/docs/reference/api/html/ref-dbus-object-manager.html
index f7e271d..41a22eb 100644
--- a/docs/reference/api/html/ref-dbus-object-manager.html
+++ b/docs/reference/api/html/ref-dbus-object-manager.html
@@ -8,7 +8,7 @@
<link rel="up" href="ref-dbus.html" title="Part III. D-Bus Reference">
<link rel="prev" href="ref-dbus-standard-interfaces-objectmanager.html" title="org.freedesktop.DBus.ObjectManager">
<link rel="next" href="gdbus-org.freedesktop.ModemManager1.html" title="org.freedesktop.ModemManager1">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -41,6 +41,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/ref-dbus-object-modem.html b/docs/reference/api/html/ref-dbus-object-modem.html
index abdb953..ca415ce 100644
--- a/docs/reference/api/html/ref-dbus-object-modem.html
+++ b/docs/reference/api/html/ref-dbus-object-modem.html
@@ -8,7 +8,7 @@
<link rel="up" href="ref-dbus.html" title="Part III. D-Bus Reference">
<link rel="prev" href="gdbus-org.freedesktop.ModemManager1.html" title="org.freedesktop.ModemManager1">
<link rel="next" href="gdbus-org.freedesktop.ModemManager1.Modem.html" title="org.freedesktop.ModemManager1.Modem">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -50,6 +50,12 @@
<dt>
<span class="refentrytitle"><a href="gdbus-org.freedesktop.ModemManager1.Modem.Firmware.html">org.freedesktop.ModemManager1.Modem.Firmware</a></span><span class="refpurpose"> — The ModemManager Firmware interface.</span>
</dt>
+<dt>
+<span class="refentrytitle"><a href="gdbus-org.freedesktop.ModemManager1.Modem.Signal.html">org.freedesktop.ModemManager1.Modem.Signal</a></span><span class="refpurpose"> — The ModemManager Signal interface.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html">org.freedesktop.ModemManager1.Modem.Oma</a></span><span class="refpurpose"> — The ModemManager Open Mobile Alliance interface.</span>
+</dt>
</dl></div>
<p>
Modem objects are exported in DBus with the following path base:
@@ -86,6 +92,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/ref-dbus-object-sim.html b/docs/reference/api/html/ref-dbus-object-sim.html
index b6c5f3b..01cb41c 100644
--- a/docs/reference/api/html/ref-dbus-object-sim.html
+++ b/docs/reference/api/html/ref-dbus-object-sim.html
@@ -8,7 +8,7 @@
<link rel="up" href="ref-dbus.html" title="Part III. D-Bus Reference">
<link rel="prev" href="gdbus-org.freedesktop.ModemManager1.Bearer.html" title="org.freedesktop.ModemManager1.Bearer">
<link rel="next" href="gdbus-org.freedesktop.ModemManager1.Sim.html" title="org.freedesktop.ModemManager1.Sim">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -34,6 +34,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/ref-dbus-object-sms.html b/docs/reference/api/html/ref-dbus-object-sms.html
index fc1b96c..7f61065 100644
--- a/docs/reference/api/html/ref-dbus-object-sms.html
+++ b/docs/reference/api/html/ref-dbus-object-sms.html
@@ -8,7 +8,7 @@
<link rel="up" href="ref-dbus.html" title="Part III. D-Bus Reference">
<link rel="prev" href="gdbus-org.freedesktop.ModemManager1.Sim.html" title="org.freedesktop.ModemManager1.Sim">
<link rel="next" href="gdbus-org.freedesktop.ModemManager1.Sms.html" title="org.freedesktop.ModemManager1.Sms">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -33,6 +33,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/ref-dbus-standard-interfaces-introspectables.html b/docs/reference/api/html/ref-dbus-standard-interfaces-introspectables.html
index 38dbe56..66cea59 100644
--- a/docs/reference/api/html/ref-dbus-standard-interfaces-introspectables.html
+++ b/docs/reference/api/html/ref-dbus-standard-interfaces-introspectables.html
@@ -8,7 +8,7 @@
<link rel="up" href="ref-dbus-standard-interfaces.html" title="Standard interfaces">
<link rel="prev" href="ref-dbus-standard-interfaces.html" title="Standard interfaces">
<link rel="next" href="ref-dbus-standard-interfaces-objectmanager.html" title="org.freedesktop.DBus.ObjectManager">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -38,6 +38,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/ref-dbus-standard-interfaces-objectmanager.html b/docs/reference/api/html/ref-dbus-standard-interfaces-objectmanager.html
index 6a2ad5c..ba4fc99 100644
--- a/docs/reference/api/html/ref-dbus-standard-interfaces-objectmanager.html
+++ b/docs/reference/api/html/ref-dbus-standard-interfaces-objectmanager.html
@@ -8,7 +8,7 @@
<link rel="up" href="ref-dbus-standard-interfaces.html" title="Standard interfaces">
<link rel="prev" href="ref-dbus-standard-interfaces-introspectables.html" title="org.freedesktop.DBus.Introspectable">
<link rel="next" href="ref-dbus-object-manager.html" title="The /org/freedesktop/ModemManager1 object">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -37,6 +37,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/ref-dbus-standard-interfaces.html b/docs/reference/api/html/ref-dbus-standard-interfaces.html
index e860bf0..ed176f5 100644
--- a/docs/reference/api/html/ref-dbus-standard-interfaces.html
+++ b/docs/reference/api/html/ref-dbus-standard-interfaces.html
@@ -8,7 +8,7 @@
<link rel="up" href="ref-dbus.html" title="Part III. D-Bus Reference">
<link rel="prev" href="ref-dbus-bus-name.html" title="The org.freedesktop.ModemManager1 bus name">
<link rel="next" href="ref-dbus-standard-interfaces-introspectables.html" title="org.freedesktop.DBus.Introspectable">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -54,6 +54,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/ref-dbus.html b/docs/reference/api/html/ref-dbus.html
index 530c078..aafd1a1 100644
--- a/docs/reference/api/html/ref-dbus.html
+++ b/docs/reference/api/html/ref-dbus.html
@@ -8,7 +8,7 @@
<link rel="up" href="index.html" title="ModemManager Reference Manual">
<link rel="prev" href="ModemManager-Errors.html" title="Errors">
<link rel="next" href="ref-dbus-bus-name.html" title="The org.freedesktop.ModemManager1 bus name">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -65,6 +65,12 @@
<dt>
<span class="refentrytitle"><a href="gdbus-org.freedesktop.ModemManager1.Modem.Firmware.html">org.freedesktop.ModemManager1.Modem.Firmware</a></span><span class="refpurpose"> — The ModemManager Firmware interface.</span>
</dt>
+<dt>
+<span class="refentrytitle"><a href="gdbus-org.freedesktop.ModemManager1.Modem.Signal.html">org.freedesktop.ModemManager1.Modem.Signal</a></span><span class="refpurpose"> — The ModemManager Signal interface.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gdbus-org.freedesktop.ModemManager1.Modem.Oma.html">org.freedesktop.ModemManager1.Modem.Oma</a></span><span class="refpurpose"> — The ModemManager Open Mobile Alliance interface.</span>
+</dt>
</dl></dd>
<dt><span class="chapter"><a href="ref-dbus-object-bearer.html">The <code class="literal">/org/freedesktop/ModemManager/Bearers</code> objects</a></span></dt>
<dd><dl><dt>
@@ -83,6 +89,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/ref-migrating.html b/docs/reference/api/html/ref-migrating.html
index 23ea8a1..2c4074a 100644
--- a/docs/reference/api/html/ref-migrating.html
+++ b/docs/reference/api/html/ref-migrating.html
@@ -8,7 +8,7 @@
<link rel="up" href="index.html" title="ModemManager Reference Manual">
<link rel="prev" href="gdbus-org.freedesktop.ModemManager1.Sms.html" title="org.freedesktop.ModemManager1.Sms">
<link rel="next" href="ch12.html" title="">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -39,7 +39,7 @@
<dl class="toc">
<dt><span class="chapter"><a href="ch12.html"></a></span></dt>
<dd><dl>
-<dt><span class="section"><a href="ch12.html#idm211850989168">Listing available modems</a></span></dt>
+<dt><span class="section"><a href="ch12.html#id-1.5.3.1">Listing available modems</a></span></dt>
<dt><span class="section"><a href="ch12s02.html">PIN unlocking</a></span></dt>
<dt><span class="section"><a href="ch12s03.html">Connection and disconnection</a></span></dt>
<dt><span class="section"><a href="ch12s04.html">Simple connection</a></span></dt>
@@ -50,6 +50,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/ref-overview-introduction.html b/docs/reference/api/html/ref-overview-introduction.html
index 8fbd86a..11fb19f 100644
--- a/docs/reference/api/html/ref-overview-introduction.html
+++ b/docs/reference/api/html/ref-overview-introduction.html
@@ -8,7 +8,7 @@
<link rel="up" href="ref-overview.html" title="Part I. ModemManager Overview">
<link rel="prev" href="ref-overview.html" title="Part I. ModemManager Overview">
<link rel="next" href="ref-overview-modem-detection-and-setup.html" title="Modem detection and setup">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -58,6 +58,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/ref-overview-modem-detection-and-setup.html b/docs/reference/api/html/ref-overview-modem-detection-and-setup.html
index a8a1dd9..6026847 100644
--- a/docs/reference/api/html/ref-overview-modem-detection-and-setup.html
+++ b/docs/reference/api/html/ref-overview-modem-detection-and-setup.html
@@ -8,7 +8,7 @@
<link rel="up" href="ref-overview.html" title="Part I. ModemManager Overview">
<link rel="prev" href="ref-overview-introduction.html" title="Introduction">
<link rel="next" href="ch02s02.html" title="Probing">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -23,19 +23,19 @@
<div class="titlepage"><div><div><h2 class="title">
<a name="ref-overview-modem-detection-and-setup"></a>Modem detection and setup</h2></div></div></div>
<div class="toc"><dl class="toc">
-<dt><span class="section"><a href="ref-overview-modem-detection-and-setup.html#idm211863910672">Detection mechanisms</a></span></dt>
+<dt><span class="section"><a href="ref-overview-modem-detection-and-setup.html#id-1.2.3.2">Detection mechanisms</a></span></dt>
<dt><span class="section"><a href="ch02s02.html">Probing</a></span></dt>
<dd><dl>
-<dt><span class="section"><a href="ch02s02.html#idm211863905456">Pre-probing filters</a></span></dt>
-<dt><span class="section"><a href="ch02s02.html#idm211854553632">Probing sequence</a></span></dt>
-<dt><span class="section"><a href="ch02s02.html#idm211864004288">Post-probing filters</a></span></dt>
-<dt><span class="section"><a href="ch02s02.html#idm211856775152">Probing setup examples</a></span></dt>
+<dt><span class="section"><a href="ch02s02.html#id-1.2.3.3.4">Pre-probing filters</a></span></dt>
+<dt><span class="section"><a href="ch02s02.html#id-1.2.3.3.5">Probing sequence</a></span></dt>
+<dt><span class="section"><a href="ch02s02.html#id-1.2.3.3.6">Post-probing filters</a></span></dt>
+<dt><span class="section"><a href="ch02s02.html#id-1.2.3.3.7">Probing setup examples</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="ch02s03.html">Port grabbing and Modem object creation</a></span></dt>
</dl></div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="idm211863910672"></a>Detection mechanisms</h2></div></div></div>
+<a name="id-1.2.3.2"></a>Detection mechanisms</h2></div></div></div>
<p>
ModemManager requires <span class="emphasis"><em>udev</em></span>-powered Linux kernels in order
to get notified of possible available Modems. udev will report each of the ports
@@ -53,6 +53,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/ref-overview-modem-state-machine.html b/docs/reference/api/html/ref-overview-modem-state-machine.html
index 10e87a1..58bb814 100644
--- a/docs/reference/api/html/ref-overview-modem-state-machine.html
+++ b/docs/reference/api/html/ref-overview-modem-state-machine.html
@@ -8,7 +8,7 @@
<link rel="up" href="ref-overview.html" title="Part I. ModemManager Overview">
<link rel="prev" href="ch02s03.html" title="Port grabbing and Modem object creation">
<link rel="next" href="ch03s02.html" title="Enabling">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -23,7 +23,7 @@
<div class="titlepage"><div><div><h2 class="title">
<a name="ref-overview-modem-state-machine"></a>Modem state machine</h2></div></div></div>
<div class="toc"><dl class="toc">
-<dt><span class="section"><a href="ref-overview-modem-state-machine.html#idm211856759264">Initialization</a></span></dt>
+<dt><span class="section"><a href="ref-overview-modem-state-machine.html#id-1.2.4.5">Initialization</a></span></dt>
<dt><span class="section"><a href="ch03s02.html">Enabling</a></span></dt>
<dt><span class="section"><a href="ch03s03.html">Connection &amp; disconnection</a></span></dt>
<dt><span class="section"><a href="ch03s04.html">Disabling</a></span></dt>
@@ -43,7 +43,7 @@
</p>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="idm211856759264"></a>Initialization</h2></div></div></div>
+<a name="id-1.2.4.5"></a>Initialization</h2></div></div></div>
<p>
The modem initialization sequence starts only when all ports
have been probed and grabbed by a given plugin. This is done so that the proper
@@ -121,6 +121,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/ref-overview-plugin-specific-modems.html b/docs/reference/api/html/ref-overview-plugin-specific-modems.html
index b1bba5f..0fa42b4 100644
--- a/docs/reference/api/html/ref-overview-plugin-specific-modems.html
+++ b/docs/reference/api/html/ref-overview-plugin-specific-modems.html
@@ -8,7 +8,7 @@
<link rel="up" href="ref-overview.html" title="Part I. ModemManager Overview">
<link rel="prev" href="ch03s04.html" title="Disabling">
<link rel="next" href="ref-common-types.html" title="Part II. Common types and definitions">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -71,6 +71,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/html/ref-overview.html b/docs/reference/api/html/ref-overview.html
index aaa56be..62aca48 100644
--- a/docs/reference/api/html/ref-overview.html
+++ b/docs/reference/api/html/ref-overview.html
@@ -8,7 +8,7 @@
<link rel="up" href="index.html" title="ModemManager Reference Manual">
<link rel="prev" href="index.html" title="ModemManager Reference Manual">
<link rel="next" href="ref-overview-introduction.html" title="Introduction">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -28,19 +28,19 @@
<dt><span class="chapter"><a href="ref-overview-introduction.html">Introduction</a></span></dt>
<dt><span class="chapter"><a href="ref-overview-modem-detection-and-setup.html">Modem detection and setup</a></span></dt>
<dd><dl>
-<dt><span class="section"><a href="ref-overview-modem-detection-and-setup.html#idm211863910672">Detection mechanisms</a></span></dt>
+<dt><span class="section"><a href="ref-overview-modem-detection-and-setup.html#id-1.2.3.2">Detection mechanisms</a></span></dt>
<dt><span class="section"><a href="ch02s02.html">Probing</a></span></dt>
<dd><dl>
-<dt><span class="section"><a href="ch02s02.html#idm211863905456">Pre-probing filters</a></span></dt>
-<dt><span class="section"><a href="ch02s02.html#idm211854553632">Probing sequence</a></span></dt>
-<dt><span class="section"><a href="ch02s02.html#idm211864004288">Post-probing filters</a></span></dt>
-<dt><span class="section"><a href="ch02s02.html#idm211856775152">Probing setup examples</a></span></dt>
+<dt><span class="section"><a href="ch02s02.html#id-1.2.3.3.4">Pre-probing filters</a></span></dt>
+<dt><span class="section"><a href="ch02s02.html#id-1.2.3.3.5">Probing sequence</a></span></dt>
+<dt><span class="section"><a href="ch02s02.html#id-1.2.3.3.6">Post-probing filters</a></span></dt>
+<dt><span class="section"><a href="ch02s02.html#id-1.2.3.3.7">Probing setup examples</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="ch02s03.html">Port grabbing and Modem object creation</a></span></dt>
</dl></dd>
<dt><span class="chapter"><a href="ref-overview-modem-state-machine.html">Modem state machine</a></span></dt>
<dd><dl>
-<dt><span class="section"><a href="ref-overview-modem-state-machine.html#idm211856759264">Initialization</a></span></dt>
+<dt><span class="section"><a href="ref-overview-modem-state-machine.html#id-1.2.4.5">Initialization</a></span></dt>
<dt><span class="section"><a href="ch03s02.html">Enabling</a></span></dt>
<dt><span class="section"><a href="ch03s03.html">Connection &amp; disconnection</a></span></dt>
<dt><span class="section"><a href="ch03s04.html">Disabling</a></span></dt>
@@ -51,6 +51,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/api/tmpl/mm-enums.sgml b/docs/reference/api/tmpl/mm-enums.sgml
index 8cbe3b1..1db94d5 100644
--- a/docs/reference/api/tmpl/mm-enums.sgml
+++ b/docs/reference/api/tmpl/mm-enums.sgml
@@ -90,6 +90,16 @@ Flags and Enumerations
@MM_MODEM_3GPP_NETWORK_AVAILABILITY_CURRENT:
@MM_MODEM_3GPP_NETWORK_AVAILABILITY_FORBIDDEN:
+<!-- ##### ENUM MMModem3gppSubscriptionState ##### -->
+<para>
+
+</para>
+
+@MM_MODEM_3GPP_SUBSCRIPTION_STATE_UNKNOWN:
+@MM_MODEM_3GPP_SUBSCRIPTION_STATE_UNPROVISIONED:
+@MM_MODEM_3GPP_SUBSCRIPTION_STATE_PROVISIONED:
+@MM_MODEM_3GPP_SUBSCRIPTION_STATE_OUT_OF_DATA:
+
<!-- ##### ENUM MMModem3gppRegistrationState ##### -->
<para>
@@ -376,6 +386,60 @@ Flags and Enumerations
@MM_MODEM_PORT_TYPE_QMI:
@MM_MODEM_PORT_TYPE_MBIM:
+<!-- ##### ENUM MMOmaFeature ##### -->
+<para>
+
+</para>
+
+@MM_OMA_FEATURE_NONE:
+@MM_OMA_FEATURE_DEVICE_PROVISIONING:
+@MM_OMA_FEATURE_PRL_UPDATE:
+@MM_OMA_FEATURE_HANDS_FREE_ACTIVATION:
+
+<!-- ##### ENUM MMOmaSessionState ##### -->
+<para>
+
+</para>
+
+@MM_OMA_SESSION_STATE_FAILED:
+@MM_OMA_SESSION_STATE_UNKNOWN:
+@MM_OMA_SESSION_STATE_STARTED:
+@MM_OMA_SESSION_STATE_RETRYING:
+@MM_OMA_SESSION_STATE_CONNECTING:
+@MM_OMA_SESSION_STATE_CONNECTED:
+@MM_OMA_SESSION_STATE_AUTHENTICATED:
+@MM_OMA_SESSION_STATE_MDN_DOWNLOADED:
+@MM_OMA_SESSION_STATE_MSID_DOWNLOADED:
+@MM_OMA_SESSION_STATE_PRL_DOWNLOADED:
+@MM_OMA_SESSION_STATE_MIP_PROFILE_DOWNLOADED:
+@MM_OMA_SESSION_STATE_COMPLETED:
+
+<!-- ##### ENUM MMOmaSessionStateFailedReason ##### -->
+<para>
+
+</para>
+
+@MM_OMA_SESSION_STATE_FAILED_REASON_UNKNOWN:
+@MM_OMA_SESSION_STATE_FAILED_REASON_NETWORK_UNAVAILABLE:
+@MM_OMA_SESSION_STATE_FAILED_REASON_SERVER_UNAVAILABLE:
+@MM_OMA_SESSION_STATE_FAILED_REASON_AUTHENTICATION_FAILED:
+@MM_OMA_SESSION_STATE_FAILED_REASON_MAX_RETRY_EXCEEDED:
+@MM_OMA_SESSION_STATE_FAILED_REASON_SESSION_CANCELLED:
+
+<!-- ##### ENUM MMOmaSessionType ##### -->
+<para>
+
+</para>
+
+@MM_OMA_SESSION_TYPE_UNKNOWN:
+@MM_OMA_SESSION_TYPE_CLIENT_INITIATED_DEVICE_CONFIGURE:
+@MM_OMA_SESSION_TYPE_CLIENT_INITIATED_PRL_UPDATE:
+@MM_OMA_SESSION_TYPE_CLIENT_INITIATED_HANDS_FREE_ACTIVATION:
+@MM_OMA_SESSION_TYPE_NETWORK_INITIATED_DEVICE_CONFIGURE:
+@MM_OMA_SESSION_TYPE_NETWORK_INITIATED_PRL_UPDATE:
+@MM_OMA_SESSION_TYPE_DEVICE_INITIATED_PRL_UPDATE:
+@MM_OMA_SESSION_TYPE_DEVICE_INITIATED_HANDS_FREE_ACTIVATION:
+
<!-- ##### ENUM MMSmsPduType ##### -->
<para>
@@ -385,6 +449,12 @@ Flags and Enumerations
@MM_SMS_PDU_TYPE_DELIVER:
@MM_SMS_PDU_TYPE_SUBMIT:
@MM_SMS_PDU_TYPE_STATUS_REPORT:
+@MM_SMS_PDU_TYPE_CDMA_DELIVER:
+@MM_SMS_PDU_TYPE_CDMA_SUBMIT:
+@MM_SMS_PDU_TYPE_CDMA_CANCELLATION:
+@MM_SMS_PDU_TYPE_CDMA_DELIVERY_ACKNOWLEDGEMENT:
+@MM_SMS_PDU_TYPE_CDMA_USER_ACKNOWLEDGEMENT:
+@MM_SMS_PDU_TYPE_CDMA_READ_ACKNOWLEDGEMENT:
<!-- ##### ENUM MMSmsState ##### -->
<para>
@@ -429,6 +499,62 @@ Flags and Enumerations
@MM_SMS_DELIVERY_STATE_TEMPORARY_FATAL_ERROR_QOS_NOT_AVAILABLE:
@MM_SMS_DELIVERY_STATE_TEMPORARY_FATAL_ERROR_IN_SME:
@MM_SMS_DELIVERY_STATE_UNKNOWN:
+@MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_ADDRESS_VACANT:
+@MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_ADDRESS_TRANSLATION_FAILURE:
+@MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_NETWORK_RESOURCE_OUTAGE:
+@MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_NETWORK_FAILURE:
+@MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_INVALID_TELESERVICE_ID:
+@MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_OTHER:
+@MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_NO_PAGE_RESPONSE:
+@MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_DESTINATION_BUSY:
+@MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_NO_ACKNOWLEDGMENT:
+@MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_DESTINATION_RESOURCE_SHORTAGE:
+@MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_SMS_DELIVERY_POSTPONED:
+@MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_DESTINATION_OUT_OF_SERVICE:
+@MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_DESTINATION_NO_LONGER_AT_THIS_ADDRESS:
+@MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_OTHER:
+@MM_SMS_DELIVERY_STATE_RADIO_INTERFACE_PROBLEM_RESOURCE_SHORTAGE:
+@MM_SMS_DELIVERY_STATE_RADIO_INTERFACE_PROBLEM_INCOMPATIBILITY:
+@MM_SMS_DELIVERY_STATE_RADIO_INTERFACE_PROBLEM_OTHER:
+@MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_ENCODING:
+@MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_SMS_ORIGINATION_DENIED:
+@MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_SMS_TERMINATION_DENIED:
+@MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_SUPPLEMENTARY_SERVICE_NOT_SUPPORTED:
+@MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_SMS_NOT_SUPPORTED:
+@MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_MISSING_EXPECTED_PARAMETER:
+@MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_MISSING_MANDATORY_PARAMETER:
+@MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_UNRECOGNIZED_PARAMETER_VALUE:
+@MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_UNEXPECTED_PARAMETER_VALUE:
+@MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_USER_DATA_SIZE_ERROR:
+@MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_OTHER:
+@MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_ADDRESS_VACANT:
+@MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_ADDRESS_TRANSLATION_FAILURE:
+@MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_NETWORK_RESOURCE_OUTAGE:
+@MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_NETWORK_FAILURE:
+@MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_INVALID_TELESERVICE_ID:
+@MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_OTHER:
+@MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_NO_PAGE_RESPONSE:
+@MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_DESTINATION_BUSY:
+@MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_NO_ACKNOWLEDGMENT:
+@MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_DESTINATION_RESOURCE_SHORTAGE:
+@MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_SMS_DELIVERY_POSTPONED:
+@MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_DESTINATION_OUT_OF_SERVICE:
+@MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_DESTINATION_NO_LONGER_AT_THIS_ADDRESS:
+@MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_OTHER:
+@MM_SMS_DELIVERY_STATE_TEMPORARY_RADIO_INTERFACE_PROBLEM_RESOURCE_SHORTAGE:
+@MM_SMS_DELIVERY_STATE_TEMPORARY_RADIO_INTERFACE_PROBLEM_INCOMPATIBILITY:
+@MM_SMS_DELIVERY_STATE_TEMPORARY_RADIO_INTERFACE_PROBLEM_OTHER:
+@MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_ENCODING:
+@MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_SMS_ORIGINATION_DENIED:
+@MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_SMS_TERMINATION_DENIED:
+@MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_SUPPLEMENTARY_SERVICE_NOT_SUPPORTED:
+@MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_SMS_NOT_SUPPORTED:
+@MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_MISSING_EXPECTED_PARAMETER:
+@MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_MISSING_MANDATORY_PARAMETER:
+@MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_UNRECOGNIZED_PARAMETER_VALUE:
+@MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_UNEXPECTED_PARAMETER_VALUE:
+@MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_USER_DATA_SIZE_ERROR:
+@MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_OTHER:
<!-- ##### ENUM MMSmsStorage ##### -->
<para>
@@ -453,3 +579,61 @@ Flags and Enumerations
@MM_SMS_VALIDITY_TYPE_ABSOLUTE:
@MM_SMS_VALIDITY_TYPE_ENHANCED:
+<!-- ##### ENUM MMSmsCdmaTeleserviceId ##### -->
+<para>
+
+</para>
+
+@MM_SMS_CDMA_TELESERVICE_ID_UNKNOWN:
+@MM_SMS_CDMA_TELESERVICE_ID_CMT91:
+@MM_SMS_CDMA_TELESERVICE_ID_WPT:
+@MM_SMS_CDMA_TELESERVICE_ID_WMT:
+@MM_SMS_CDMA_TELESERVICE_ID_VMN:
+@MM_SMS_CDMA_TELESERVICE_ID_WAP:
+@MM_SMS_CDMA_TELESERVICE_ID_WEMT:
+@MM_SMS_CDMA_TELESERVICE_ID_SCPT:
+@MM_SMS_CDMA_TELESERVICE_ID_CATPT:
+
+<!-- ##### ENUM MMSmsCdmaServiceCategory ##### -->
+<para>
+
+</para>
+
+@MM_SMS_CDMA_SERVICE_CATEGORY_UNKNOWN:
+@MM_SMS_CDMA_SERVICE_CATEGORY_EMERGENCY_BROADCAST:
+@MM_SMS_CDMA_SERVICE_CATEGORY_ADMINISTRATIVE:
+@MM_SMS_CDMA_SERVICE_CATEGORY_MAINTENANCE:
+@MM_SMS_CDMA_SERVICE_CATEGORY_GENERAL_NEWS_LOCAL:
+@MM_SMS_CDMA_SERVICE_CATEGORY_GENERAL_NEWS_REGIONAL:
+@MM_SMS_CDMA_SERVICE_CATEGORY_GENERAL_NEWS_NATIONAL:
+@MM_SMS_CDMA_SERVICE_CATEGORY_GENERAL_NEWS_INTERNATIONAL:
+@MM_SMS_CDMA_SERVICE_CATEGORY_BUSINESS_NEWS_LOCAL:
+@MM_SMS_CDMA_SERVICE_CATEGORY_BUSINESS_NEWS_REGIONAL:
+@MM_SMS_CDMA_SERVICE_CATEGORY_BUSINESS_NEWS_NATIONAL:
+@MM_SMS_CDMA_SERVICE_CATEGORY_BUSINESS_NEWS_INTERNATIONAL:
+@MM_SMS_CDMA_SERVICE_CATEGORY_SPORTS_NEWS_LOCAL:
+@MM_SMS_CDMA_SERVICE_CATEGORY_SPORTS_NEWS_REGIONAL:
+@MM_SMS_CDMA_SERVICE_CATEGORY_SPORTS_NEWS_NATIONAL:
+@MM_SMS_CDMA_SERVICE_CATEGORY_SPORTS_NEWS_INTERNATIONAL:
+@MM_SMS_CDMA_SERVICE_CATEGORY_ENTERTAINMENT_NEWS_LOCAL:
+@MM_SMS_CDMA_SERVICE_CATEGORY_ENTERTAINMENT_NEWS_REGIONAL:
+@MM_SMS_CDMA_SERVICE_CATEGORY_ENTERTAINMENT_NEWS_NATIONAL:
+@MM_SMS_CDMA_SERVICE_CATEGORY_ENTERTAINMENT_NEWS_INTERNATIONAL:
+@MM_SMS_CDMA_SERVICE_CATEGORY_LOCAL_WEATHER:
+@MM_SMS_CDMA_SERVICE_CATEGORY_TRAFFIC_REPORT:
+@MM_SMS_CDMA_SERVICE_CATEGORY_FLIGHT_SCHEDULES:
+@MM_SMS_CDMA_SERVICE_CATEGORY_RESTAURANTS:
+@MM_SMS_CDMA_SERVICE_CATEGORY_LODGINGS:
+@MM_SMS_CDMA_SERVICE_CATEGORY_RETAIL_DIRECTORY:
+@MM_SMS_CDMA_SERVICE_CATEGORY_ADVERTISEMENTS:
+@MM_SMS_CDMA_SERVICE_CATEGORY_STOCK_QUOTES:
+@MM_SMS_CDMA_SERVICE_CATEGORY_EMPLOYMENT:
+@MM_SMS_CDMA_SERVICE_CATEGORY_HOSPITALS:
+@MM_SMS_CDMA_SERVICE_CATEGORY_TECHNOLOGY_NEWS:
+@MM_SMS_CDMA_SERVICE_CATEGORY_MULTICATEGORY:
+@MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_PRESIDENTIAL_ALERT:
+@MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_EXTREME_THREAT:
+@MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_SEVERE_THREAT:
+@MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_CHILD_ABDUCTION_EMERGENCY:
+@MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_TEST:
+
diff --git a/docs/reference/libmm-glib/Makefile.in b/docs/reference/libmm-glib/Makefile.in
index 53330bb..db598a7 100644
--- a/docs/reference/libmm-glib/Makefile.in
+++ b/docs/reference/libmm-glib/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -90,12 +90,13 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \
$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
- $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
- $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/introspection.m4 \
+ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
@@ -182,6 +183,14 @@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
@@ -248,6 +257,9 @@ STRIP = @STRIP@
SYSTEMD_UNIT_DIR = @SYSTEMD_UNIT_DIR@
UDEV_BASE_DIR = @UDEV_BASE_DIR@
USE_NLS = @USE_NLS@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
@@ -438,6 +450,42 @@ content_files = \
@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_PDF_FALSE@PDF_BUILD_STAMP =
@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_PDF_TRUE@PDF_BUILD_STAMP = pdf-build.stamp
+#### setup ####
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_SETUP = $(GTK_DOC_V_SETUP_$(V))
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_SETUP_ = $(GTK_DOC_V_SETUP_$(AM_DEFAULT_VERBOSITY))
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_SETUP_0 = @echo " DOC Preparing build";
+
+#### scan ####
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_SCAN = $(GTK_DOC_V_SCAN_$(V))
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_SCAN_ = $(GTK_DOC_V_SCAN_$(AM_DEFAULT_VERBOSITY))
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_SCAN_0 = @echo " DOC Scanning header files";
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_INTROSPECT = $(GTK_DOC_V_INTROSPECT_$(V))
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_INTROSPECT_ = $(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY))
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_INTROSPECT_0 = @echo " DOC Introspecting gobjects";
+
+#### templates ####
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_TMPL = $(GTK_DOC_V_TMPL_$(V))
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_TMPL_ = $(GTK_DOC_V_TMPL_$(AM_DEFAULT_VERBOSITY))
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_TMPL_0 = @echo " DOC Rebuilding template files";
+
+#### xml ####
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_XML = $(GTK_DOC_V_XML_$(V))
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_XML_ = $(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY))
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_XML_0 = @echo " DOC Building XML";
+
+#### html ####
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_HTML = $(GTK_DOC_V_HTML_$(V))
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_HTML_ = $(GTK_DOC_V_HTML_$(AM_DEFAULT_VERBOSITY))
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_HTML_0 = @echo " DOC Building HTML";
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_XREF = $(GTK_DOC_V_XREF_$(V))
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_XREF_ = $(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY))
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_XREF_0 = @echo " DOC Fixing cross-references";
+
+#### pdf ####
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_PDF = $(GTK_DOC_V_PDF_$(V))
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_PDF_ = $(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY))
+@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_PDF_0 = @echo " DOC Building PDF";
+
# PNGs are removed only in maintainer-clean
# Logos are copied to current directory by gtk-doc
DISTCLEANFILES = \
@@ -563,11 +611,11 @@ distclean-generic:
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
-@ENABLE_GTK_DOC_FALSE@uninstall-local:
-@ENABLE_GTK_DOC_FALSE@distclean-local:
-@ENABLE_GTK_DOC_FALSE@install-data-local:
@ENABLE_GTK_DOC_FALSE@maintainer-clean-local:
+@ENABLE_GTK_DOC_FALSE@distclean-local:
@ENABLE_GTK_DOC_FALSE@clean-local:
+@ENABLE_GTK_DOC_FALSE@uninstall-local:
+@ENABLE_GTK_DOC_FALSE@install-data-local:
clean: clean-am
clean-am: clean-generic clean-libtool clean-local mostlyclean-am
@@ -659,35 +707,28 @@ uninstall-am: uninstall-local
@ENABLE_GTK_DOC_TRUE@$(REPORT_FILES): sgml-build.stamp
-#### setup ####
-
@ENABLE_GTK_DOC_TRUE@setup-build.stamp:
-@ENABLE_GTK_DOC_TRUE@ -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
-@ENABLE_GTK_DOC_TRUE@ echo ' DOC Preparing build'; \
+@ENABLE_GTK_DOC_TRUE@ -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
@ENABLE_GTK_DOC_TRUE@ files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \
@ENABLE_GTK_DOC_TRUE@ if test "x$$files" != "x" ; then \
@ENABLE_GTK_DOC_TRUE@ for file in $$files ; do \
@ENABLE_GTK_DOC_TRUE@ test -f $(abs_srcdir)/$$file && \
-@ENABLE_GTK_DOC_TRUE@ cp -pu $(abs_srcdir)/$$file $(abs_builddir)/ || true; \
+@ENABLE_GTK_DOC_TRUE@ cp -pu $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \
@ENABLE_GTK_DOC_TRUE@ done; \
@ENABLE_GTK_DOC_TRUE@ fi; \
@ENABLE_GTK_DOC_TRUE@ test -d $(abs_srcdir)/tmpl && \
@ENABLE_GTK_DOC_TRUE@ { cp -rp $(abs_srcdir)/tmpl $(abs_builddir)/; \
@ENABLE_GTK_DOC_TRUE@ chmod -R u+w $(abs_builddir)/tmpl; } \
@ENABLE_GTK_DOC_TRUE@ fi
-@ENABLE_GTK_DOC_TRUE@ @touch setup-build.stamp
-
-#### scan ####
+@ENABLE_GTK_DOC_TRUE@ $(AM_V_at)touch setup-build.stamp
@ENABLE_GTK_DOC_TRUE@scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
-@ENABLE_GTK_DOC_TRUE@ @echo ' DOC Scanning header files'
-@ENABLE_GTK_DOC_TRUE@ @_source_dir='' ; \
+@ENABLE_GTK_DOC_TRUE@ $(GTK_DOC_V_SCAN)_source_dir='' ; \
@ENABLE_GTK_DOC_TRUE@ for i in $(DOC_SOURCE_DIR) ; do \
@ENABLE_GTK_DOC_TRUE@ _source_dir="$${_source_dir} --source-dir=$$i" ; \
@ENABLE_GTK_DOC_TRUE@ done ; \
@ENABLE_GTK_DOC_TRUE@ gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)
-@ENABLE_GTK_DOC_TRUE@ @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
-@ENABLE_GTK_DOC_TRUE@ echo " DOC Introspecting gobjects"; \
+@ENABLE_GTK_DOC_TRUE@ $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
@ENABLE_GTK_DOC_TRUE@ scanobj_options=""; \
@ENABLE_GTK_DOC_TRUE@ gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \
@ENABLE_GTK_DOC_TRUE@ if test "$(?)" = "0"; then \
@@ -702,22 +743,19 @@ uninstall-am: uninstall-local
@ENABLE_GTK_DOC_TRUE@ test -f $$i || touch $$i ; \
@ENABLE_GTK_DOC_TRUE@ done \
@ENABLE_GTK_DOC_TRUE@ fi
-@ENABLE_GTK_DOC_TRUE@ @touch scan-build.stamp
+@ENABLE_GTK_DOC_TRUE@ $(AM_V_at)touch scan-build.stamp
@ENABLE_GTK_DOC_TRUE@$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp
@ENABLE_GTK_DOC_TRUE@ @true
-#### templates ####
-
@ENABLE_GTK_DOC_TRUE@tmpl-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
-@ENABLE_GTK_DOC_TRUE@ @echo ' DOC Rebuilding template files'
-@ENABLE_GTK_DOC_TRUE@ @gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS)
-@ENABLE_GTK_DOC_TRUE@ @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
+@ENABLE_GTK_DOC_TRUE@ $(GTK_DOC_V_TMPL)gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS)
+@ENABLE_GTK_DOC_TRUE@ $(AM_V_at)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
@ENABLE_GTK_DOC_TRUE@ if test -w $(abs_srcdir) ; then \
@ENABLE_GTK_DOC_TRUE@ cp -rp $(abs_builddir)/tmpl $(abs_srcdir)/; \
@ENABLE_GTK_DOC_TRUE@ fi \
@ENABLE_GTK_DOC_TRUE@ fi
-@ENABLE_GTK_DOC_TRUE@ @touch tmpl-build.stamp
+@ENABLE_GTK_DOC_TRUE@ $(AM_V_at)touch tmpl-build.stamp
@ENABLE_GTK_DOC_TRUE@tmpl.stamp: tmpl-build.stamp
@ENABLE_GTK_DOC_TRUE@ @true
@@ -725,28 +763,20 @@ uninstall-am: uninstall-local
@ENABLE_GTK_DOC_TRUE@$(srcdir)/tmpl/*.sgml:
@ENABLE_GTK_DOC_TRUE@ @true
-#### xml ####
-
@ENABLE_GTK_DOC_TRUE@sgml-build.stamp: tmpl.stamp $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files)
-@ENABLE_GTK_DOC_TRUE@ @echo ' DOC Building XML'
-@ENABLE_GTK_DOC_TRUE@ @-chmod -R u+w $(srcdir)
-@ENABLE_GTK_DOC_TRUE@ @_source_dir='' ; \
+@ENABLE_GTK_DOC_TRUE@ $(GTK_DOC_V_XML)-chmod -R u+w $(srcdir) && _source_dir='' ; \
@ENABLE_GTK_DOC_TRUE@ for i in $(DOC_SOURCE_DIR) ; do \
@ENABLE_GTK_DOC_TRUE@ _source_dir="$${_source_dir} --source-dir=$$i" ; \
@ENABLE_GTK_DOC_TRUE@ done ; \
@ENABLE_GTK_DOC_TRUE@ gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS)
-@ENABLE_GTK_DOC_TRUE@ @touch sgml-build.stamp
+@ENABLE_GTK_DOC_TRUE@ $(AM_V_at)touch sgml-build.stamp
@ENABLE_GTK_DOC_TRUE@sgml.stamp: sgml-build.stamp
@ENABLE_GTK_DOC_TRUE@ @true
-#### html ####
-
@ENABLE_GTK_DOC_TRUE@html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
-@ENABLE_GTK_DOC_TRUE@ @echo ' DOC Building HTML'
-@ENABLE_GTK_DOC_TRUE@ @rm -rf html
-@ENABLE_GTK_DOC_TRUE@ @mkdir html
-@ENABLE_GTK_DOC_TRUE@ @mkhtml_options=""; \
+@ENABLE_GTK_DOC_TRUE@ $(GTK_DOC_V_HTML)rm -rf html && mkdir html && \
+@ENABLE_GTK_DOC_TRUE@ mkhtml_options=""; \
@ENABLE_GTK_DOC_TRUE@ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \
@ENABLE_GTK_DOC_TRUE@ if test "$(?)" = "0"; then \
@ENABLE_GTK_DOC_TRUE@ if test "x$(V)" = "x1"; then \
@@ -767,16 +797,12 @@ uninstall-am: uninstall-local
@ENABLE_GTK_DOC_TRUE@ cp $(abs_builddir)/$$file $(abs_builddir)/html; \
@ENABLE_GTK_DOC_TRUE@ fi; \
@ENABLE_GTK_DOC_TRUE@ done;
-@ENABLE_GTK_DOC_TRUE@ @echo ' DOC Fixing cross-references'
-@ENABLE_GTK_DOC_TRUE@ @gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
-@ENABLE_GTK_DOC_TRUE@ @touch html-build.stamp
-
-#### pdf ####
+@ENABLE_GTK_DOC_TRUE@ $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
+@ENABLE_GTK_DOC_TRUE@ $(AM_V_at)touch html-build.stamp
@ENABLE_GTK_DOC_TRUE@pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
-@ENABLE_GTK_DOC_TRUE@ @echo ' DOC Building PDF'
-@ENABLE_GTK_DOC_TRUE@ @rm -f $(DOC_MODULE).pdf
-@ENABLE_GTK_DOC_TRUE@ @mkpdf_options=""; \
+@ENABLE_GTK_DOC_TRUE@ $(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \
+@ENABLE_GTK_DOC_TRUE@ mkpdf_options=""; \
@ENABLE_GTK_DOC_TRUE@ gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \
@ENABLE_GTK_DOC_TRUE@ if test "$(?)" = "0"; then \
@ENABLE_GTK_DOC_TRUE@ if test "x$(V)" = "x1"; then \
@@ -793,7 +819,7 @@ uninstall-am: uninstall-local
@ENABLE_GTK_DOC_TRUE@ done; \
@ENABLE_GTK_DOC_TRUE@ fi; \
@ENABLE_GTK_DOC_TRUE@ gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)
-@ENABLE_GTK_DOC_TRUE@ @touch pdf-build.stamp
+@ENABLE_GTK_DOC_TRUE@ $(AM_V_at)touch pdf-build.stamp
##############
diff --git a/docs/reference/libmm-glib/html/MMBearer.html b/docs/reference/libmm-glib/html/MMBearer.html
index 3e9ef32..a08a601 100644
--- a/docs/reference/libmm-glib/html/MMBearer.html
+++ b/docs/reference/libmm-glib/html/MMBearer.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch04.html" title="The Bearer object">
<link rel="prev" href="ch04.html" title="The Bearer object">
<link rel="next" href="MMBearerProperties.html" title="MMBearerProperties">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -333,7 +333,8 @@ thread.</div>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer none) A <a class="link" href="MMBearerIpConfig.html" title="MMBearerIpConfig"><span class="type">MMBearerIpConfig</span></a>. Do not free the returned value, it belongs to <em class="parameter"><code>self</code></em>.</td>
+<td>A <a class="link" href="MMBearerIpConfig.html" title="MMBearerIpConfig"><span class="type">MMBearerIpConfig</span></a>. Do not free the returned value, it belongs to <em class="parameter"><code>self</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
</tr>
</tbody>
</table></div>
@@ -367,7 +368,8 @@ new values.</div>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer full) A <a class="link" href="MMBearerIpConfig.html" title="MMBearerIpConfig"><span class="type">MMBearerIpConfig</span></a> that must be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if unknown.</td>
+<td>A <a class="link" href="MMBearerIpConfig.html" title="MMBearerIpConfig"><span class="type">MMBearerIpConfig</span></a> that must be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if unknown. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
</tr>
</tbody>
</table></div>
@@ -401,7 +403,8 @@ thread.</div>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer none) A <a class="link" href="MMBearerIpConfig.html" title="MMBearerIpConfig"><span class="type">MMBearerIpConfig</span></a>. Do not free the returned value, it belongs to <em class="parameter"><code>self</code></em>.</td>
+<td>A <a class="link" href="MMBearerIpConfig.html" title="MMBearerIpConfig"><span class="type">MMBearerIpConfig</span></a>. Do not free the returned value, it belongs to <em class="parameter"><code>self</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
</tr>
</tbody>
</table></div>
@@ -435,7 +438,8 @@ new values.</div>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer full) A <a class="link" href="MMBearerIpConfig.html" title="MMBearerIpConfig"><span class="type">MMBearerIpConfig</span></a> that must be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if unknown.</td>
+<td>A <a class="link" href="MMBearerIpConfig.html" title="MMBearerIpConfig"><span class="type">MMBearerIpConfig</span></a> that must be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if unknown. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
</tr>
</tbody>
</table></div>
@@ -469,7 +473,8 @@ thread.</div>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer none) A <a class="link" href="MMBearerProperties.html" title="MMBearerProperties"><span class="type">MMBearerProperties</span></a>. Do not free the returned value, it belongs to <em class="parameter"><code>self</code></em>.</td>
+<td>A <a class="link" href="MMBearerProperties.html" title="MMBearerProperties"><span class="type">MMBearerProperties</span></a>. Do not free the returned value, it belongs to <em class="parameter"><code>self</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
</tr>
</tbody>
</table></div>
@@ -503,7 +508,8 @@ new values.</div>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer full) A <a class="link" href="MMBearerProperties.html" title="MMBearerProperties"><span class="type">MMBearerProperties</span></a> that must be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if unknown.</td>
+<td>A <a class="link" href="MMBearerProperties.html" title="MMBearerProperties"><span class="type">MMBearerProperties</span></a> that must be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if unknown. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
</tr>
</tbody>
</table></div>
@@ -750,6 +756,6 @@ See <a class="link" href="MMBearer.html#mm-bearer-disconnect" title="mm_bearer_d
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MMBearerIpConfig.html b/docs/reference/libmm-glib/html/MMBearerIpConfig.html
index d1dbeb4..11659ba 100644
--- a/docs/reference/libmm-glib/html/MMBearerIpConfig.html
+++ b/docs/reference/libmm-glib/html/MMBearerIpConfig.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch04.html" title="The Bearer object">
<link rel="prev" href="MMBearerProperties.html" title="MMBearerProperties">
<link rel="next" href="ch05.html" title="The SIM object">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -41,7 +41,7 @@
<a name="MMBearerIpConfig.synopsis"></a><h2>Synopsis</h2>
<pre class="synopsis">struct <a class="link" href="MMBearerIpConfig.html#MMBearerIpConfig-struct" title="struct MMBearerIpConfig">MMBearerIpConfig</a>;
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerIpMethod"><span class="returnvalue">MMBearerIpMethod</span></a> <a class="link" href="MMBearerIpConfig.html#mm-bearer-ip-config-get-method" title="mm_bearer_ip_config_get_method ()">mm_bearer_ip_config_get_method</a> (<em class="parameter"><code><a class="link" href="MMBearerIpConfig.html" title="MMBearerIpConfig"><span class="type">MMBearerIpConfig</span></a> *self</code></em>);
+<span class="returnvalue">MMBearerIpMethod</span> <a class="link" href="MMBearerIpConfig.html#mm-bearer-ip-config-get-method" title="mm_bearer_ip_config_get_method ()">mm_bearer_ip_config_get_method</a> (<em class="parameter"><code><a class="link" href="MMBearerIpConfig.html" title="MMBearerIpConfig"><span class="type">MMBearerIpConfig</span></a> *self</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMBearerIpConfig.html#mm-bearer-ip-config-get-address" title="mm_bearer_ip_config_get_address ()">mm_bearer_ip_config_get_address</a> (<em class="parameter"><code><a class="link" href="MMBearerIpConfig.html" title="MMBearerIpConfig"><span class="type">MMBearerIpConfig</span></a> *self</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="MMBearerIpConfig.html#mm-bearer-ip-config-get-prefix" title="mm_bearer_ip_config_get_prefix ()">mm_bearer_ip_config_get_prefix</a> (<em class="parameter"><code><a class="link" href="MMBearerIpConfig.html" title="MMBearerIpConfig"><span class="type">MMBearerIpConfig</span></a> *self</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> ** <a class="link" href="MMBearerIpConfig.html#mm-bearer-ip-config-get-dns" title="mm_bearer_ip_config_get_dns ()">mm_bearer_ip_config_get_dns</a> (<em class="parameter"><code><a class="link" href="MMBearerIpConfig.html" title="MMBearerIpConfig"><span class="type">MMBearerIpConfig</span></a> *self</code></em>);
@@ -80,7 +80,7 @@ only be accessed using the provided API.
<hr>
<div class="refsect2">
<a name="mm-bearer-ip-config-get-method"></a><h3>mm_bearer_ip_config_get_method ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerIpMethod"><span class="returnvalue">MMBearerIpMethod</span></a> mm_bearer_ip_config_get_method (<em class="parameter"><code><a class="link" href="MMBearerIpConfig.html" title="MMBearerIpConfig"><span class="type">MMBearerIpConfig</span></a> *self</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">MMBearerIpMethod</span> mm_bearer_ip_config_get_method (<em class="parameter"><code><a class="link" href="MMBearerIpConfig.html" title="MMBearerIpConfig"><span class="type">MMBearerIpConfig</span></a> *self</code></em>);</pre>
<p>
Gets the IP method to be used with this bearer.
</p>
@@ -96,7 +96,7 @@ Gets the IP method to be used with this bearer.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerIpMethod"><span class="type">MMBearerIpMethod</span></a>.</td>
+<td>a <span class="type">MMBearerIpMethod</span>.</td>
</tr>
</tbody>
</table></div>
@@ -168,7 +168,8 @@ Gets the list of IP addresses of DNS servers to be used with this bearer.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a NULL-terminated array of strings. Do not free the returned value, it is owned by <em class="parameter"><code>self</code></em>.</td>
+<td>a NULL-terminated array of strings. Do not free the returned value, it is owned by <em class="parameter"><code>self</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1]</span>
+</td>
</tr>
</tbody>
</table></div>
@@ -201,6 +202,6 @@ Gets the IP address of the gateway to be used with this bearer.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MMBearerProperties.html b/docs/reference/libmm-glib/html/MMBearerProperties.html
index 9e950a3..1ef17be 100644
--- a/docs/reference/libmm-glib/html/MMBearerProperties.html
+++ b/docs/reference/libmm-glib/html/MMBearerProperties.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch04.html" title="The Bearer object">
<link rel="prev" href="MMBearer.html" title="MMBearer">
<link rel="next" href="MMBearerIpConfig.html" title="MMBearerIpConfig">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -46,20 +46,20 @@
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMBearerProperties.html#mm-bearer-properties-get-apn" title="mm_bearer_properties_get_apn ()">mm_bearer_properties_get_apn</a> (<em class="parameter"><code><a class="link" href="MMBearerProperties.html" title="MMBearerProperties"><span class="type">MMBearerProperties</span></a> *self</code></em>);
<span class="returnvalue">void</span> <a class="link" href="MMBearerProperties.html#mm-bearer-properties-set-apn" title="mm_bearer_properties_set_apn ()">mm_bearer_properties_set_apn</a> (<em class="parameter"><code><a class="link" href="MMBearerProperties.html" title="MMBearerProperties"><span class="type">MMBearerProperties</span></a> *self</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *apn</code></em>);
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerAllowedAuth"><span class="returnvalue">MMBearerAllowedAuth</span></a> <a class="link" href="MMBearerProperties.html#mm-bearer-properties-get-allowed-auth" title="mm_bearer_properties_get_allowed_auth ()">mm_bearer_properties_get_allowed_auth</a>
+<span class="returnvalue">MMBearerAllowedAuth</span> <a class="link" href="MMBearerProperties.html#mm-bearer-properties-get-allowed-auth" title="mm_bearer_properties_get_allowed_auth ()">mm_bearer_properties_get_allowed_auth</a>
(<em class="parameter"><code><a class="link" href="MMBearerProperties.html" title="MMBearerProperties"><span class="type">MMBearerProperties</span></a> *self</code></em>);
<span class="returnvalue">void</span> <a class="link" href="MMBearerProperties.html#mm-bearer-properties-set-allowed-auth" title="mm_bearer_properties_set_allowed_auth ()">mm_bearer_properties_set_allowed_auth</a>
(<em class="parameter"><code><a class="link" href="MMBearerProperties.html" title="MMBearerProperties"><span class="type">MMBearerProperties</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerAllowedAuth"><span class="type">MMBearerAllowedAuth</span></a> allowed_auth</code></em>);
+ <em class="parameter"><code><span class="type">MMBearerAllowedAuth</span> allowed_auth</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMBearerProperties.html#mm-bearer-properties-get-user" title="mm_bearer_properties_get_user ()">mm_bearer_properties_get_user</a> (<em class="parameter"><code><a class="link" href="MMBearerProperties.html" title="MMBearerProperties"><span class="type">MMBearerProperties</span></a> *self</code></em>);
<span class="returnvalue">void</span> <a class="link" href="MMBearerProperties.html#mm-bearer-properties-set-user" title="mm_bearer_properties_set_user ()">mm_bearer_properties_set_user</a> (<em class="parameter"><code><a class="link" href="MMBearerProperties.html" title="MMBearerProperties"><span class="type">MMBearerProperties</span></a> *self</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *user</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMBearerProperties.html#mm-bearer-properties-get-password" title="mm_bearer_properties_get_password ()">mm_bearer_properties_get_password</a> (<em class="parameter"><code><a class="link" href="MMBearerProperties.html" title="MMBearerProperties"><span class="type">MMBearerProperties</span></a> *self</code></em>);
<span class="returnvalue">void</span> <a class="link" href="MMBearerProperties.html#mm-bearer-properties-set-password" title="mm_bearer_properties_set_password ()">mm_bearer_properties_set_password</a> (<em class="parameter"><code><a class="link" href="MMBearerProperties.html" title="MMBearerProperties"><span class="type">MMBearerProperties</span></a> *self</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *password</code></em>);
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerIpFamily"><span class="returnvalue">MMBearerIpFamily</span></a> <a class="link" href="MMBearerProperties.html#mm-bearer-properties-get-ip-type" title="mm_bearer_properties_get_ip_type ()">mm_bearer_properties_get_ip_type</a> (<em class="parameter"><code><a class="link" href="MMBearerProperties.html" title="MMBearerProperties"><span class="type">MMBearerProperties</span></a> *self</code></em>);
+<span class="returnvalue">MMBearerIpFamily</span> <a class="link" href="MMBearerProperties.html#mm-bearer-properties-get-ip-type" title="mm_bearer_properties_get_ip_type ()">mm_bearer_properties_get_ip_type</a> (<em class="parameter"><code><a class="link" href="MMBearerProperties.html" title="MMBearerProperties"><span class="type">MMBearerProperties</span></a> *self</code></em>);
<span class="returnvalue">void</span> <a class="link" href="MMBearerProperties.html#mm-bearer-properties-set-ip-type" title="mm_bearer_properties_set_ip_type ()">mm_bearer_properties_set_ip_type</a> (<em class="parameter"><code><a class="link" href="MMBearerProperties.html" title="MMBearerProperties"><span class="type">MMBearerProperties</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerIpFamily"><span class="type">MMBearerIpFamily</span></a> ip_type</code></em>);
+ <em class="parameter"><code><span class="type">MMBearerIpFamily</span> ip_type</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMBearerProperties.html#mm-bearer-properties-get-allow-roaming" title="mm_bearer_properties_get_allow_roaming ()">mm_bearer_properties_get_allow_roaming</a>
(<em class="parameter"><code><a class="link" href="MMBearerProperties.html" title="MMBearerProperties"><span class="type">MMBearerProperties</span></a> *self</code></em>);
<span class="returnvalue">void</span> <a class="link" href="MMBearerProperties.html#mm-bearer-properties-set-allow-roaming" title="mm_bearer_properties_set_allow_roaming ()">mm_bearer_properties_set_allow_roaming</a>
@@ -68,11 +68,11 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMBearerProperties.html#mm-bearer-properties-get-number" title="mm_bearer_properties_get_number ()">mm_bearer_properties_get_number</a> (<em class="parameter"><code><a class="link" href="MMBearerProperties.html" title="MMBearerProperties"><span class="type">MMBearerProperties</span></a> *self</code></em>);
<span class="returnvalue">void</span> <a class="link" href="MMBearerProperties.html#mm-bearer-properties-set-number" title="mm_bearer_properties_set_number ()">mm_bearer_properties_set_number</a> (<em class="parameter"><code><a class="link" href="MMBearerProperties.html" title="MMBearerProperties"><span class="type">MMBearerProperties</span></a> *self</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *number</code></em>);
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCdmaRmProtocol"><span class="returnvalue">MMModemCdmaRmProtocol</span></a> <a class="link" href="MMBearerProperties.html#mm-bearer-properties-get-rm-protocol" title="mm_bearer_properties_get_rm_protocol ()">mm_bearer_properties_get_rm_protocol</a>
+<span class="returnvalue">MMModemCdmaRmProtocol</span> <a class="link" href="MMBearerProperties.html#mm-bearer-properties-get-rm-protocol" title="mm_bearer_properties_get_rm_protocol ()">mm_bearer_properties_get_rm_protocol</a>
(<em class="parameter"><code><a class="link" href="MMBearerProperties.html" title="MMBearerProperties"><span class="type">MMBearerProperties</span></a> *self</code></em>);
<span class="returnvalue">void</span> <a class="link" href="MMBearerProperties.html#mm-bearer-properties-set-rm-protocol" title="mm_bearer_properties_set_rm_protocol ()">mm_bearer_properties_set_rm_protocol</a>
(<em class="parameter"><code><a class="link" href="MMBearerProperties.html" title="MMBearerProperties"><span class="type">MMBearerProperties</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCdmaRmProtocol"><span class="type">MMModemCdmaRmProtocol</span></a> protocol</code></em>);
+ <em class="parameter"><code><span class="type">MMModemCdmaRmProtocol</span> protocol</code></em>);
</pre>
</div>
<div class="refsect1">
@@ -175,7 +175,7 @@ Sets the name of the access point to use when connecting.
<hr>
<div class="refsect2">
<a name="mm-bearer-properties-get-allowed-auth"></a><h3>mm_bearer_properties_get_allowed_auth ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerAllowedAuth"><span class="returnvalue">MMBearerAllowedAuth</span></a> mm_bearer_properties_get_allowed_auth
+<pre class="programlisting"><span class="returnvalue">MMBearerAllowedAuth</span> mm_bearer_properties_get_allowed_auth
(<em class="parameter"><code><a class="link" href="MMBearerProperties.html" title="MMBearerProperties"><span class="type">MMBearerProperties</span></a> *self</code></em>);</pre>
<p>
Gets the authentication methods allowed in the connection.
@@ -192,7 +192,7 @@ Gets the authentication methods allowed in the connection.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a bitmask of <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerAllowedAuth"><span class="type">MMBearerAllowedAuth</span></a> values, or <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-BEARER-ALLOWED-AUTH-UNKNOWN:CAPS"><code class="literal">MM_BEARER_ALLOWED_AUTH_UNKNOWN</code></a> to request the modem-default method.</td>
+<td>a bitmask of <span class="type">MMBearerAllowedAuth</span> values, or <code class="literal">MM_BEARER_ALLOWED_AUTH_UNKNOWN</code> to request the modem-default method.</td>
</tr>
</tbody>
</table></div>
@@ -202,7 +202,7 @@ Gets the authentication methods allowed in the connection.
<a name="mm-bearer-properties-set-allowed-auth"></a><h3>mm_bearer_properties_set_allowed_auth ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> mm_bearer_properties_set_allowed_auth
(<em class="parameter"><code><a class="link" href="MMBearerProperties.html" title="MMBearerProperties"><span class="type">MMBearerProperties</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerAllowedAuth"><span class="type">MMBearerAllowedAuth</span></a> allowed_auth</code></em>);</pre>
+ <em class="parameter"><code><span class="type">MMBearerAllowedAuth</span> allowed_auth</code></em>);</pre>
<p>
Sets the authentication method to use.
</p>
@@ -218,7 +218,7 @@ Sets the authentication method to use.
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>allowed_auth</code></em> :</span></p></td>
-<td>a bitmask of <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerAllowedAuth"><span class="type">MMBearerAllowedAuth</span></a> values. <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-BEARER-ALLOWED-AUTH-UNKNOWN:CAPS"><code class="literal">MM_BEARER_ALLOWED_AUTH_UNKNOWN</code></a> may be given to request the modem-default method.</td>
+<td>a bitmask of <span class="type">MMBearerAllowedAuth</span> values. <code class="literal">MM_BEARER_ALLOWED_AUTH_UNKNOWN</code> may be given to request the modem-default method.</td>
</tr>
</tbody>
</table></div>
@@ -326,7 +326,7 @@ Sets the password used to authenticate with the access point.
<hr>
<div class="refsect2">
<a name="mm-bearer-properties-get-ip-type"></a><h3>mm_bearer_properties_get_ip_type ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerIpFamily"><span class="returnvalue">MMBearerIpFamily</span></a> mm_bearer_properties_get_ip_type (<em class="parameter"><code><a class="link" href="MMBearerProperties.html" title="MMBearerProperties"><span class="type">MMBearerProperties</span></a> *self</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">MMBearerIpFamily</span> mm_bearer_properties_get_ip_type (<em class="parameter"><code><a class="link" href="MMBearerProperties.html" title="MMBearerProperties"><span class="type">MMBearerProperties</span></a> *self</code></em>);</pre>
<p>
Sets the IP type to use.
</p>
@@ -342,7 +342,7 @@ Sets the IP type to use.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerIpFamily"><span class="type">MMBearerIpFamily</span></a>.</td>
+<td>a <span class="type">MMBearerIpFamily</span>.</td>
</tr>
</tbody>
</table></div>
@@ -351,7 +351,7 @@ Sets the IP type to use.
<div class="refsect2">
<a name="mm-bearer-properties-set-ip-type"></a><h3>mm_bearer_properties_set_ip_type ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> mm_bearer_properties_set_ip_type (<em class="parameter"><code><a class="link" href="MMBearerProperties.html" title="MMBearerProperties"><span class="type">MMBearerProperties</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerIpFamily"><span class="type">MMBearerIpFamily</span></a> ip_type</code></em>);</pre>
+ <em class="parameter"><code><span class="type">MMBearerIpFamily</span> ip_type</code></em>);</pre>
<p>
Sets the IP type to use.
</p>
@@ -367,7 +367,7 @@ Sets the IP type to use.
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>ip_type</code></em> :</span></p></td>
-<td>a <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerIpFamily"><span class="type">MMBearerIpFamily</span></a>.</td>
+<td>a <span class="type">MMBearerIpFamily</span>.</td>
</tr>
</tbody>
</table></div>
@@ -478,7 +478,7 @@ Sets the number to use when performing the connection.
<hr>
<div class="refsect2">
<a name="mm-bearer-properties-get-rm-protocol"></a><h3>mm_bearer_properties_get_rm_protocol ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCdmaRmProtocol"><span class="returnvalue">MMModemCdmaRmProtocol</span></a> mm_bearer_properties_get_rm_protocol
+<pre class="programlisting"><span class="returnvalue">MMModemCdmaRmProtocol</span> mm_bearer_properties_get_rm_protocol
(<em class="parameter"><code><a class="link" href="MMBearerProperties.html" title="MMBearerProperties"><span class="type">MMBearerProperties</span></a> *self</code></em>);</pre>
<p>
Gets the RM protocol requested to use in the CDMA connection.
@@ -495,7 +495,7 @@ Gets the RM protocol requested to use in the CDMA connection.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCdmaRmProtocol"><span class="type">MMModemCdmaRmProtocol</span></a>.</td>
+<td>a <span class="type">MMModemCdmaRmProtocol</span>.</td>
</tr>
</tbody>
</table></div>
@@ -505,7 +505,7 @@ Gets the RM protocol requested to use in the CDMA connection.
<a name="mm-bearer-properties-set-rm-protocol"></a><h3>mm_bearer_properties_set_rm_protocol ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> mm_bearer_properties_set_rm_protocol
(<em class="parameter"><code><a class="link" href="MMBearerProperties.html" title="MMBearerProperties"><span class="type">MMBearerProperties</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCdmaRmProtocol"><span class="type">MMModemCdmaRmProtocol</span></a> protocol</code></em>);</pre>
+ <em class="parameter"><code><span class="type">MMModemCdmaRmProtocol</span> protocol</code></em>);</pre>
<p>
</p>
</div>
@@ -513,6 +513,6 @@ Gets the RM protocol requested to use in the CDMA connection.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MMCdmaManualActivationProperties.html b/docs/reference/libmm-glib/html/MMCdmaManualActivationProperties.html
new file mode 100644
index 0000000..a83d40c
--- /dev/null
+++ b/docs/reference/libmm-glib/html/MMCdmaManualActivationProperties.html
@@ -0,0 +1,671 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>MMCdmaManualActivationProperties</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="libmm-glib Reference Manual">
+<link rel="up" href="ch03.html#id-1.2.4.3" title="Generic interfaces">
+<link rel="prev" href="MMModemCdma.html" title="MMModemCdma">
+<link rel="next" href="MMUnlockRetries.html" title="MMUnlockRetries">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="MMModemCdma.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch03.html#id-1.2.4.3"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libmm-glib Reference Manual</th>
+<td><a accesskey="n" href="MMUnlockRetries.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#MMCdmaManualActivationProperties.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#MMCdmaManualActivationProperties.description" class="shortcut">Description</a>
+  | 
+ <a href="#MMCdmaManualActivationProperties.object-hierarchy" class="shortcut">Object Hierarchy</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="MMCdmaManualActivationProperties"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="MMCdmaManualActivationProperties.top_of_page"></a>MMCdmaManualActivationProperties</span></h2>
+<p>MMCdmaManualActivationProperties — Helper object to handle manual CDMA activation properties.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="MMCdmaManualActivationProperties.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">struct <a class="link" href="MMCdmaManualActivationProperties.html#MMCdmaManualActivationProperties-struct" title="struct MMCdmaManualActivationProperties">MMCdmaManualActivationProperties</a>;
+
+<a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="returnvalue">MMCdmaManualActivationProperties</span></a> * <a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-new" title="mm_cdma_manual_activation_properties_new ()">mm_cdma_manual_activation_properties_new</a>
+ (<em class="parameter"><code><span class="type">void</span></code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-get-spc" title="mm_cdma_manual_activation_properties_get_spc ()">mm_cdma_manual_activation_properties_get_spc</a>
+ (<em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *self</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-set-spc" title="mm_cdma_manual_activation_properties_set_spc ()">mm_cdma_manual_activation_properties_set_spc</a>
+ (<em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *self</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *spc</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a> <a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-get-sid" title="mm_cdma_manual_activation_properties_get_sid ()">mm_cdma_manual_activation_properties_get_sid</a>
+ (<em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *self</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-set-sid" title="mm_cdma_manual_activation_properties_set_sid ()">mm_cdma_manual_activation_properties_set_sid</a>
+ (<em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> sid</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-get-mdn" title="mm_cdma_manual_activation_properties_get_mdn ()">mm_cdma_manual_activation_properties_get_mdn</a>
+ (<em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *self</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-set-mdn" title="mm_cdma_manual_activation_properties_set_mdn ()">mm_cdma_manual_activation_properties_set_mdn</a>
+ (<em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *self</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *mdn</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-get-min" title="mm_cdma_manual_activation_properties_get_min ()">mm_cdma_manual_activation_properties_get_min</a>
+ (<em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *self</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-set-min" title="mm_cdma_manual_activation_properties_set_min ()">mm_cdma_manual_activation_properties_set_min</a>
+ (<em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *self</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *min</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-get-mn-ha-key" title="mm_cdma_manual_activation_properties_get_mn_ha_key ()">mm_cdma_manual_activation_properties_get_mn_ha_key</a>
+ (<em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *self</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-set-mn-ha-key" title="mm_cdma_manual_activation_properties_set_mn_ha_key ()">mm_cdma_manual_activation_properties_set_mn_ha_key</a>
+ (<em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *self</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *mn_ha_key</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-get-mn-aaa-key" title="mm_cdma_manual_activation_properties_get_mn_aaa_key ()">mm_cdma_manual_activation_properties_get_mn_aaa_key</a>
+ (<em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *self</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-set-mn-aaa-key" title="mm_cdma_manual_activation_properties_set_mn_aaa_key ()">mm_cdma_manual_activation_properties_set_mn_aaa_key</a>
+ (<em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *self</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *mn_aaa_key</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> * <a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-get-prl" title="mm_cdma_manual_activation_properties_get_prl ()">mm_cdma_manual_activation_properties_get_prl</a>
+ (<em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *prl_len</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GByteArray"><span class="returnvalue">GByteArray</span></a> * <a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-peek-prl-bytearray" title="mm_cdma_manual_activation_properties_peek_prl_bytearray ()">mm_cdma_manual_activation_properties_peek_prl_bytearray</a>
+ (<em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *self</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GByteArray"><span class="returnvalue">GByteArray</span></a> * <a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-get-prl-bytearray" title="mm_cdma_manual_activation_properties_get_prl_bytearray ()">mm_cdma_manual_activation_properties_get_prl_bytearray</a>
+ (<em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *self</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-set-prl" title="mm_cdma_manual_activation_properties_set_prl ()">mm_cdma_manual_activation_properties_set_prl</a>
+ (<em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *self</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *prl</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> prl_length</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-set-prl-bytearray" title="mm_cdma_manual_activation_properties_set_prl_bytearray ()">mm_cdma_manual_activation_properties_set_prl_bytearray</a>
+ (<em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GByteArray"><span class="type">GByteArray</span></a> *prl</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="MMCdmaManualActivationProperties.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+ <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+ +----MMCdmaManualActivationProperties
+</pre>
+</div>
+<div class="refsect1">
+<a name="MMCdmaManualActivationProperties.description"></a><h2>Description</h2>
+<p>
+The <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> is an object handling the properties
+required during a manual CDMA activation request.
+</p>
+</div>
+<div class="refsect1">
+<a name="MMCdmaManualActivationProperties.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="MMCdmaManualActivationProperties-struct"></a><h3>struct MMCdmaManualActivationProperties</h3>
+<pre class="programlisting">struct MMCdmaManualActivationProperties;</pre>
+<p>
+The <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> structure contains private data and should only be accessed
+using the provided API.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-cdma-manual-activation-properties-new"></a><h3>mm_cdma_manual_activation_properties_new ()</h3>
+<pre class="programlisting"><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="returnvalue">MMCdmaManualActivationProperties</span></a> * mm_cdma_manual_activation_properties_new
+ (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Creates a new <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> object.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a>. The returned value should be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-cdma-manual-activation-properties-get-spc"></a><h3>mm_cdma_manual_activation_properties_get_spc ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_cdma_manual_activation_properties_get_spc
+ (<em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *self</code></em>);</pre>
+<p>
+Gets the Service Programming Code.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The SPC. Do not free the returned value, it is owned by <em class="parameter"><code>self</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-cdma-manual-activation-properties-set-spc"></a><h3>mm_cdma_manual_activation_properties_set_spc ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_cdma_manual_activation_properties_set_spc
+ (<em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *self</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *spc</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Sets the Service Programming Code.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>spc</code></em> :</span></p></td>
+<td>The SPC string, exactly 6 digits.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the SPC was successfully set, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if <em class="parameter"><code>error</code></em> is set.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-cdma-manual-activation-properties-get-sid"></a><h3>mm_cdma_manual_activation_properties_get_sid ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a> mm_cdma_manual_activation_properties_get_sid
+ (<em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *self</code></em>);</pre>
+<p>
+Gets the System Identification Number.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The SID.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-cdma-manual-activation-properties-set-sid"></a><h3>mm_cdma_manual_activation_properties_set_sid ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> mm_cdma_manual_activation_properties_set_sid
+ (<em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> sid</code></em>);</pre>
+<p>
+Sets the Service Identification Number.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sid</code></em> :</span></p></td>
+<td>The SID.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-cdma-manual-activation-properties-get-mdn"></a><h3>mm_cdma_manual_activation_properties_get_mdn ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_cdma_manual_activation_properties_get_mdn
+ (<em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *self</code></em>);</pre>
+<p>
+Gets the Mobile Directory Number.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The MDN. Do not free the returned value, it is owned by <em class="parameter"><code>self</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-cdma-manual-activation-properties-set-mdn"></a><h3>mm_cdma_manual_activation_properties_set_mdn ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_cdma_manual_activation_properties_set_mdn
+ (<em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *self</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *mdn</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Sets the Mobile Directory Number.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mdn</code></em> :</span></p></td>
+<td>The MDN string, maximum 15 characters.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the MDN was successfully set, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if <em class="parameter"><code>error</code></em> is set.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-cdma-manual-activation-properties-get-min"></a><h3>mm_cdma_manual_activation_properties_get_min ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_cdma_manual_activation_properties_get_min
+ (<em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *self</code></em>);</pre>
+<p>
+Gets the Mobile Indentification Number.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The MIN. Do not free the returned value, it is owned by <em class="parameter"><code>self</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-cdma-manual-activation-properties-set-min"></a><h3>mm_cdma_manual_activation_properties_set_min ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_cdma_manual_activation_properties_set_min
+ (<em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *self</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *min</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Sets the Mobile Identification Number.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>min</code></em> :</span></p></td>
+<td>The MIN string, maximum 15 characters.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the MIN was successfully set, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if <em class="parameter"><code>error</code></em> is set.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-cdma-manual-activation-properties-get-mn-ha-key"></a><h3>mm_cdma_manual_activation_properties_get_mn_ha_key ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_cdma_manual_activation_properties_get_mn_ha_key
+ (<em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *self</code></em>);</pre>
+<p>
+Gets the MN-HA key.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The MN-HA key. Do not free the returned value, it is owned by <em class="parameter"><code>self</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-cdma-manual-activation-properties-set-mn-ha-key"></a><h3>mm_cdma_manual_activation_properties_set_mn_ha_key ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_cdma_manual_activation_properties_set_mn_ha_key
+ (<em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *self</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *mn_ha_key</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Sets the Mobile Identification Number.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mn_ha_key</code></em> :</span></p></td>
+<td>The MN-HA key string, maximum 16 characters.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the MN-HA key was successfully set, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if <em class="parameter"><code>error</code></em> is set.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-cdma-manual-activation-properties-get-mn-aaa-key"></a><h3>mm_cdma_manual_activation_properties_get_mn_aaa_key ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_cdma_manual_activation_properties_get_mn_aaa_key
+ (<em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *self</code></em>);</pre>
+<p>
+Gets the MN-AAA key.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The MN-AAA key. Do not free the returned value, it is owned by <em class="parameter"><code>self</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-cdma-manual-activation-properties-set-mn-aaa-key"></a><h3>mm_cdma_manual_activation_properties_set_mn_aaa_key ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_cdma_manual_activation_properties_set_mn_aaa_key
+ (<em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *self</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *mn_aaa_key</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Sets the Mobile Identification Number.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mn_aaa_key</code></em> :</span></p></td>
+<td>The MN-AAA key string, maximum 16 characters.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the MN-AAA key was successfully set, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if <em class="parameter"><code>error</code></em> is set.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-cdma-manual-activation-properties-get-prl"></a><h3>mm_cdma_manual_activation_properties_get_prl ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> * mm_cdma_manual_activation_properties_get_prl
+ (<em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *prl_len</code></em>);</pre>
+<p>
+Gets the Preferred Roaming List.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prl_len</code></em> :</span></p></td>
+<td>Size of the returned PRL. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The PRL. Do not free the returned value, it is owned by <em class="parameter"><code>self</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-cdma-manual-activation-properties-peek-prl-bytearray"></a><h3>mm_cdma_manual_activation_properties_peek_prl_bytearray ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GByteArray"><span class="returnvalue">GByteArray</span></a> * mm_cdma_manual_activation_properties_peek_prl_bytearray
+ (<em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *self</code></em>);</pre>
+<p>
+Gets the Preferred Roaming List.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GByteArray"><span class="type">GByteArray</span></a> with the PRL, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if it doesn't contain any. Do not free the returned value, it is owned by <em class="parameter"><code>self</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-cdma-manual-activation-properties-get-prl-bytearray"></a><h3>mm_cdma_manual_activation_properties_get_prl_bytearray ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GByteArray"><span class="returnvalue">GByteArray</span></a> * mm_cdma_manual_activation_properties_get_prl_bytearray
+ (<em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *self</code></em>);</pre>
+<p>
+Gets the Preferred Roaming List.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GByteArray"><span class="type">GByteArray</span></a> with the PRL, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if it doesn't contain any. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#g-byte-array-unref"><code class="function">g_byte_array_unref()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-cdma-manual-activation-properties-set-prl"></a><h3>mm_cdma_manual_activation_properties_set_prl ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_cdma_manual_activation_properties_set_prl
+ (<em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *self</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *prl</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> prl_length</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Sets the Preferred Roaming List.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prl</code></em> :</span></p></td>
+<td>The PRL.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prl_length</code></em> :</span></p></td>
+<td>Length of <em class="parameter"><code>prl</code></em>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the PRL was successfully set, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if <em class="parameter"><code>error</code></em> is set.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-cdma-manual-activation-properties-set-prl-bytearray"></a><h3>mm_cdma_manual_activation_properties_set_prl_bytearray ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_cdma_manual_activation_properties_set_prl_bytearray
+ (<em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GByteArray"><span class="type">GByteArray</span></a> *prl</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Sets the Preferred Roaming List.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prl</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GByteArray"><span class="type">GByteArray</span></a> with the PRL to set. This method takes a new reference of <em class="parameter"><code>prl</code></em>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the PRL was successfully set, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if <em class="parameter"><code>error</code></em> is set.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.19</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MMFirmwareProperties.html b/docs/reference/libmm-glib/html/MMFirmwareProperties.html
index 8a3808b..857b055 100644
--- a/docs/reference/libmm-glib/html/MMFirmwareProperties.html
+++ b/docs/reference/libmm-glib/html/MMFirmwareProperties.html
@@ -7,8 +7,8 @@
<link rel="home" href="index.html" title="libmm-glib Reference Manual">
<link rel="up" href="ch03s06.html" title="Firmware support">
<link rel="prev" href="MMModemFirmware.html" title="MMModemFirmware">
-<link rel="next" href="ch04.html" title="The Bearer object">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<link rel="next" href="ch03s07.html" title="Extended signal information">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -18,7 +18,7 @@
<td><a accesskey="u" href="ch03s06.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">libmm-glib Reference Manual</th>
-<td><a accesskey="n" href="ch04.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="ch03s07.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#MMFirmwareProperties.synopsis" class="shortcut">Top</a>
@@ -41,7 +41,7 @@
<a name="MMFirmwareProperties.synopsis"></a><h2>Synopsis</h2>
<pre class="synopsis">struct <a class="link" href="MMFirmwareProperties.html#MMFirmwareProperties-struct" title="struct MMFirmwareProperties">MMFirmwareProperties</a>;
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMFirmwareImageType"><span class="returnvalue">MMFirmwareImageType</span></a> <a class="link" href="MMFirmwareProperties.html#mm-firmware-properties-get-image-type" title="mm_firmware_properties_get_image_type ()">mm_firmware_properties_get_image_type</a>
+<span class="returnvalue">MMFirmwareImageType</span> <a class="link" href="MMFirmwareProperties.html#mm-firmware-properties-get-image-type" title="mm_firmware_properties_get_image_type ()">mm_firmware_properties_get_image_type</a>
(<em class="parameter"><code><a class="link" href="MMFirmwareProperties.html" title="MMFirmwareProperties"><span class="type">MMFirmwareProperties</span></a> *self</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMFirmwareProperties.html#mm-firmware-properties-get-unique-id" title="mm_firmware_properties_get_unique_id ()">mm_firmware_properties_get_unique_id</a>
(<em class="parameter"><code><a class="link" href="MMFirmwareProperties.html" title="MMFirmwareProperties"><span class="type">MMFirmwareProperties</span></a> *self</code></em>);
@@ -88,7 +88,7 @@ using the provided API.
<hr>
<div class="refsect2">
<a name="mm-firmware-properties-get-image-type"></a><h3>mm_firmware_properties_get_image_type ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMFirmwareImageType"><span class="returnvalue">MMFirmwareImageType</span></a> mm_firmware_properties_get_image_type
+<pre class="programlisting"><span class="returnvalue">MMFirmwareImageType</span> mm_firmware_properties_get_image_type
(<em class="parameter"><code><a class="link" href="MMFirmwareProperties.html" title="MMFirmwareProperties"><span class="type">MMFirmwareProperties</span></a> *self</code></em>);</pre>
<p>
Gets the type of the firmare image.
@@ -105,7 +105,7 @@ Gets the type of the firmare image.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMFirmwareImageType"><span class="type">MMFirmwareImageType</span></a> specifying The type of the image.</td>
+<td>A <span class="type">MMFirmwareImageType</span> specifying The type of the image.</td>
</tr>
</tbody>
</table></div>
@@ -142,7 +142,7 @@ Gets the unique ID of the firmare image.
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_firmware_properties_get_gobi_pri_version
(<em class="parameter"><code><a class="link" href="MMFirmwareProperties.html" title="MMFirmwareProperties"><span class="type">MMFirmwareProperties</span></a> *self</code></em>);</pre>
<p>
-Gets the PRI version of a firmware image of type <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-FIRMWARE-IMAGE-TYPE-GOBI:CAPS"><code class="literal">MM_FIRMWARE_IMAGE_TYPE_GOBI</code></a>.
+Gets the PRI version of a firmware image of type <code class="literal">MM_FIRMWARE_IMAGE_TYPE_GOBI</code>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -167,7 +167,7 @@ Gets the PRI version of a firmware image of type <a href="/usr/share/gtk-doc/htm
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_firmware_properties_get_gobi_pri_info
(<em class="parameter"><code><a class="link" href="MMFirmwareProperties.html" title="MMFirmwareProperties"><span class="type">MMFirmwareProperties</span></a> *self</code></em>);</pre>
<p>
-Gets the PRI info of a firmware image of type <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-FIRMWARE-IMAGE-TYPE-GOBI:CAPS"><code class="literal">MM_FIRMWARE_IMAGE_TYPE_GOBI</code></a>.
+Gets the PRI info of a firmware image of type <code class="literal">MM_FIRMWARE_IMAGE_TYPE_GOBI</code>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -192,7 +192,7 @@ Gets the PRI info of a firmware image of type <a href="/usr/share/gtk-doc/html/M
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_firmware_properties_get_gobi_boot_version
(<em class="parameter"><code><a class="link" href="MMFirmwareProperties.html" title="MMFirmwareProperties"><span class="type">MMFirmwareProperties</span></a> *self</code></em>);</pre>
<p>
-Gets the boot version of a firmware image of type <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-FIRMWARE-IMAGE-TYPE-GOBI:CAPS"><code class="literal">MM_FIRMWARE_IMAGE_TYPE_GOBI</code></a>.
+Gets the boot version of a firmware image of type <code class="literal">MM_FIRMWARE_IMAGE_TYPE_GOBI</code>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -217,7 +217,7 @@ Gets the boot version of a firmware image of type <a href="/usr/share/gtk-doc/ht
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_firmware_properties_get_gobi_pri_unique_id
(<em class="parameter"><code><a class="link" href="MMFirmwareProperties.html" title="MMFirmwareProperties"><span class="type">MMFirmwareProperties</span></a> *self</code></em>);</pre>
<p>
-Gets the PRI unique ID of a firmware image of type <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-FIRMWARE-IMAGE-TYPE-GOBI:CAPS"><code class="literal">MM_FIRMWARE_IMAGE_TYPE_GOBI</code></a>.
+Gets the PRI unique ID of a firmware image of type <code class="literal">MM_FIRMWARE_IMAGE_TYPE_GOBI</code>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -242,7 +242,7 @@ Gets the PRI unique ID of a firmware image of type <a href="/usr/share/gtk-doc/h
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_firmware_properties_get_gobi_modem_unique_id
(<em class="parameter"><code><a class="link" href="MMFirmwareProperties.html" title="MMFirmwareProperties"><span class="type">MMFirmwareProperties</span></a> *self</code></em>);</pre>
<p>
-Gets the MODEM unique ID of a firmware image of type <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-FIRMWARE-IMAGE-TYPE-GOBI:CAPS"><code class="literal">MM_FIRMWARE_IMAGE_TYPE_GOBI</code></a>.
+Gets the MODEM unique ID of a firmware image of type <code class="literal">MM_FIRMWARE_IMAGE_TYPE_GOBI</code>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -265,6 +265,6 @@ Gets the MODEM unique ID of a firmware image of type <a href="/usr/share/gtk-doc
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MMLocation3gpp.html b/docs/reference/libmm-glib/html/MMLocation3gpp.html
index f37e935..729702a 100644
--- a/docs/reference/libmm-glib/html/MMLocation3gpp.html
+++ b/docs/reference/libmm-glib/html/MMLocation3gpp.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch03s03.html" title="Location support">
<link rel="prev" href="MMModemLocation.html" title="MMModemLocation">
<link rel="next" href="MMLocationGpsNmea.html" title="MMLocationGpsNmea">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -182,6 +182,6 @@ Gets the cell ID of the 3GPP network.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MMLocationCdmaBs.html b/docs/reference/libmm-glib/html/MMLocationCdmaBs.html
index fc197d4..53256e9 100644
--- a/docs/reference/libmm-glib/html/MMLocationCdmaBs.html
+++ b/docs/reference/libmm-glib/html/MMLocationCdmaBs.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch03s03.html" title="Location support">
<link rel="prev" href="MMLocationGpsRaw.html" title="MMLocationGpsRaw">
<link rel="next" href="ch03s04.html" title="Messaging support">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -126,6 +126,6 @@ Gets the longitude, in the [-180,180] range.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MMLocationGpsNmea.html b/docs/reference/libmm-glib/html/MMLocationGpsNmea.html
index c705b80..378cd3c 100644
--- a/docs/reference/libmm-glib/html/MMLocationGpsNmea.html
+++ b/docs/reference/libmm-glib/html/MMLocationGpsNmea.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch03s03.html" title="Location support">
<link rel="prev" href="MMLocation3gpp.html" title="MMLocation3gpp">
<link rel="next" href="MMLocationGpsRaw.html" title="MMLocationGpsRaw">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -123,7 +123,8 @@ Gets a compilation of all cached traces.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer full) a string containing all traces, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if none available. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>.</td>
+<td>a string containing all traces, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if none available. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
</tr>
</tbody>
</table></div>
@@ -132,6 +133,6 @@ Gets a compilation of all cached traces.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MMLocationGpsRaw.html b/docs/reference/libmm-glib/html/MMLocationGpsRaw.html
index f61dd99..660999f 100644
--- a/docs/reference/libmm-glib/html/MMLocationGpsRaw.html
+++ b/docs/reference/libmm-glib/html/MMLocationGpsRaw.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch03s03.html" title="Location support">
<link rel="prev" href="MMLocationGpsNmea.html" title="MMLocationGpsNmea">
<link rel="next" href="MMLocationCdmaBs.html" title="MMLocationCdmaBs">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -176,6 +176,6 @@ Gets the altitude, in the [-90,90] range.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MMManager.html b/docs/reference/libmm-glib/html/MMManager.html
index c316382..498f70e 100644
--- a/docs/reference/libmm-glib/html/MMManager.html
+++ b/docs/reference/libmm-glib/html/MMManager.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="The Manager object">
<link rel="prev" href="ch02.html" title="The Manager object">
<link rel="next" href="ch03.html" title="The Modem object">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -557,6 +557,6 @@ See <a class="link" href="MMManager.html#mm-manager-set-logging" title="mm_manag
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MMModem.html b/docs/reference/libmm-glib/html/MMModem.html
index 4ecd058..744eb51 100644
--- a/docs/reference/libmm-glib/html/MMModem.html
+++ b/docs/reference/libmm-glib/html/MMModem.html
@@ -5,17 +5,17 @@
<title>MMModem</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="libmm-glib Reference Manual">
-<link rel="up" href="ch03.html#idm211869297872" title="Generic interfaces">
+<link rel="up" href="ch03.html#id-1.2.4.3" title="Generic interfaces">
<link rel="prev" href="MMObject.html" title="MMObject">
<link rel="next" href="MMModem3gpp.html" title="MMModem3gpp">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="MMObject.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch03.html#idm211869297872"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch03.html#id-1.2.4.3"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">libmm-glib Reference Manual</th>
<td><a accesskey="n" href="MMModem3gpp.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
@@ -42,23 +42,23 @@
<div class="refsynopsisdiv">
<a name="MMModem.synopsis"></a><h2>Synopsis</h2>
<pre class="synopsis">struct <a class="link" href="MMModem.html#MMModem-struct" title="struct MMModem">MMModem</a>;
- <a class="link" href="MMModem.html#MMModemModeCombination" title="MMModemModeCombination">MMModemModeCombination</a>;
- <a class="link" href="MMModem.html#MMModemPortInfo" title="MMModemPortInfo">MMModemPortInfo</a>;
+struct <a class="link" href="MMModem.html#MMModemModeCombination" title="struct MMModemModeCombination">MMModemModeCombination</a>;
+struct <a class="link" href="MMModem.html#MMModemPortInfo" title="struct MMModemPortInfo">MMModemPortInfo</a>;
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMModem.html#mm-modem-get-path" title="mm_modem_get_path ()">mm_modem_get_path</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMModem.html#mm-modem-dup-path" title="mm_modem_dup_path ()">mm_modem_dup_path</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemState"><span class="returnvalue">MMModemState</span></a> <a class="link" href="MMModem.html#mm-modem-get-state" title="mm_modem_get_state ()">mm_modem_get_state</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemStateFailedReason"><span class="returnvalue">MMModemStateFailedReason</span></a> <a class="link" href="MMModem.html#mm-modem-get-state-failed-reason" title="mm_modem_get_state_failed_reason ()">mm_modem_get_state_failed_reason</a>
+<span class="returnvalue">MMModemState</span> <a class="link" href="MMModem.html#mm-modem-get-state" title="mm_modem_get_state ()">mm_modem_get_state</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);
+<span class="returnvalue">MMModemStateFailedReason</span> <a class="link" href="MMModem.html#mm-modem-get-state-failed-reason" title="mm_modem_get_state_failed_reason ()">mm_modem_get_state_failed_reason</a>
(<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemPowerState"><span class="returnvalue">MMModemPowerState</span></a> <a class="link" href="MMModem.html#mm-modem-get-power-state" title="mm_modem_get_power_state ()">mm_modem_get_power_state</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);
+<span class="returnvalue">MMModemPowerState</span> <a class="link" href="MMModem.html#mm-modem-get-power-state" title="mm_modem_get_power_state ()">mm_modem_get_power_state</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMModem.html#mm-modem-peek-supported-capabilities" title="mm_modem_peek_supported_capabilities ()">mm_modem_peek_supported_capabilities</a>
(<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCapability"><span class="type">MMModemCapability</span></a> **capabilities</code></em>,
+ <em class="parameter"><code>const <span class="type">MMModemCapability</span> **capabilities</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_capabilities</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMModem.html#mm-modem-get-supported-capabilities" title="mm_modem_get_supported_capabilities ()">mm_modem_get_supported_capabilities</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCapability"><span class="type">MMModemCapability</span></a> **capabilities</code></em>,
+ <em class="parameter"><code><span class="type">MMModemCapability</span> **capabilities</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_capabilities</code></em>);
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCapability"><span class="returnvalue">MMModemCapability</span></a> <a class="link" href="MMModem.html#mm-modem-get-current-capabilities" title="mm_modem_get_current_capabilities ()">mm_modem_get_current_capabilities</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);
+<span class="returnvalue">MMModemCapability</span> <a class="link" href="MMModem.html#mm-modem-get-current-capabilities" title="mm_modem_get_current_capabilities ()">mm_modem_get_current_capabilities</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMModem.html#mm-modem-get-manufacturer" title="mm_modem_get_manufacturer ()">mm_modem_get_manufacturer</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMModem.html#mm-modem-dup-manufacturer" title="mm_modem_dup_manufacturer ()">mm_modem_dup_manufacturer</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMModem.html#mm-modem-get-model" title="mm_modem_get_model ()">mm_modem_get_model</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);
@@ -72,10 +72,10 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMModem.html#mm-modem-get-primary-port" title="mm_modem_get_primary_port ()">mm_modem_get_primary_port</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMModem.html#mm-modem-dup-primary-port" title="mm_modem_dup_primary_port ()">mm_modem_dup_primary_port</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMModem.html#mm-modem-peek-ports" title="mm_modem_peek_ports ()">mm_modem_peek_ports</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code>const <a class="link" href="MMModem.html#MMModemPortInfo" title="MMModemPortInfo"><span class="type">MMModemPortInfo</span></a> **ports</code></em>,
+ <em class="parameter"><code>const <a class="link" href="MMModem.html#MMModemPortInfo" title="struct MMModemPortInfo"><span class="type">MMModemPortInfo</span></a> **ports</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_ports</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMModem.html#mm-modem-get-ports" title="mm_modem_get_ports ()">mm_modem_get_ports</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code><a class="link" href="MMModem.html#MMModemPortInfo" title="MMModemPortInfo"><span class="type">MMModemPortInfo</span></a> **ports</code></em>,
+ <em class="parameter"><code><a class="link" href="MMModem.html#MMModemPortInfo" title="struct MMModemPortInfo"><span class="type">MMModemPortInfo</span></a> **ports</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_ports</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMModem.html#mm-modem-get-device" title="mm_modem_get_device ()">mm_modem_get_device</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMModem.html#mm-modem-dup-device" title="mm_modem_dup_device ()">mm_modem_dup_device</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);
@@ -83,38 +83,40 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMModem.html#mm-modem-dup-equipment-identifier" title="mm_modem_dup_equipment_identifier ()">mm_modem_dup_equipment_identifier</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMModem.html#mm-modem-get-device-identifier" title="mm_modem_get_device_identifier ()">mm_modem_get_device_identifier</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMModem.html#mm-modem-dup-device-identifier" title="mm_modem_dup_device_identifier ()">mm_modem_dup_device_identifier</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemLock"><span class="returnvalue">MMModemLock</span></a> <a class="link" href="MMModem.html#mm-modem-get-unlock-required" title="mm_modem_get_unlock_required ()">mm_modem_get_unlock_required</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);
+<span class="returnvalue">MMModemLock</span> <a class="link" href="MMModem.html#mm-modem-get-unlock-required" title="mm_modem_get_unlock_required ()">mm_modem_get_unlock_required</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);
<a class="link" href="MMUnlockRetries.html" title="MMUnlockRetries"><span class="returnvalue">MMUnlockRetries</span></a> * <a class="link" href="MMModem.html#mm-modem-peek-unlock-retries" title="mm_modem_peek_unlock_retries ()">mm_modem_peek_unlock_retries</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);
<a class="link" href="MMUnlockRetries.html" title="MMUnlockRetries"><span class="returnvalue">MMUnlockRetries</span></a> * <a class="link" href="MMModem.html#mm-modem-get-unlock-retries" title="mm_modem_get_unlock_retries ()">mm_modem_get_unlock_retries</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="MMModem.html#mm-modem-get-max-bearers" title="mm_modem_get_max_bearers ()">mm_modem_get_max_bearers</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="MMModem.html#mm-modem-get-max-active-bearers" title="mm_modem_get_max_active_bearers ()">mm_modem_get_max_active_bearers</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * const * <a class="link" href="MMModem.html#mm-modem-get-bearer-paths" title="mm_modem_get_bearer_paths ()">mm_modem_get_bearer_paths</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> ** <a class="link" href="MMModem.html#mm-modem-dup-bearer-paths" title="mm_modem_dup_bearer_paths ()">mm_modem_dup_bearer_paths</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *const * <a class="link" href="MMModem.html#mm-modem-get-own-numbers" title="mm_modem_get_own_numbers ()">mm_modem_get_own_numbers</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> ** <a class="link" href="MMModem.html#mm-modem-dup-own-numbers" title="mm_modem_dup_own_numbers ()">mm_modem_dup_own_numbers</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMModem.html#mm-modem-peek-supported-modes" title="mm_modem_peek_supported_modes ()">mm_modem_peek_supported_modes</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code>const <a class="link" href="MMModem.html#MMModemModeCombination" title="MMModemModeCombination"><span class="type">MMModemModeCombination</span></a> **modes</code></em>,
+ <em class="parameter"><code>const <a class="link" href="MMModem.html#MMModemModeCombination" title="struct MMModemModeCombination"><span class="type">MMModemModeCombination</span></a> **modes</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_modes</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMModem.html#mm-modem-get-supported-modes" title="mm_modem_get_supported_modes ()">mm_modem_get_supported_modes</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code><a class="link" href="MMModem.html#MMModemModeCombination" title="MMModemModeCombination"><span class="type">MMModemModeCombination</span></a> **modes</code></em>,
+ <em class="parameter"><code><a class="link" href="MMModem.html#MMModemModeCombination" title="struct MMModemModeCombination"><span class="type">MMModemModeCombination</span></a> **modes</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_modes</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMModem.html#mm-modem-get-current-modes" title="mm_modem_get_current_modes ()">mm_modem_get_current_modes</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemMode"><span class="type">MMModemMode</span></a> *allowed</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemMode"><span class="type">MMModemMode</span></a> *preferred</code></em>);
+ <em class="parameter"><code><span class="type">MMModemMode</span> *allowed</code></em>,
+ <em class="parameter"><code><span class="type">MMModemMode</span> *preferred</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMModem.html#mm-modem-peek-supported-bands" title="mm_modem_peek_supported_bands ()">mm_modem_peek_supported_bands</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemBand"><span class="type">MMModemBand</span></a> **bands</code></em>,
+ <em class="parameter"><code>const <span class="type">MMModemBand</span> **bands</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_bands</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMModem.html#mm-modem-get-supported-bands" title="mm_modem_get_supported_bands ()">mm_modem_get_supported_bands</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemBand"><span class="type">MMModemBand</span></a> **bands</code></em>,
+ <em class="parameter"><code><span class="type">MMModemBand</span> **bands</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_bands</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMModem.html#mm-modem-peek-current-bands" title="mm_modem_peek_current_bands ()">mm_modem_peek_current_bands</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemBand"><span class="type">MMModemBand</span></a> **bands</code></em>,
+ <em class="parameter"><code>const <span class="type">MMModemBand</span> **bands</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_bands</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMModem.html#mm-modem-get-current-bands" title="mm_modem_get_current_bands ()">mm_modem_get_current_bands</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemBand"><span class="type">MMModemBand</span></a> **bands</code></em>,
+ <em class="parameter"><code><span class="type">MMModemBand</span> **bands</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_bands</code></em>);
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerIpFamily"><span class="returnvalue">MMBearerIpFamily</span></a> <a class="link" href="MMModem.html#mm-modem-get-supported-ip-families" title="mm_modem_get_supported_ip_families ()">mm_modem_get_supported_ip_families</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);
+<span class="returnvalue">MMBearerIpFamily</span> <a class="link" href="MMModem.html#mm-modem-get-supported-ip-families" title="mm_modem_get_supported_ip_families ()">mm_modem_get_supported_ip_families</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="MMModem.html#mm-modem-get-signal-quality" title="mm_modem_get_signal_quality ()">mm_modem_get_signal_quality</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *recent</code></em>);
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemAccessTechnology"><span class="returnvalue">MMModemAccessTechnology</span></a> <a class="link" href="MMModem.html#mm-modem-get-access-technologies" title="mm_modem_get_access_technologies ()">mm_modem_get_access_technologies</a>
+<span class="returnvalue">MMModemAccessTechnology</span> <a class="link" href="MMModem.html#mm-modem-get-access-technologies" title="mm_modem_get_access_technologies ()">mm_modem_get_access_technologies</a>
(<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMModem.html#mm-modem-get-sim-path" title="mm_modem_get_sim_path ()">mm_modem_get_sim_path</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);
@@ -151,7 +153,7 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
<span class="returnvalue">void</span> <a class="link" href="MMModem.html#mm-modem-set-power-state" title="mm_modem_set_power_state ()">mm_modem_set_power_state</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemPowerState"><span class="type">MMModemPowerState</span></a> state</code></em>,
+ <em class="parameter"><code><span class="type">MMModemPowerState</span> state</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
@@ -159,12 +161,12 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMModem.html#mm-modem-set-power-state-sync" title="mm_modem_set_power_state_sync ()">mm_modem_set_power_state_sync</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemPowerState"><span class="type">MMModemPowerState</span></a> state</code></em>,
+ <em class="parameter"><code><span class="type">MMModemPowerState</span> state</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
<span class="returnvalue">void</span> <a class="link" href="MMModem.html#mm-modem-set-current-modes" title="mm_modem_set_current_modes ()">mm_modem_set_current_modes</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemMode"><span class="type">MMModemMode</span></a> modes</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemMode"><span class="type">MMModemMode</span></a> preferred</code></em>,
+ <em class="parameter"><code><span class="type">MMModemMode</span> modes</code></em>,
+ <em class="parameter"><code><span class="type">MMModemMode</span> preferred</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
@@ -172,12 +174,12 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMModem.html#mm-modem-set-current-modes-sync" title="mm_modem_set_current_modes_sync ()">mm_modem_set_current_modes_sync</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemMode"><span class="type">MMModemMode</span></a> modes</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemMode"><span class="type">MMModemMode</span></a> preferred</code></em>,
+ <em class="parameter"><code><span class="type">MMModemMode</span> modes</code></em>,
+ <em class="parameter"><code><span class="type">MMModemMode</span> preferred</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
<span class="returnvalue">void</span> <a class="link" href="MMModem.html#mm-modem-set-current-bands" title="mm_modem_set_current_bands ()">mm_modem_set_current_bands</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemBand"><span class="type">MMModemBand</span></a> *bands</code></em>,
+ <em class="parameter"><code>const <span class="type">MMModemBand</span> *bands</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_bands</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
@@ -186,12 +188,12 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMModem.html#mm-modem-set-current-bands-sync" title="mm_modem_set_current_bands_sync ()">mm_modem_set_current_bands_sync</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemBand"><span class="type">MMModemBand</span></a> *bands</code></em>,
+ <em class="parameter"><code>const <span class="type">MMModemBand</span> *bands</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_bands</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
<span class="returnvalue">void</span> <a class="link" href="MMModem.html#mm-modem-set-current-capabilities" title="mm_modem_set_current_capabilities ()">mm_modem_set_current_capabilities</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCapability"><span class="type">MMModemCapability</span></a> capabilities</code></em>,
+ <em class="parameter"><code><span class="type">MMModemCapability</span> capabilities</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
@@ -201,7 +203,7 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMModem.html#mm-modem-set-current-capabilities-sync" title="mm_modem_set_current_capabilities_sync ()">mm_modem_set_current_capabilities_sync</a>
(<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCapability"><span class="type">MMModemCapability</span></a> capabilities</code></em>,
+ <em class="parameter"><code><span class="type">MMModemCapability</span> capabilities</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
<span class="returnvalue">void</span> <a class="link" href="MMModem.html#mm-modem-reset" title="mm_modem_reset ()">mm_modem_reset</a> (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
@@ -276,7 +278,7 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="MMModem.html#mm-modem-port-info-array-free" title="mm_modem_port_info_array_free ()">mm_modem_port_info_array_free</a> (<em class="parameter"><code><a class="link" href="MMModem.html#MMModemPortInfo" title="MMModemPortInfo"><span class="type">MMModemPortInfo</span></a> *array</code></em>,
+<span class="returnvalue">void</span> <a class="link" href="MMModem.html#mm-modem-port-info-array-free" title="mm_modem_port_info_array_free ()">mm_modem_port_info_array_free</a> (<em class="parameter"><code><a class="link" href="MMModem.html#MMModemPortInfo" title="struct MMModemPortInfo"><span class="type">MMModemPortInfo</span></a> *array</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> array_size</code></em>);
</pre>
</div>
@@ -318,14 +320,14 @@ using the provided API.
</div>
<hr>
<div class="refsect2">
-<a name="MMModemModeCombination"></a><h3>MMModemModeCombination</h3>
-<pre class="programlisting">typedef struct {
+<a name="MMModemModeCombination"></a><h3>struct MMModemModeCombination</h3>
+<pre class="programlisting">struct MMModemModeCombination {
MMModemMode allowed;
MMModemMode preferred;
-} MMModemModeCombination;
+};
</pre>
<p>
-<a class="link" href="MMModem.html#MMModemModeCombination" title="MMModemModeCombination"><span class="type">MMModemModeCombination</span></a> is a simple struct holding a pair of <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemMode"><span class="type">MMModemMode</span></a> values.
+<a class="link" href="MMModem.html#MMModemModeCombination" title="struct MMModemModeCombination"><span class="type">MMModemModeCombination</span></a> is a simple struct holding a pair of <span class="type">MMModemMode</span> values.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -334,23 +336,23 @@ using the provided API.
</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemMode"><span class="type">MMModemMode</span></a> <em class="structfield"><code><a name="MMModemModeCombination.allowed"></a>allowed</code></em>;</span></p></td>
-<td>Mask of <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemMode"><span class="type">MMModemMode</span></a> values specifying allowed modes.</td>
+<td><p><span class="term"><span class="type">MMModemMode</span> <em class="structfield"><code><a name="MMModemModeCombination.allowed"></a>allowed</code></em>;</span></p></td>
+<td>Mask of <span class="type">MMModemMode</span> values specifying allowed modes.</td>
</tr>
<tr>
-<td><p><span class="term"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemMode"><span class="type">MMModemMode</span></a> <em class="structfield"><code><a name="MMModemModeCombination.preferred"></a>preferred</code></em>;</span></p></td>
-<td>A single <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemMode"><span class="type">MMModemMode</span></a> value specifying the preferred mode.</td>
+<td><p><span class="term"><span class="type">MMModemMode</span> <em class="structfield"><code><a name="MMModemModeCombination.preferred"></a>preferred</code></em>;</span></p></td>
+<td>A single <span class="type">MMModemMode</span> value specifying the preferred mode.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
-<a name="MMModemPortInfo"></a><h3>MMModemPortInfo</h3>
-<pre class="programlisting">typedef struct {
+<a name="MMModemPortInfo"></a><h3>struct MMModemPortInfo</h3>
+<pre class="programlisting">struct MMModemPortInfo {
gchar *name;
MMModemPortType type;
-} MMModemPortInfo;
+};
</pre>
<p>
Information of a given port.
@@ -366,8 +368,8 @@ Information of a given port.
<td>Name of the port.</td>
</tr>
<tr>
-<td><p><span class="term"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemPortType"><span class="type">MMModemPortType</span></a> <em class="structfield"><code><a name="MMModemPortInfo.type"></a>type</code></em>;</span></p></td>
-<td>A <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemPortType"><span class="type">MMModemPortType</span></a> value.</td>
+<td><p><span class="term"><span class="type">MMModemPortType</span> <em class="structfield"><code><a name="MMModemPortInfo.type"></a>type</code></em>;</span></p></td>
+<td>A <span class="type">MMModemPortType</span> value.</td>
</tr>
</tbody>
</table></div>
@@ -425,7 +427,7 @@ Gets a copy of the DBus path of the <a class="link" href="MMObject.html" title="
<hr>
<div class="refsect2">
<a name="mm-modem-get-state"></a><h3>mm_modem_get_state ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemState"><span class="returnvalue">MMModemState</span></a> mm_modem_get_state (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">MMModemState</span> mm_modem_get_state (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);</pre>
<p>
Gets the overall state of the <a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a>.
</p>
@@ -441,7 +443,7 @@ Gets the overall state of the <a class="link" href="MMModem.html" title="MMModem
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemState"><span class="type">MMModemState</span></a> value.</td>
+<td>A <span class="type">MMModemState</span> value.</td>
</tr>
</tbody>
</table></div>
@@ -449,10 +451,10 @@ Gets the overall state of the <a class="link" href="MMModem.html" title="MMModem
<hr>
<div class="refsect2">
<a name="mm-modem-get-state-failed-reason"></a><h3>mm_modem_get_state_failed_reason ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemStateFailedReason"><span class="returnvalue">MMModemStateFailedReason</span></a> mm_modem_get_state_failed_reason
+<pre class="programlisting"><span class="returnvalue">MMModemStateFailedReason</span> mm_modem_get_state_failed_reason
(<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);</pre>
<p>
-Gets the reason specifying why the modem is in <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-MODEM-STATE-FAILED:CAPS"><span class="type">MM_MODEM_STATE_FAILED</span></a> state.
+Gets the reason specifying why the modem is in <span class="type">MM_MODEM_STATE_FAILED</span> state.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -466,7 +468,7 @@ Gets the reason specifying why the modem is in <a href="/usr/share/gtk-doc/html/
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemStateFailedReason"><span class="type">MMModemStateFailedReason</span></a> value.</td>
+<td>A <span class="type">MMModemStateFailedReason</span> value.</td>
</tr>
</tbody>
</table></div>
@@ -474,7 +476,7 @@ Gets the reason specifying why the modem is in <a href="/usr/share/gtk-doc/html/
<hr>
<div class="refsect2">
<a name="mm-modem-get-power-state"></a><h3>mm_modem_get_power_state ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemPowerState"><span class="returnvalue">MMModemPowerState</span></a> mm_modem_get_power_state (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">MMModemPowerState</span> mm_modem_get_power_state (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);</pre>
<p>
Gets the power state of the <a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a>.
</p>
@@ -490,7 +492,7 @@ Gets the power state of the <a class="link" href="MMModem.html" title="MMModem">
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemPowerState"><span class="type">MMModemPowerState</span></a> value.</td>
+<td>A <span class="type">MMModemPowerState</span> value.</td>
</tr>
</tbody>
</table></div>
@@ -500,7 +502,7 @@ Gets the power state of the <a class="link" href="MMModem.html" title="MMModem">
<a name="mm-modem-peek-supported-capabilities"></a><h3>mm_modem_peek_supported_capabilities ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_modem_peek_supported_capabilities
(<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCapability"><span class="type">MMModemCapability</span></a> **capabilities</code></em>,
+ <em class="parameter"><code>const <span class="type">MMModemCapability</span> **capabilities</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_capabilities</code></em>);</pre>
<p>
Gets the list of combinations of generic families of access technologies supported by this <a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a>.
@@ -517,7 +519,7 @@ Gets the list of combinations of generic families of access technologies support
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>capabilities</code></em> :</span></p></td>
-<td>Return location for the array of <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCapability"><span class="type">MMModemCapability</span></a> values. Do not free the returned array, it is owned by <em class="parameter"><code>self</code></em>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_capabilities]</span>
+<td>Return location for the array of <span class="type">MMModemCapability</span> values. Do not free the returned array, it is owned by <em class="parameter"><code>self</code></em>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_capabilities]</span>
</td>
</tr>
<tr>
@@ -537,7 +539,7 @@ Gets the list of combinations of generic families of access technologies support
<div class="refsect2">
<a name="mm-modem-get-supported-capabilities"></a><h3>mm_modem_get_supported_capabilities ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_modem_get_supported_capabilities (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCapability"><span class="type">MMModemCapability</span></a> **capabilities</code></em>,
+ <em class="parameter"><code><span class="type">MMModemCapability</span> **capabilities</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_capabilities</code></em>);</pre>
<p>
Gets the list of combinations of generic families of access technologies supported by this <a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a>.
@@ -554,7 +556,7 @@ Gets the list of combinations of generic families of access technologies support
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>capabilities</code></em> :</span></p></td>
-<td>Return location for the array of <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCapability"><span class="type">MMModemCapability</span></a> values. The returned array should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when no longer needed. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_capabilities]</span>
+<td>Return location for the array of <span class="type">MMModemCapability</span> values. The returned array should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when no longer needed. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_capabilities]</span>
</td>
</tr>
<tr>
@@ -573,7 +575,7 @@ Gets the list of combinations of generic families of access technologies support
<hr>
<div class="refsect2">
<a name="mm-modem-get-current-capabilities"></a><h3>mm_modem_get_current_capabilities ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCapability"><span class="returnvalue">MMModemCapability</span></a> mm_modem_get_current_capabilities (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">MMModemCapability</span> mm_modem_get_current_capabilities (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);</pre>
<p>
Gets the list of generic families of access technologies supported by this <a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a>
without a firmware reload or reinitialization.
@@ -590,7 +592,7 @@ without a firmware reload or reinitialization.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A bitmask of <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCapability"><span class="type">MMModemCapability</span></a> flags.</td>
+<td>A bitmask of <span class="type">MMModemCapability</span> flags.</td>
</tr>
</tbody>
</table></div>
@@ -955,7 +957,7 @@ Gets a copy of the name of the primary port controlling this <a class="link" hre
<div class="refsect2">
<a name="mm-modem-peek-ports"></a><h3>mm_modem_peek_ports ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_modem_peek_ports (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code>const <a class="link" href="MMModem.html#MMModemPortInfo" title="MMModemPortInfo"><span class="type">MMModemPortInfo</span></a> **ports</code></em>,
+ <em class="parameter"><code>const <a class="link" href="MMModem.html#MMModemPortInfo" title="struct MMModemPortInfo"><span class="type">MMModemPortInfo</span></a> **ports</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_ports</code></em>);</pre>
<p>
</p>
@@ -964,7 +966,7 @@ Gets a copy of the name of the primary port controlling this <a class="link" hre
<div class="refsect2">
<a name="mm-modem-get-ports"></a><h3>mm_modem_get_ports ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_modem_get_ports (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code><a class="link" href="MMModem.html#MMModemPortInfo" title="MMModemPortInfo"><span class="type">MMModemPortInfo</span></a> **ports</code></em>,
+ <em class="parameter"><code><a class="link" href="MMModem.html#MMModemPortInfo" title="struct MMModemPortInfo"><span class="type">MMModemPortInfo</span></a> **ports</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_ports</code></em>);</pre>
<p>
Gets the list of ports in the modem.
@@ -981,7 +983,7 @@ Gets the list of ports in the modem.
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>ports</code></em> :</span></p></td>
-<td>Return location for the array of <a class="link" href="MMModem.html#MMModemPortInfo" title="MMModemPortInfo"><span class="type">MMModemPortInfo</span></a> values. The returned array should be freed with <a class="link" href="MMModem.html#mm-modem-port-info-array-free" title="mm_modem_port_info_array_free ()"><code class="function">mm_modem_port_info_array_free()</code></a> when no longer needed. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_ports]</span>
+<td>Return location for the array of <a class="link" href="MMModem.html#MMModemPortInfo" title="struct MMModemPortInfo"><span class="type">MMModemPortInfo</span></a> values. The returned array should be freed with <a class="link" href="MMModem.html#mm-modem-port-info-array-free" title="mm_modem_port_info_array_free ()"><code class="function">mm_modem_port_info_array_free()</code></a> when no longer needed. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_ports]</span>
</td>
</tr>
<tr>
@@ -1209,7 +1211,7 @@ before unlocking the device via a PIN.
<hr>
<div class="refsect2">
<a name="mm-modem-get-unlock-required"></a><h3>mm_modem_get_unlock_required ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemLock"><span class="returnvalue">MMModemLock</span></a> mm_modem_get_unlock_required (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">MMModemLock</span> mm_modem_get_unlock_required (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);</pre>
<p>
Gets current lock state of the <a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a>.
</p>
@@ -1225,7 +1227,7 @@ Gets current lock state of the <a class="link" href="MMModem.html" title="MMMode
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemLock"><span class="type">MMModemLock</span></a> value, specifying the current lock state.</td>
+<td>A <span class="type">MMModemLock</span> value, specifying the current lock state.</td>
</tr>
</tbody>
</table></div>
@@ -1236,7 +1238,7 @@ Gets current lock state of the <a class="link" href="MMModem.html" title="MMMode
<pre class="programlisting"><a class="link" href="MMUnlockRetries.html" title="MMUnlockRetries"><span class="returnvalue">MMUnlockRetries</span></a> * mm_modem_peek_unlock_retries (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);</pre>
<p>
Gets a <a class="link" href="MMUnlockRetries.html" title="MMUnlockRetries"><span class="type">MMUnlockRetries</span></a> object, which provides, for each
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemLock">MMModemLock</a> handled by the modem, the
+MMModemLock handled by the modem, the
number of PIN tries remaining before the code becomes blocked (requiring a PUK)
or permanently blocked.
</p>
@@ -1261,7 +1263,8 @@ thread.</div>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer none) A <a class="link" href="MMUnlockRetries.html" title="MMUnlockRetries"><span class="type">MMUnlockRetries</span></a>. Do not free the returned value, it belongs to <em class="parameter"><code>self</code></em>.</td>
+<td>A <a class="link" href="MMUnlockRetries.html" title="MMUnlockRetries"><span class="type">MMUnlockRetries</span></a>. Do not free the returned value, it belongs to <em class="parameter"><code>self</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
</tr>
</tbody>
</table></div>
@@ -1272,7 +1275,7 @@ thread.</div>
<pre class="programlisting"><a class="link" href="MMUnlockRetries.html" title="MMUnlockRetries"><span class="returnvalue">MMUnlockRetries</span></a> * mm_modem_get_unlock_retries (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);</pre>
<p>
Gets a <a class="link" href="MMUnlockRetries.html" title="MMUnlockRetries"><span class="type">MMUnlockRetries</span></a> object, which provides, for each
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemLock">MMModemLock</a> handled by the modem, the
+MMModemLock handled by the modem, the
number of PIN tries remaining before the code becomes blocked (requiring a PUK)
or permanently blocked.
</p>
@@ -1297,7 +1300,8 @@ new values.</div>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer full) A <a class="link" href="MMUnlockRetries.html" title="MMUnlockRetries"><span class="type">MMUnlockRetries</span></a> that must be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if unknown.</td>
+<td>A <a class="link" href="MMUnlockRetries.html" title="MMUnlockRetries"><span class="type">MMUnlockRetries</span></a> that must be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if unknown. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
</tr>
</tbody>
</table></div>
@@ -1365,6 +1369,65 @@ at least two active bearers.
</div>
<hr>
<div class="refsect2">
+<a name="mm-modem-get-bearer-paths"></a><h3>mm_modem_get_bearer_paths ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * const * mm_modem_get_bearer_paths (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);</pre>
+<p>
+Gets the DBus paths of the <a class="link" href="MMBearer.html" title="MMBearer"><span class="type">MMBearer</span></a> handled in this <a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a>.
+</p>
+<p>
+</p>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>The returned value is only valid until the property changes so
+it is only safe to use this function on the thread where
+<em class="parameter"><code>self</code></em> was constructed. Use <a class="link" href="MMModem.html#mm-modem-dup-bearer-paths" title="mm_modem_dup_bearer_paths ()"><code class="function">mm_modem_dup_bearer_paths()</code></a> if on another
+thread.</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The DBus paths of the <a class="link" href="MMBearer.html" title="MMBearer"><span class="type">MMBearer</span></a> handled in this <a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none available. Do not free the returned value, it belongs to <em class="parameter"><code>self</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-dup-bearer-paths"></a><h3>mm_modem_dup_bearer_paths ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> ** mm_modem_dup_bearer_paths (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);</pre>
+<p>
+Gets a copy of the DBus paths of the <a class="link" href="MMBearer.html" title="MMBearer"><span class="type">MMBearer</span></a> handled in this <a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The DBus paths of the <a class="link" href="MMBearer.html" title="MMBearer"><span class="type">MMBearer</span></a> handled in this <a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none available. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-String-Utility-Functions.html#g-strfreev"><code class="function">g_strfreev()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
<a name="mm-modem-get-own-numbers"></a><h3>mm_modem_get_own_numbers ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *const * mm_modem_get_own_numbers (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);</pre>
<p>
@@ -1428,7 +1491,7 @@ handled by this modem.
<div class="refsect2">
<a name="mm-modem-peek-supported-modes"></a><h3>mm_modem_peek_supported_modes ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_modem_peek_supported_modes (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code>const <a class="link" href="MMModem.html#MMModemModeCombination" title="MMModemModeCombination"><span class="type">MMModemModeCombination</span></a> **modes</code></em>,
+ <em class="parameter"><code>const <a class="link" href="MMModem.html#MMModemModeCombination" title="struct MMModemModeCombination"><span class="type">MMModemModeCombination</span></a> **modes</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_modes</code></em>);</pre>
<p>
Gets the list of supported mode combinations.
@@ -1445,7 +1508,7 @@ Gets the list of supported mode combinations.
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>modes</code></em> :</span></p></td>
-<td>Return location for the array of <a class="link" href="MMModem.html#MMModemModeCombination" title="MMModemModeCombination"><span class="type">MMModemModeCombination</span></a> values. Do not free the returned array, it is owned by <em class="parameter"><code>self</code></em>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_modes]</span>
+<td>Return location for the array of <a class="link" href="MMModem.html#MMModemModeCombination" title="struct MMModemModeCombination"><span class="type">MMModemModeCombination</span></a> values. Do not free the returned array, it is owned by <em class="parameter"><code>self</code></em>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_modes]</span>
</td>
</tr>
<tr>
@@ -1465,7 +1528,7 @@ Gets the list of supported mode combinations.
<div class="refsect2">
<a name="mm-modem-get-supported-modes"></a><h3>mm_modem_get_supported_modes ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_modem_get_supported_modes (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code><a class="link" href="MMModem.html#MMModemModeCombination" title="MMModemModeCombination"><span class="type">MMModemModeCombination</span></a> **modes</code></em>,
+ <em class="parameter"><code><a class="link" href="MMModem.html#MMModemModeCombination" title="struct MMModemModeCombination"><span class="type">MMModemModeCombination</span></a> **modes</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_modes</code></em>);</pre>
<p>
Gets the list of supported mode combinations.
@@ -1482,7 +1545,7 @@ Gets the list of supported mode combinations.
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>modes</code></em> :</span></p></td>
-<td>Return location for the array of <a class="link" href="MMModem.html#MMModemModeCombination" title="MMModemModeCombination"><span class="type">MMModemModeCombination</span></a> structs. The returned array should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when no longer needed. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_modes]</span>
+<td>Return location for the array of <a class="link" href="MMModem.html#MMModemModeCombination" title="struct MMModemModeCombination"><span class="type">MMModemModeCombination</span></a> structs. The returned array should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when no longer needed. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_modes]</span>
</td>
</tr>
<tr>
@@ -1502,8 +1565,8 @@ Gets the list of supported mode combinations.
<div class="refsect2">
<a name="mm-modem-get-current-modes"></a><h3>mm_modem_get_current_modes ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_modem_get_current_modes (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemMode"><span class="type">MMModemMode</span></a> *allowed</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemMode"><span class="type">MMModemMode</span></a> *preferred</code></em>);</pre>
+ <em class="parameter"><code><span class="type">MMModemMode</span> *allowed</code></em>,
+ <em class="parameter"><code><span class="type">MMModemMode</span> *preferred</code></em>);</pre>
<p>
Gets the list of modes specifying the access technologies (eg 2G/3G/4G)
the <a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> is currently allowed to use when connecting to a network, as
@@ -1521,12 +1584,12 @@ well as the preferred one, if any.
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>allowed</code></em> :</span></p></td>
-<td>Return location for a bitmask of <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemMode"><span class="type">MMModemMode</span></a> values. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Return location for a bitmask of <span class="type">MMModemMode</span> values. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>preferred</code></em> :</span></p></td>
-<td>Return location for a <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemMode"><span class="type">MMModemMode</span></a> value. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Return location for a <span class="type">MMModemMode</span> value. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
</td>
</tr>
<tr>
@@ -1541,13 +1604,13 @@ well as the preferred one, if any.
<div class="refsect2">
<a name="mm-modem-peek-supported-bands"></a><h3>mm_modem_peek_supported_bands ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_modem_peek_supported_bands (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemBand"><span class="type">MMModemBand</span></a> **bands</code></em>,
+ <em class="parameter"><code>const <span class="type">MMModemBand</span> **bands</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_bands</code></em>);</pre>
<p>
Gets the list of radio frequency and technology bands supported by the <a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a>.
</p>
<p>
-For POTS devices, only <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-MODEM-BAND-ANY:CAPS"><span class="type">MM_MODEM_BAND_ANY</span></a> will be returned in <em class="parameter"><code>bands</code></em>.
+For POTS devices, only <span class="type">MM_MODEM_BAND_ANY</span> will be returned in <em class="parameter"><code>bands</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -1561,7 +1624,7 @@ For POTS devices, only <a href="/usr/share/gtk-doc/html/ModemManager/ModemManage
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>bands</code></em> :</span></p></td>
-<td>Return location for the array of <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemBand"><span class="type">MMModemBand</span></a> values. Do not free the returned array, it is owned by <em class="parameter"><code>self</code></em>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_bands]</span>
+<td>Return location for the array of <span class="type">MMModemBand</span> values. Do not free the returned array, it is owned by <em class="parameter"><code>self</code></em>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_bands]</span>
</td>
</tr>
<tr>
@@ -1581,13 +1644,13 @@ For POTS devices, only <a href="/usr/share/gtk-doc/html/ModemManager/ModemManage
<div class="refsect2">
<a name="mm-modem-get-supported-bands"></a><h3>mm_modem_get_supported_bands ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_modem_get_supported_bands (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemBand"><span class="type">MMModemBand</span></a> **bands</code></em>,
+ <em class="parameter"><code><span class="type">MMModemBand</span> **bands</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_bands</code></em>);</pre>
<p>
Gets the list of radio frequency and technology bands supported by the <a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a>.
</p>
<p>
-For POTS devices, only <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-MODEM-BAND-ANY:CAPS"><span class="type">MM_MODEM_BAND_ANY</span></a> will be returned in <em class="parameter"><code>bands</code></em>.
+For POTS devices, only <span class="type">MM_MODEM_BAND_ANY</span> will be returned in <em class="parameter"><code>bands</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -1601,7 +1664,7 @@ For POTS devices, only <a href="/usr/share/gtk-doc/html/ModemManager/ModemManage
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>bands</code></em> :</span></p></td>
-<td>Return location for the array of <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemBand"><span class="type">MMModemBand</span></a> values. The returned array should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when no longer needed. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_bands]</span>
+<td>Return location for the array of <span class="type">MMModemBand</span> values. The returned array should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when no longer needed. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_bands]</span>
</td>
</tr>
<tr>
@@ -1621,14 +1684,14 @@ For POTS devices, only <a href="/usr/share/gtk-doc/html/ModemManager/ModemManage
<div class="refsect2">
<a name="mm-modem-peek-current-bands"></a><h3>mm_modem_peek_current_bands ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_modem_peek_current_bands (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemBand"><span class="type">MMModemBand</span></a> **bands</code></em>,
+ <em class="parameter"><code>const <span class="type">MMModemBand</span> **bands</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_bands</code></em>);</pre>
<p>
Gets the list of radio frequency and technology bands the <a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> is currently
using when connecting to a network.
</p>
<p>
-For POTS devices, only the <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-MODEM-BAND-ANY:CAPS"><span class="type">MM_MODEM_BAND_ANY</span></a> band is supported.
+For POTS devices, only the <span class="type">MM_MODEM_BAND_ANY</span> band is supported.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -1642,7 +1705,7 @@ For POTS devices, only the <a href="/usr/share/gtk-doc/html/ModemManager/ModemMa
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>bands</code></em> :</span></p></td>
-<td>Return location for the array of <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemBand"><span class="type">MMModemBand</span></a> values. Do not free the returned value, it is owned by <em class="parameter"><code>self</code></em>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_storages]</span>
+<td>Return location for the array of <span class="type">MMModemBand</span> values. Do not free the returned value, it is owned by <em class="parameter"><code>self</code></em>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_bands]</span>
</td>
</tr>
<tr>
@@ -1662,14 +1725,14 @@ For POTS devices, only the <a href="/usr/share/gtk-doc/html/ModemManager/ModemMa
<div class="refsect2">
<a name="mm-modem-get-current-bands"></a><h3>mm_modem_get_current_bands ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_modem_get_current_bands (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemBand"><span class="type">MMModemBand</span></a> **bands</code></em>,
+ <em class="parameter"><code><span class="type">MMModemBand</span> **bands</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_bands</code></em>);</pre>
<p>
Gets the list of radio frequency and technology bands the <a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> is currently
using when connecting to a network.
</p>
<p>
-For POTS devices, only the <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-MODEM-BAND-ANY:CAPS"><span class="type">MM_MODEM_BAND_ANY</span></a> band is supported.
+For POTS devices, only the <span class="type">MM_MODEM_BAND_ANY</span> band is supported.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -1683,7 +1746,7 @@ For POTS devices, only the <a href="/usr/share/gtk-doc/html/ModemManager/ModemMa
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>bands</code></em> :</span></p></td>
-<td>Return location for the array of <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemBand"><span class="type">MMModemBand</span></a> values. The returned array should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when no longer needed. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_bands]</span>
+<td>Return location for the array of <span class="type">MMModemBand</span> values. The returned array should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when no longer needed. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_bands]</span>
</td>
</tr>
<tr>
@@ -1702,7 +1765,7 @@ For POTS devices, only the <a href="/usr/share/gtk-doc/html/ModemManager/ModemMa
<hr>
<div class="refsect2">
<a name="mm-modem-get-supported-ip-families"></a><h3>mm_modem_get_supported_ip_families ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerIpFamily"><span class="returnvalue">MMBearerIpFamily</span></a> mm_modem_get_supported_ip_families (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">MMBearerIpFamily</span> mm_modem_get_supported_ip_families (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);</pre>
<p>
Gets the list of supported IP families.
</p>
@@ -1718,7 +1781,7 @@ Gets the list of supported IP families.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A bitmask of <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerIpFamily"><span class="type">MMBearerIpFamily</span></a> values.</td>
+<td>A bitmask of <span class="type">MMBearerIpFamily</span> values.</td>
</tr>
</tbody>
</table></div>
@@ -1760,7 +1823,7 @@ Always 0 for POTS devices.
<hr>
<div class="refsect2">
<a name="mm-modem-get-access-technologies"></a><h3>mm_modem_get_access_technologies ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemAccessTechnology"><span class="returnvalue">MMModemAccessTechnology</span></a> mm_modem_get_access_technologies
+<pre class="programlisting"><span class="returnvalue">MMModemAccessTechnology</span> mm_modem_get_access_technologies
(<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>);</pre>
<p>
</p>
@@ -1896,7 +1959,8 @@ Finishes an operation started with <a class="link" href="MMModem.html#mm-modem-g
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a class="link" href="MMSim.html" title="MMSim"><span class="type">MMSim</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if none available. The returned value should be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>.</td>
+<td>a <a class="link" href="MMSim.html" title="MMSim"><span class="type">MMSim</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if none available. The returned value should be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
</tr>
</tbody>
</table></div>
@@ -1935,7 +1999,8 @@ for the asynchronous version of this method.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a class="link" href="MMSim.html" title="MMSim"><span class="type">MMSim</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if none available. The returned value should be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>.</td>
+<td>a <a class="link" href="MMSim.html" title="MMSim"><span class="type">MMSim</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if none available. The returned value should be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
</tr>
</tbody>
</table></div>
@@ -2186,13 +2251,13 @@ for the asynchronous version of this method.
<div class="refsect2">
<a name="mm-modem-set-power-state"></a><h3>mm_modem_set_power_state ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> mm_modem_set_power_state (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemPowerState"><span class="type">MMModemPowerState</span></a> state</code></em>,
+ <em class="parameter"><code><span class="type">MMModemPowerState</span> state</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
Asynchronously sets the power state of the device. This method can only be
-used while the modem is in <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-MODEM-STATE-DISABLED:CAPS"><code class="literal">MM_MODEM_STATE_DISABLED</code></a> state.
+used while the modem is in <code class="literal">MM_MODEM_STATE_DISABLED</code> state.
</p>
<p>
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
@@ -2213,7 +2278,7 @@ See <a class="link" href="MMModem.html#mm-modem-set-power-state-sync" title="mm_
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
-<td>Either <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-MODEM-POWER-STATE-LOW:CAPS"><code class="literal">MM_MODEM_POWER_STATE_LOW</code></a> or <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-MODEM-POWER-STATE-ON:CAPS"><code class="literal">MM_MODEM_POWER_STATE_ON</code></a>. Every other <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemPowerState"><span class="type">MMModemPowerState</span></a> value is not allowed.</td>
+<td>Either <code class="literal">MM_MODEM_POWER_STATE_LOW</code> or <code class="literal">MM_MODEM_POWER_STATE_ON</code>. Every other <span class="type">MMModemPowerState</span> value is not allowed.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
@@ -2270,12 +2335,12 @@ Finishes an operation started with <a class="link" href="MMModem.html#mm-modem-s
<div class="refsect2">
<a name="mm-modem-set-power-state-sync"></a><h3>mm_modem_set_power_state_sync ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_modem_set_power_state_sync (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemPowerState"><span class="type">MMModemPowerState</span></a> state</code></em>,
+ <em class="parameter"><code><span class="type">MMModemPowerState</span> state</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
Synchronously sets the power state of the device. This method can only be
-used while the modem is in <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-MODEM-STATE-DISABLED:CAPS"><code class="literal">MM_MODEM_STATE_DISABLED</code></a> state.
+used while the modem is in <code class="literal">MM_MODEM_STATE_DISABLED</code> state.
</p>
<p>
The calling thread is blocked until a reply is received. See <a class="link" href="MMModem.html#mm-modem-set-power-state" title="mm_modem_set_power_state ()"><code class="function">mm_modem_set_power_state()</code></a>
@@ -2293,7 +2358,7 @@ for the asynchronous version of this method.
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
-<td>Either <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-MODEM-POWER-STATE-LOW:CAPS"><code class="literal">MM_MODEM_POWER_STATE_LOW</code></a> or <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-MODEM-POWER-STATE-ON:CAPS"><code class="literal">MM_MODEM_POWER_STATE_ON</code></a>. Every other <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemPowerState"><span class="type">MMModemPowerState</span></a> value is not allowed.</td>
+<td>Either <code class="literal">MM_MODEM_POWER_STATE_LOW</code> or <code class="literal">MM_MODEM_POWER_STATE_ON</code>. Every other <span class="type">MMModemPowerState</span> value is not allowed.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
@@ -2316,8 +2381,8 @@ for the asynchronous version of this method.
<div class="refsect2">
<a name="mm-modem-set-current-modes"></a><h3>mm_modem_set_current_modes ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> mm_modem_set_current_modes (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemMode"><span class="type">MMModemMode</span></a> modes</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemMode"><span class="type">MMModemMode</span></a> preferred</code></em>,
+ <em class="parameter"><code><span class="type">MMModemMode</span> modes</code></em>,
+ <em class="parameter"><code><span class="type">MMModemMode</span> preferred</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
@@ -2344,11 +2409,11 @@ See <a class="link" href="MMModem.html#mm-modem-set-current-modes-sync" title="m
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>modes</code></em> :</span></p></td>
-<td>Mask of <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemMode"><span class="type">MMModemMode</span></a> values specifying which modes are allowed.</td>
+<td>Mask of <span class="type">MMModemMode</span> values specifying which modes are allowed.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>preferred</code></em> :</span></p></td>
-<td>A <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemMode"><span class="type">MMModemMode</span></a> value specifying which of the modes given in <em class="parameter"><code>modes</code></em> is the preferred one, or <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-MODEM-MODE-NONE:CAPS"><span class="type">MM_MODEM_MODE_NONE</span></a> if none.</td>
+<td>A <span class="type">MMModemMode</span> value specifying which of the modes given in <em class="parameter"><code>modes</code></em> is the preferred one, or <span class="type">MM_MODEM_MODE_NONE</span> if none.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
@@ -2405,8 +2470,8 @@ Finishes an operation started with <a class="link" href="MMModem.html#mm-modem-s
<div class="refsect2">
<a name="mm-modem-set-current-modes-sync"></a><h3>mm_modem_set_current_modes_sync ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_modem_set_current_modes_sync (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemMode"><span class="type">MMModemMode</span></a> modes</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemMode"><span class="type">MMModemMode</span></a> preferred</code></em>,
+ <em class="parameter"><code><span class="type">MMModemMode</span> modes</code></em>,
+ <em class="parameter"><code><span class="type">MMModemMode</span> preferred</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
@@ -2429,11 +2494,11 @@ for the asynchronous version of this method.
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>modes</code></em> :</span></p></td>
-<td>Mask of <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemMode"><span class="type">MMModemMode</span></a> values specifying which modes are allowed.</td>
+<td>Mask of <span class="type">MMModemMode</span> values specifying which modes are allowed.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>preferred</code></em> :</span></p></td>
-<td>A <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemMode"><span class="type">MMModemMode</span></a> value specifying which of the modes given in <em class="parameter"><code>modes</code></em> is the preferred one, or <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-MODEM-MODE-NONE:CAPS"><span class="type">MM_MODEM_MODE_NONE</span></a> if none.</td>
+<td>A <span class="type">MMModemMode</span> value specifying which of the modes given in <em class="parameter"><code>modes</code></em> is the preferred one, or <span class="type">MM_MODEM_MODE_NONE</span> if none.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
@@ -2456,7 +2521,7 @@ for the asynchronous version of this method.
<div class="refsect2">
<a name="mm-modem-set-current-bands"></a><h3>mm_modem_set_current_bands ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> mm_modem_set_current_bands (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemBand"><span class="type">MMModemBand</span></a> *bands</code></em>,
+ <em class="parameter"><code>const <span class="type">MMModemBand</span> *bands</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_bands</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
@@ -2484,7 +2549,7 @@ See <a class="link" href="MMModem.html#mm-modem-set-current-bands-sync" title="m
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>bands</code></em> :</span></p></td>
-<td>An array of <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemBand"><span class="type">MMModemBand</span></a> values specifying which bands are allowed.</td>
+<td>An array of <span class="type">MMModemBand</span> values specifying which bands are allowed.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>n_bands</code></em> :</span></p></td>
@@ -2545,7 +2610,7 @@ Finishes an operation started with <a class="link" href="MMModem.html#mm-modem-s
<div class="refsect2">
<a name="mm-modem-set-current-bands-sync"></a><h3>mm_modem_set_current_bands_sync ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_modem_set_current_bands_sync (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemBand"><span class="type">MMModemBand</span></a> *bands</code></em>,
+ <em class="parameter"><code>const <span class="type">MMModemBand</span> *bands</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_bands</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
@@ -2569,7 +2634,7 @@ for the asynchronous version of this method.
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>bands</code></em> :</span></p></td>
-<td>An array of <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemBand"><span class="type">MMModemBand</span></a> values specifying which bands are allowed.</td>
+<td>An array of <span class="type">MMModemBand</span> values specifying which bands are allowed.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>n_bands</code></em> :</span></p></td>
@@ -2596,7 +2661,7 @@ for the asynchronous version of this method.
<div class="refsect2">
<a name="mm-modem-set-current-capabilities"></a><h3>mm_modem_set_current_capabilities ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> mm_modem_set_current_capabilities (<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCapability"><span class="type">MMModemCapability</span></a> capabilities</code></em>,
+ <em class="parameter"><code><span class="type">MMModemCapability</span> capabilities</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
@@ -2622,7 +2687,7 @@ See <a class="link" href="MMModem.html#mm-modem-set-current-capabilities-sync" t
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>capabilities</code></em> :</span></p></td>
-<td>A <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCapability"><span class="type">MMModemCapability</span></a> mask.</td>
+<td>A <span class="type">MMModemCapability</span> mask.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
@@ -2681,7 +2746,7 @@ Finishes an operation started with <a class="link" href="MMModem.html#mm-modem-s
<a name="mm-modem-set-current-capabilities-sync"></a><h3>mm_modem_set_current_capabilities_sync ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_modem_set_current_capabilities_sync
(<em class="parameter"><code><a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCapability"><span class="type">MMModemCapability</span></a> capabilities</code></em>,
+ <em class="parameter"><code><span class="type">MMModemCapability</span> capabilities</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
@@ -2703,7 +2768,7 @@ for the asynchronous version of this method.
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>capabilities</code></em> :</span></p></td>
-<td>A <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCapability"><span class="type">MMModemCapability</span></a> mask.</td>
+<td>A <span class="type">MMModemCapability</span> mask.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
@@ -3044,7 +3109,7 @@ Finishes an operation started with <a class="link" href="MMModem.html#mm-modem-l
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The list of <a class="link" href="MMBearer.html" title="MMBearer"><span class="type">MMBearer</span></a> objects, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if either none found or if <em class="parameter"><code>error</code></em> is set. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+<td>The list of <a class="link" href="MMBearer.html" title="MMBearer"><span class="type">MMBearer</span></a> objects, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if either none found or if <em class="parameter"><code>error</code></em> is set. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> ModemManager.Modem]</span>
</td>
</tr>
</tbody>
@@ -3084,7 +3149,7 @@ for the asynchronous version of this method.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The list of <a class="link" href="MMBearer.html" title="MMBearer"><span class="type">MMBearer</span></a> objects, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if either none found or if <em class="parameter"><code>error</code></em> is set. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+<td>The list of <a class="link" href="MMBearer.html" title="MMBearer"><span class="type">MMBearer</span></a> objects, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if either none found or if <em class="parameter"><code>error</code></em> is set. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> ModemManager.Modem]</span>
</td>
</tr>
</tbody>
@@ -3106,7 +3171,7 @@ This request may fail if the modem does not support additional bearers,
if too many bearers are already defined, or if <em class="parameter"><code>properties</code></em> are invalid.
</p>
<p>
-See <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.CreateBearer">CreateBearer</a> to check which properties may be passed.
+See CreateBearer to check which properties may be passed.
</p>
<p>
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
@@ -3195,7 +3260,7 @@ This request may fail if the modem does not support additional bearers,
if too many bearers are already defined, or if <em class="parameter"><code>properties</code></em> are invalid.
</p>
<p>
-See <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.CreateBearer">CreateBearer</a> to check which properties may be passed.
+See CreateBearer to check which properties may be passed.
</p>
<p>
The calling thread is blocked until a reply is received. See <a class="link" href="MMModem.html#mm-modem-create-bearer" title="mm_modem_create_bearer ()"><code class="function">mm_modem_create_bearer()</code></a>
@@ -3442,7 +3507,8 @@ Finishes an operation started with <a class="link" href="MMModem.html#mm-modem-c
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer full) A newly allocated string with the reply to the command, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if <em class="parameter"><code>error</code></em> is set. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>.</td>
+<td>A newly allocated string with the reply to the command, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if <em class="parameter"><code>error</code></em> is set. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
</tr>
</tbody>
</table></div>
@@ -3491,7 +3557,8 @@ for the asynchronous version of this method.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer full) A newly allocated string with the reply to the command, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if <em class="parameter"><code>error</code></em> is set. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>.</td>
+<td>A newly allocated string with the reply to the command, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if <em class="parameter"><code>error</code></em> is set. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
</tr>
</tbody>
</table></div>
@@ -3499,10 +3566,10 @@ for the asynchronous version of this method.
<hr>
<div class="refsect2">
<a name="mm-modem-port-info-array-free"></a><h3>mm_modem_port_info_array_free ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> mm_modem_port_info_array_free (<em class="parameter"><code><a class="link" href="MMModem.html#MMModemPortInfo" title="MMModemPortInfo"><span class="type">MMModemPortInfo</span></a> *array</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span> mm_modem_port_info_array_free (<em class="parameter"><code><a class="link" href="MMModem.html#MMModemPortInfo" title="struct MMModemPortInfo"><span class="type">MMModemPortInfo</span></a> *array</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> array_size</code></em>);</pre>
<p>
-Frees an array of <a class="link" href="MMModem.html#MMModemPortInfo" title="MMModemPortInfo"><span class="type">MMModemPortInfo</span></a> values.
+Frees an array of <a class="link" href="MMModem.html#MMModemPortInfo" title="struct MMModemPortInfo"><span class="type">MMModemPortInfo</span></a> values.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -3512,7 +3579,7 @@ Frees an array of <a class="link" href="MMModem.html#MMModemPortInfo" title="MMM
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
-<td>an array of <a class="link" href="MMModem.html#MMModemPortInfo" title="MMModemPortInfo"><span class="type">MMModemPortInfo</span></a> values.</td>
+<td>an array of <a class="link" href="MMModem.html#MMModemPortInfo" title="struct MMModemPortInfo"><span class="type">MMModemPortInfo</span></a> values.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>array_size</code></em> :</span></p></td>
@@ -3525,6 +3592,6 @@ Frees an array of <a class="link" href="MMModem.html#MMModemPortInfo" title="MMM
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MMModem3gpp.html b/docs/reference/libmm-glib/html/MMModem3gpp.html
index 2c43a9e..c712ffc 100644
--- a/docs/reference/libmm-glib/html/MMModem3gpp.html
+++ b/docs/reference/libmm-glib/html/MMModem3gpp.html
@@ -5,17 +5,17 @@
<title>MMModem3gpp</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="libmm-glib Reference Manual">
-<link rel="up" href="ch03.html#idm211869297872" title="Generic interfaces">
+<link rel="up" href="ch03.html#id-1.2.4.3" title="Generic interfaces">
<link rel="prev" href="MMModem.html" title="MMModem">
<link rel="next" href="MMModem3gppUssd.html" title="MMModem3gppUssd">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="MMModem.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch03.html#idm211869297872"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch03.html#id-1.2.4.3"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">libmm-glib Reference Manual</th>
<td><a accesskey="n" href="MMModem3gppUssd.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
@@ -50,9 +50,9 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
(<em class="parameter"><code>const <a class="link" href="MMModem3gpp.html#MMModem3gppNetwork" title="MMModem3gppNetwork"><span class="type">MMModem3gppNetwork</span></a> *network</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMModem3gpp.html#mm-modem-3gpp-network-get-operator-long" title="mm_modem_3gpp_network_get_operator_long ()">mm_modem_3gpp_network_get_operator_long</a>
(<em class="parameter"><code>const <a class="link" href="MMModem3gpp.html#MMModem3gppNetwork" title="MMModem3gppNetwork"><span class="type">MMModem3gppNetwork</span></a> *network</code></em>);
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemAccessTechnology"><span class="returnvalue">MMModemAccessTechnology</span></a> <a class="link" href="MMModem3gpp.html#mm-modem-3gpp-network-get-access-technology" title="mm_modem_3gpp_network_get_access_technology ()">mm_modem_3gpp_network_get_access_technology</a>
+<span class="returnvalue">MMModemAccessTechnology</span> <a class="link" href="MMModem3gpp.html#mm-modem-3gpp-network-get-access-technology" title="mm_modem_3gpp_network_get_access_technology ()">mm_modem_3gpp_network_get_access_technology</a>
(<em class="parameter"><code>const <a class="link" href="MMModem3gpp.html#MMModem3gppNetwork" title="MMModem3gppNetwork"><span class="type">MMModem3gppNetwork</span></a> *network</code></em>);
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModem3gppNetworkAvailability"><span class="returnvalue">MMModem3gppNetworkAvailability</span></a> <a class="link" href="MMModem3gpp.html#mm-modem-3gpp-network-get-availability" title="mm_modem_3gpp_network_get_availability ()">mm_modem_3gpp_network_get_availability</a>
+<span class="returnvalue">MMModem3gppNetworkAvailability</span> <a class="link" href="MMModem3gpp.html#mm-modem-3gpp-network-get-availability" title="mm_modem_3gpp_network_get_availability ()">mm_modem_3gpp_network_get_availability</a>
(<em class="parameter"><code>const <a class="link" href="MMModem3gpp.html#MMModem3gppNetwork" title="MMModem3gppNetwork"><span class="type">MMModem3gppNetwork</span></a> *network</code></em>);
<span class="returnvalue">void</span> <a class="link" href="MMModem3gpp.html#mm-modem-3gpp-network-free" title="mm_modem_3gpp_network_free ()">mm_modem_3gpp_network_free</a> (<em class="parameter"><code><a class="link" href="MMModem3gpp.html#MMModem3gppNetwork" title="MMModem3gppNetwork"><span class="type">MMModem3gppNetwork</span></a> *network</code></em>);
@@ -64,9 +64,11 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMModem3gpp.html#mm-modem-3gpp-dup-operator-code" title="mm_modem_3gpp_dup_operator_code ()">mm_modem_3gpp_dup_operator_code</a> (<em class="parameter"><code><a class="link" href="MMModem3gpp.html" title="MMModem3gpp"><span class="type">MMModem3gpp</span></a> *self</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMModem3gpp.html#mm-modem-3gpp-get-operator-name" title="mm_modem_3gpp_get_operator_name ()">mm_modem_3gpp_get_operator_name</a> (<em class="parameter"><code><a class="link" href="MMModem3gpp.html" title="MMModem3gpp"><span class="type">MMModem3gpp</span></a> *self</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMModem3gpp.html#mm-modem-3gpp-dup-operator-name" title="mm_modem_3gpp_dup_operator_name ()">mm_modem_3gpp_dup_operator_name</a> (<em class="parameter"><code><a class="link" href="MMModem3gpp.html" title="MMModem3gpp"><span class="type">MMModem3gpp</span></a> *self</code></em>);
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModem3gppFacility"><span class="returnvalue">MMModem3gppFacility</span></a> <a class="link" href="MMModem3gpp.html#mm-modem-3gpp-get-enabled-facility-locks" title="mm_modem_3gpp_get_enabled_facility_locks ()">mm_modem_3gpp_get_enabled_facility_locks</a>
+<span class="returnvalue">MMModem3gppFacility</span> <a class="link" href="MMModem3gpp.html#mm-modem-3gpp-get-enabled-facility-locks" title="mm_modem_3gpp_get_enabled_facility_locks ()">mm_modem_3gpp_get_enabled_facility_locks</a>
(<em class="parameter"><code><a class="link" href="MMModem3gpp.html" title="MMModem3gpp"><span class="type">MMModem3gpp</span></a> *self</code></em>);
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModem3gppRegistrationState"><span class="returnvalue">MMModem3gppRegistrationState</span></a> <a class="link" href="MMModem3gpp.html#mm-modem-3gpp-get-registration-state" title="mm_modem_3gpp_get_registration_state ()">mm_modem_3gpp_get_registration_state</a>
+<span class="returnvalue">MMModem3gppRegistrationState</span> <a class="link" href="MMModem3gpp.html#mm-modem-3gpp-get-registration-state" title="mm_modem_3gpp_get_registration_state ()">mm_modem_3gpp_get_registration_state</a>
+ (<em class="parameter"><code><a class="link" href="MMModem3gpp.html" title="MMModem3gpp"><span class="type">MMModem3gpp</span></a> *self</code></em>);
+<span class="returnvalue">MMModem3gppSubscriptionState</span> <a class="link" href="MMModem3gpp.html#mm-modem-3gpp-get-subscription-state" title="mm_modem_3gpp_get_subscription_state ()">mm_modem_3gpp_get_subscription_state</a>
(<em class="parameter"><code><a class="link" href="MMModem3gpp.html" title="MMModem3gpp"><span class="type">MMModem3gpp</span></a> *self</code></em>);
<span class="returnvalue">void</span> <a class="link" href="MMModem3gpp.html#mm-modem-3gpp-register" title="mm_modem_3gpp_register ()">mm_modem_3gpp_register</a> (<em class="parameter"><code><a class="link" href="MMModem3gpp.html" title="MMModem3gpp"><span class="type">MMModem3gpp</span></a> *self</code></em>,
@@ -116,7 +118,7 @@ properties of the 3GPP interface.
</p>
<p>
The 3GPP interface is exposed whenever a modem has any of the 3GPP
-capabilities (<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-MODEM-CAPABILITY-GSM-UMTS:CAPS"><code class="literal">MM_MODEM_CAPABILITY_GSM_UMTS</code></a>, <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-MODEM-CAPABILITY-LTE:CAPS"><code class="literal">MM_MODEM_CAPABILITY_LTE</code></a> or <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-MODEM-CAPABILITY-LTE-ADVANCED:CAPS"><code class="literal">MM_MODEM_CAPABILITY_LTE_ADVANCED</code></a>).
+capabilities (<code class="literal">MM_MODEM_CAPABILITY_GSM_UMTS</code>, <code class="literal">MM_MODEM_CAPABILITY_LTE</code> or <code class="literal">MM_MODEM_CAPABILITY_LTE_ADVANCED</code>).
</p>
</div>
<div class="refsect1">
@@ -219,7 +221,7 @@ Get the long operator name of the 3GPP network.
<hr>
<div class="refsect2">
<a name="mm-modem-3gpp-network-get-access-technology"></a><h3>mm_modem_3gpp_network_get_access_technology ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemAccessTechnology"><span class="returnvalue">MMModemAccessTechnology</span></a> mm_modem_3gpp_network_get_access_technology
+<pre class="programlisting"><span class="returnvalue">MMModemAccessTechnology</span> mm_modem_3gpp_network_get_access_technology
(<em class="parameter"><code>const <a class="link" href="MMModem3gpp.html#MMModem3gppNetwork" title="MMModem3gppNetwork"><span class="type">MMModem3gppNetwork</span></a> *network</code></em>);</pre>
<p>
Get the technology used to access the 3GPP network.
@@ -236,7 +238,7 @@ Get the technology used to access the 3GPP network.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemAccessTechnology"><span class="type">MMModemAccessTechnology</span></a>.</td>
+<td>A <span class="type">MMModemAccessTechnology</span>.</td>
</tr>
</tbody>
</table></div>
@@ -244,7 +246,7 @@ Get the technology used to access the 3GPP network.
<hr>
<div class="refsect2">
<a name="mm-modem-3gpp-network-get-availability"></a><h3>mm_modem_3gpp_network_get_availability ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModem3gppNetworkAvailability"><span class="returnvalue">MMModem3gppNetworkAvailability</span></a> mm_modem_3gpp_network_get_availability
+<pre class="programlisting"><span class="returnvalue">MMModem3gppNetworkAvailability</span> mm_modem_3gpp_network_get_availability
(<em class="parameter"><code>const <a class="link" href="MMModem3gpp.html#MMModem3gppNetwork" title="MMModem3gppNetwork"><span class="type">MMModem3gppNetwork</span></a> *network</code></em>);</pre>
<p>
Get availability of the 3GPP network.
@@ -261,7 +263,7 @@ Get availability of the 3GPP network.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModem3gppNetworkAvailability"><span class="type">MMModem3gppNetworkAvailability</span></a>.</td>
+<td>A <span class="type">MMModem3gppNetworkAvailability</span>.</td>
</tr>
</tbody>
</table></div>
@@ -537,7 +539,7 @@ currently registered.
<hr>
<div class="refsect2">
<a name="mm-modem-3gpp-get-enabled-facility-locks"></a><h3>mm_modem_3gpp_get_enabled_facility_locks ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModem3gppFacility"><span class="returnvalue">MMModem3gppFacility</span></a> mm_modem_3gpp_get_enabled_facility_locks
+<pre class="programlisting"><span class="returnvalue">MMModem3gppFacility</span> mm_modem_3gpp_get_enabled_facility_locks
(<em class="parameter"><code><a class="link" href="MMModem3gpp.html" title="MMModem3gpp"><span class="type">MMModem3gpp</span></a> *self</code></em>);</pre>
<p>
Get the list of facilities for which PIN locking is enabled.
@@ -554,7 +556,7 @@ Get the list of facilities for which PIN locking is enabled.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A bitmask of <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModem3gppFacility"><span class="type">MMModem3gppFacility</span></a> flags, specifying which facilities have locks enabled.</td>
+<td>A bitmask of <span class="type">MMModem3gppFacility</span> flags, specifying which facilities have locks enabled.</td>
</tr>
</tbody>
</table></div>
@@ -562,7 +564,7 @@ Get the list of facilities for which PIN locking is enabled.
<hr>
<div class="refsect2">
<a name="mm-modem-3gpp-get-registration-state"></a><h3>mm_modem_3gpp_get_registration_state ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModem3gppRegistrationState"><span class="returnvalue">MMModem3gppRegistrationState</span></a> mm_modem_3gpp_get_registration_state
+<pre class="programlisting"><span class="returnvalue">MMModem3gppRegistrationState</span> mm_modem_3gpp_get_registration_state
(<em class="parameter"><code><a class="link" href="MMModem3gpp.html" title="MMModem3gpp"><span class="type">MMModem3gpp</span></a> *self</code></em>);</pre>
<p>
Get the the mobile registration status as defined in 3GPP TS 27.007
@@ -580,7 +582,33 @@ section 10.1.19.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModem3gppRegistrationState"><span class="type">MMModem3gppRegistrationState</span></a> value, specifying the current registration state.</td>
+<td>A <span class="type">MMModem3gppRegistrationState</span> value, specifying the current registration state.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-3gpp-get-subscription-state"></a><h3>mm_modem_3gpp_get_subscription_state ()</h3>
+<pre class="programlisting"><span class="returnvalue">MMModem3gppSubscriptionState</span> mm_modem_3gpp_get_subscription_state
+ (<em class="parameter"><code><a class="link" href="MMModem3gpp.html" title="MMModem3gpp"><span class="type">MMModem3gpp</span></a> *self</code></em>);</pre>
+<p>
+Get the current subscription status of the account. This value is only
+available after the modem attempts to register with the network.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <span class="type">MMModem3gppSubscriptionState</span> value, specifying the current subscription state.</td>
</tr>
</tbody>
</table></div>
@@ -785,7 +813,8 @@ Finishes an operation started with <a class="link" href="MMModem3gpp.html#mm-mod
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a list of <a class="link" href="MMModem3gpp.html#MMModem3gppNetwork" title="MMModem3gppNetwork"><span class="type">MMModem3gppNetwork</span></a> structs, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if <em class="parameter"><code>error</code></em> is set. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-free-full"><code class="function">g_list_free_full()</code></a> using <a class="link" href="MMModem3gpp.html#mm-modem-3gpp-network-free" title="mm_modem_3gpp_network_free ()"><code class="function">mm_modem_3gpp_network_free()</code></a> as <a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> function.</td>
+<td>a list of <a class="link" href="MMModem3gpp.html#MMModem3gppNetwork" title="MMModem3gppNetwork"><span class="type">MMModem3gppNetwork</span></a> structs, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if <em class="parameter"><code>error</code></em> is set. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-free-full"><code class="function">g_list_free_full()</code></a> using <a class="link" href="MMModem3gpp.html#mm-modem-3gpp-network-free" title="mm_modem_3gpp_network_free ()"><code class="function">mm_modem_3gpp_network_free()</code></a> as <a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> function. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> ModemManager.Modem3gppNetwork]</span>
+</td>
</tr>
</tbody>
</table></div>
@@ -824,7 +853,8 @@ for the asynchronous version of this method.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a list of <a class="link" href="MMModem3gpp.html#MMModem3gppNetwork" title="MMModem3gppNetwork"><span class="type">MMModem3gppNetwork</span></a> structs, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if <em class="parameter"><code>error</code></em> is set. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-free-full"><code class="function">g_list_free_full()</code></a> using <a class="link" href="MMModem3gpp.html#mm-modem-3gpp-network-free" title="mm_modem_3gpp_network_free ()"><code class="function">mm_modem_3gpp_network_free()</code></a> as <a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> function.</td>
+<td>a list of <a class="link" href="MMModem3gpp.html#MMModem3gppNetwork" title="MMModem3gppNetwork"><span class="type">MMModem3gppNetwork</span></a> structs, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if <em class="parameter"><code>error</code></em> is set. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-free-full"><code class="function">g_list_free_full()</code></a> using <a class="link" href="MMModem3gpp.html#mm-modem-3gpp-network-free" title="mm_modem_3gpp_network_free ()"><code class="function">mm_modem_3gpp_network_free()</code></a> as <a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> function. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> ModemManager.Modem3gppNetwork]</span>
+</td>
</tr>
</tbody>
</table></div>
@@ -833,6 +863,6 @@ for the asynchronous version of this method.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MMModem3gppUssd.html b/docs/reference/libmm-glib/html/MMModem3gppUssd.html
index c164ca3..de97846 100644
--- a/docs/reference/libmm-glib/html/MMModem3gppUssd.html
+++ b/docs/reference/libmm-glib/html/MMModem3gppUssd.html
@@ -5,17 +5,17 @@
<title>MMModem3gppUssd</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="libmm-glib Reference Manual">
-<link rel="up" href="ch03.html#idm211869297872" title="Generic interfaces">
+<link rel="up" href="ch03.html#id-1.2.4.3" title="Generic interfaces">
<link rel="prev" href="MMModem3gpp.html" title="MMModem3gpp">
<link rel="next" href="MMModemCdma.html" title="MMModemCdma">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="MMModem3gpp.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch03.html#idm211869297872"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch03.html#id-1.2.4.3"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">libmm-glib Reference Manual</th>
<td><a accesskey="n" href="MMModemCdma.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
@@ -45,7 +45,7 @@
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMModem3gppUssd.html#mm-modem-3gpp-ussd-get-path" title="mm_modem_3gpp_ussd_get_path ()">mm_modem_3gpp_ussd_get_path</a> (<em class="parameter"><code><a class="link" href="MMModem3gppUssd.html" title="MMModem3gppUssd"><span class="type">MMModem3gppUssd</span></a> *self</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMModem3gppUssd.html#mm-modem-3gpp-ussd-dup-path" title="mm_modem_3gpp_ussd_dup_path ()">mm_modem_3gpp_ussd_dup_path</a> (<em class="parameter"><code><a class="link" href="MMModem3gppUssd.html" title="MMModem3gppUssd"><span class="type">MMModem3gppUssd</span></a> *self</code></em>);
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModem3gppUssdSessionState"><span class="returnvalue">MMModem3gppUssdSessionState</span></a> <a class="link" href="MMModem3gppUssd.html#mm-modem-3gpp-ussd-get-state" title="mm_modem_3gpp_ussd_get_state ()">mm_modem_3gpp_ussd_get_state</a>
+<span class="returnvalue">MMModem3gppUssdSessionState</span> <a class="link" href="MMModem3gppUssd.html#mm-modem-3gpp-ussd-get-state" title="mm_modem_3gpp_ussd_get_state ()">mm_modem_3gpp_ussd_get_state</a>
(<em class="parameter"><code><a class="link" href="MMModem3gppUssd.html" title="MMModem3gppUssd"><span class="type">MMModem3gppUssd</span></a> *self</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMModem3gppUssd.html#mm-modem-3gpp-ussd-get-network-request" title="mm_modem_3gpp_ussd_get_network_request ()">mm_modem_3gpp_ussd_get_network_request</a>
(<em class="parameter"><code><a class="link" href="MMModem3gppUssd.html" title="MMModem3gppUssd"><span class="type">MMModem3gppUssd</span></a> *self</code></em>);
@@ -180,7 +180,7 @@ Gets a copy of the DBus path of the <a class="link" href="MMObject.html" title="
<hr>
<div class="refsect2">
<a name="mm-modem-3gpp-ussd-get-state"></a><h3>mm_modem_3gpp_ussd_get_state ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModem3gppUssdSessionState"><span class="returnvalue">MMModem3gppUssdSessionState</span></a> mm_modem_3gpp_ussd_get_state
+<pre class="programlisting"><span class="returnvalue">MMModem3gppUssdSessionState</span> mm_modem_3gpp_ussd_get_state
(<em class="parameter"><code><a class="link" href="MMModem3gppUssd.html" title="MMModem3gppUssd"><span class="type">MMModem3gppUssd</span></a> *self</code></em>);</pre>
<p>
Get the state of the ongoing USSD session, if any.
@@ -197,7 +197,7 @@ Get the state of the ongoing USSD session, if any.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModem3gppUssdSessionState"><span class="type">MMModem3gppUssdSessionState</span></a> value, specifying the current state.</td>
+<td>A <span class="type">MMModem3gppUssdSessionState</span> value, specifying the current state.</td>
</tr>
</tbody>
</table></div>
@@ -712,6 +712,6 @@ for the asynchronous version of this method.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MMModemCdma.html b/docs/reference/libmm-glib/html/MMModemCdma.html
index a091931..64b7f89 100644
--- a/docs/reference/libmm-glib/html/MMModemCdma.html
+++ b/docs/reference/libmm-glib/html/MMModemCdma.html
@@ -5,20 +5,20 @@
<title>MMModemCdma</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="libmm-glib Reference Manual">
-<link rel="up" href="ch03.html#idm211869297872" title="Generic interfaces">
+<link rel="up" href="ch03.html#id-1.2.4.3" title="Generic interfaces">
<link rel="prev" href="MMModem3gppUssd.html" title="MMModem3gppUssd">
-<link rel="next" href="MMUnlockRetries.html" title="MMUnlockRetries">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<link rel="next" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="MMModem3gppUssd.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch03.html#idm211869297872"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch03.html#id-1.2.4.3"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">libmm-glib Reference Manual</th>
-<td><a accesskey="n" href="MMUnlockRetries.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="MMCdmaManualActivationProperties.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#MMModemCdma.synopsis" class="shortcut">Top</a>
@@ -53,11 +53,11 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMModemCdma.html#mm-modem-cdma-dup-meid" title="mm_modem_cdma_dup_meid ()">mm_modem_cdma_dup_meid</a> (<em class="parameter"><code><a class="link" href="MMModemCdma.html" title="MMModemCdma"><span class="type">MMModemCdma</span></a> *self</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="MMModemCdma.html#mm-modem-cdma-get-nid" title="mm_modem_cdma_get_nid ()">mm_modem_cdma_get_nid</a> (<em class="parameter"><code><a class="link" href="MMModemCdma.html" title="MMModemCdma"><span class="type">MMModemCdma</span></a> *self</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="MMModemCdma.html#mm-modem-cdma-get-sid" title="mm_modem_cdma_get_sid ()">mm_modem_cdma_get_sid</a> (<em class="parameter"><code><a class="link" href="MMModemCdma.html" title="MMModemCdma"><span class="type">MMModemCdma</span></a> *self</code></em>);
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCdmaRegistrationState"><span class="returnvalue">MMModemCdmaRegistrationState</span></a> <a class="link" href="MMModemCdma.html#mm-modem-cdma-get-cdma1x-registration-state" title="mm_modem_cdma_get_cdma1x_registration_state ()">mm_modem_cdma_get_cdma1x_registration_state</a>
+<span class="returnvalue">MMModemCdmaRegistrationState</span> <a class="link" href="MMModemCdma.html#mm-modem-cdma-get-cdma1x-registration-state" title="mm_modem_cdma_get_cdma1x_registration_state ()">mm_modem_cdma_get_cdma1x_registration_state</a>
(<em class="parameter"><code><a class="link" href="MMModemCdma.html" title="MMModemCdma"><span class="type">MMModemCdma</span></a> *self</code></em>);
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCdmaRegistrationState"><span class="returnvalue">MMModemCdmaRegistrationState</span></a> <a class="link" href="MMModemCdma.html#mm-modem-cdma-get-evdo-registration-state" title="mm_modem_cdma_get_evdo_registration_state ()">mm_modem_cdma_get_evdo_registration_state</a>
+<span class="returnvalue">MMModemCdmaRegistrationState</span> <a class="link" href="MMModemCdma.html#mm-modem-cdma-get-evdo-registration-state" title="mm_modem_cdma_get_evdo_registration_state ()">mm_modem_cdma_get_evdo_registration_state</a>
(<em class="parameter"><code><a class="link" href="MMModemCdma.html" title="MMModemCdma"><span class="type">MMModemCdma</span></a> *self</code></em>);
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCdmaActivationState"><span class="returnvalue">MMModemCdmaActivationState</span></a> <a class="link" href="MMModemCdma.html#mm-modem-cdma-get-activation-state" title="mm_modem_cdma_get_activation_state ()">mm_modem_cdma_get_activation_state</a>
+<span class="returnvalue">MMModemCdmaActivationState</span> <a class="link" href="MMModemCdma.html#mm-modem-cdma-get-activation-state" title="mm_modem_cdma_get_activation_state ()">mm_modem_cdma_get_activation_state</a>
(<em class="parameter"><code><a class="link" href="MMModemCdma.html" title="MMModemCdma"><span class="type">MMModemCdma</span></a> *self</code></em>);
<span class="returnvalue">void</span> <a class="link" href="MMModemCdma.html#mm-modem-cdma-activate" title="mm_modem_cdma_activate ()">mm_modem_cdma_activate</a> (<em class="parameter"><code><a class="link" href="MMModemCdma.html" title="MMModemCdma"><span class="type">MMModemCdma</span></a> *self</code></em>,
@@ -72,6 +72,19 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *carrier</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="MMModemCdma.html#mm-modem-cdma-activate-manual" title="mm_modem_cdma_activate_manual ()">mm_modem_cdma_activate_manual</a> (<em class="parameter"><code><a class="link" href="MMModemCdma.html" title="MMModemCdma"><span class="type">MMModemCdma</span></a> *self</code></em>,
+ <em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *properties</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMModemCdma.html#mm-modem-cdma-activate-manual-finish" title="mm_modem_cdma_activate_manual_finish ()">mm_modem_cdma_activate_manual_finish</a>
+ (<em class="parameter"><code><a class="link" href="MMModemCdma.html" title="MMModemCdma"><span class="type">MMModemCdma</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMModemCdma.html#mm-modem-cdma-activate-manual-sync" title="mm_modem_cdma_activate_manual_sync ()">mm_modem_cdma_activate_manual_sync</a> (<em class="parameter"><code><a class="link" href="MMModemCdma.html" title="MMModemCdma"><span class="type">MMModemCdma</span></a> *self</code></em>,
+ <em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *properties</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
</pre>
</div>
<div class="refsect1">
@@ -97,7 +110,7 @@ properties of the CDMA interface.
</p>
<p>
The CDMA interface is exposed whenever a modem has CDMA capabilities
-(<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-MODEM-CAPABILITY-CDMA-EVDO:CAPS"><code class="literal">MM_MODEM_CAPABILITY_CDMA_EVDO</code></a>).
+(<code class="literal">MM_MODEM_CAPABILITY_CDMA_EVDO</code>).
</p>
</div>
<div class="refsect1">
@@ -361,7 +374,7 @@ a CDMA 1x network.
<hr>
<div class="refsect2">
<a name="mm-modem-cdma-get-cdma1x-registration-state"></a><h3>mm_modem_cdma_get_cdma1x_registration_state ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCdmaRegistrationState"><span class="returnvalue">MMModemCdmaRegistrationState</span></a> mm_modem_cdma_get_cdma1x_registration_state
+<pre class="programlisting"><span class="returnvalue">MMModemCdmaRegistrationState</span> mm_modem_cdma_get_cdma1x_registration_state
(<em class="parameter"><code><a class="link" href="MMModemCdma.html" title="MMModemCdma"><span class="type">MMModemCdma</span></a> *self</code></em>);</pre>
<p>
Gets the state of the registration in the CDMA 1x network.
@@ -378,7 +391,7 @@ Gets the state of the registration in the CDMA 1x network.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCdmaRegistrationState"><span class="type">MMModemCdmaRegistrationState</span></a>.</td>
+<td>a <span class="type">MMModemCdmaRegistrationState</span>.</td>
</tr>
</tbody>
</table></div>
@@ -386,7 +399,7 @@ Gets the state of the registration in the CDMA 1x network.
<hr>
<div class="refsect2">
<a name="mm-modem-cdma-get-evdo-registration-state"></a><h3>mm_modem_cdma_get_evdo_registration_state ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCdmaRegistrationState"><span class="returnvalue">MMModemCdmaRegistrationState</span></a> mm_modem_cdma_get_evdo_registration_state
+<pre class="programlisting"><span class="returnvalue">MMModemCdmaRegistrationState</span> mm_modem_cdma_get_evdo_registration_state
(<em class="parameter"><code><a class="link" href="MMModemCdma.html" title="MMModemCdma"><span class="type">MMModemCdma</span></a> *self</code></em>);</pre>
<p>
Gets the state of the registration in the EV-DO network.
@@ -403,7 +416,7 @@ Gets the state of the registration in the EV-DO network.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCdmaRegistrationState"><span class="type">MMModemCdmaRegistrationState</span></a>.</td>
+<td>a <span class="type">MMModemCdmaRegistrationState</span>.</td>
</tr>
</tbody>
</table></div>
@@ -411,7 +424,7 @@ Gets the state of the registration in the EV-DO network.
<hr>
<div class="refsect2">
<a name="mm-modem-cdma-get-activation-state"></a><h3>mm_modem_cdma_get_activation_state ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCdmaActivationState"><span class="returnvalue">MMModemCdmaActivationState</span></a> mm_modem_cdma_get_activation_state
+<pre class="programlisting"><span class="returnvalue">MMModemCdmaActivationState</span> mm_modem_cdma_get_activation_state
(<em class="parameter"><code><a class="link" href="MMModemCdma.html" title="MMModemCdma"><span class="type">MMModemCdma</span></a> *self</code></em>);</pre>
<p>
Gets the state of the activation in the 3GPP2 network.
@@ -428,7 +441,7 @@ Gets the state of the activation in the 3GPP2 network.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCdmaActivationState"><span class="type">MMModemCdmaActivationState</span></a>.</td>
+<td>a <span class="type">MMModemCdmaActivationState</span>.</td>
</tr>
</tbody>
</table></div>
@@ -563,10 +576,139 @@ for the asynchronous version of this method.
</tbody>
</table></div>
</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-cdma-activate-manual"></a><h3>mm_modem_cdma_activate_manual ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> mm_modem_cdma_activate_manual (<em class="parameter"><code><a class="link" href="MMModemCdma.html" title="MMModemCdma"><span class="type">MMModemCdma</span></a> *self</code></em>,
+ <em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *properties</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>
+Asynchronously requests to provision the modem with the given properties.
+</p>
+<p>
+When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
+You can then call <a class="link" href="MMModemCdma.html#mm-modem-cdma-activate-manual-finish" title="mm_modem_cdma_activate_manual_finish ()"><code class="function">mm_modem_cdma_activate_manual_finish()</code></a> to get the result of the operation.
+</p>
+<p>
+See <a class="link" href="MMModemCdma.html#mm-modem-cdma-activate-manual-sync" title="mm_modem_cdma_activate_manual_sync ()"><code class="function">mm_modem_cdma_activate_manual_sync()</code></a> for the synchronous, blocking version of this method.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModemCdma.html" title="MMModemCdma"><span class="type">MMModemCdma</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>properties</code></em> :</span></p></td>
+<td>A <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> to call when the request is satisfied or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>User data to pass to <em class="parameter"><code>callback</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-cdma-activate-manual-finish"></a><h3>mm_modem_cdma_activate_manual_finish ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_modem_cdma_activate_manual_finish
+ (<em class="parameter"><code><a class="link" href="MMModemCdma.html" title="MMModemCdma"><span class="type">MMModemCdma</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <a class="link" href="MMModemCdma.html#mm-modem-cdma-activate-manual" title="mm_modem_cdma_activate_manual ()"><code class="function">mm_modem_cdma_activate_manual()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModemCdma.html" title="MMModemCdma"><span class="type">MMModemCdma</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>The <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> obtained from the <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> passed to <a class="link" href="MMModemCdma.html#mm-modem-cdma-activate-manual" title="mm_modem_cdma_activate_manual ()"><code class="function">mm_modem_cdma_activate_manual()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the activation was successful, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if <em class="parameter"><code>error</code></em> is set.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-cdma-activate-manual-sync"></a><h3>mm_modem_cdma_activate_manual_sync ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_modem_cdma_activate_manual_sync (<em class="parameter"><code><a class="link" href="MMModemCdma.html" title="MMModemCdma"><span class="type">MMModemCdma</span></a> *self</code></em>,
+ <em class="parameter"><code><a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a> *properties</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Synchronously requests to provision the modem with the given properties.
+</p>
+<p>
+The calling thread is blocked until a reply is received. See <a class="link" href="MMModemCdma.html#mm-modem-cdma-activate-manual" title="mm_modem_cdma_activate_manual ()"><code class="function">mm_modem_cdma_activate_manual()</code></a>
+for the asynchronous version of this method.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModemCdma.html" title="MMModemCdma"><span class="type">MMModemCdma</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>properties</code></em> :</span></p></td>
+<td>A <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties"><span class="type">MMCdmaManualActivationProperties</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the activation was successful, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if <em class="parameter"><code>error</code></em> is set.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MMModemFirmware.html b/docs/reference/libmm-glib/html/MMModemFirmware.html
index bc50ee2..b8fe0f3 100644
--- a/docs/reference/libmm-glib/html/MMModemFirmware.html
+++ b/docs/reference/libmm-glib/html/MMModemFirmware.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch03s06.html" title="Firmware support">
<link rel="prev" href="ch03s06.html" title="Firmware support">
<link rel="next" href="MMFirmwareProperties.html" title="MMFirmwareProperties">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -234,7 +234,7 @@ Finishes an operation started with <a class="link" href="MMModemFirmware.html#mm
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>installed</code></em> :</span></p></td>
-<td>A list of <a class="link" href="MMFirmwareProperties.html" title="MMFirmwareProperties"><span class="type">MMFirmwareProperties</span></a> objects specifying the installed images. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-free-full"><code class="function">g_list_free_full()</code></a> using <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a> as <a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+<td>A list of <a class="link" href="MMFirmwareProperties.html" title="MMFirmwareProperties"><span class="type">MMFirmwareProperties</span></a> objects specifying the installed images. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-free-full"><code class="function">g_list_free_full()</code></a> using <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a> as <a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> ModemManager.FirmwareProperties]</span>
</td>
</tr>
<tr>
@@ -281,7 +281,7 @@ for the asynchronous version of this method.
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>installed</code></em> :</span></p></td>
-<td>A list of <a class="link" href="MMFirmwareProperties.html" title="MMFirmwareProperties"><span class="type">MMFirmwareProperties</span></a> objects specifying the installed images. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-free-full"><code class="function">g_list_free_full()</code></a> using <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a> as <a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+<td>A list of <a class="link" href="MMFirmwareProperties.html" title="MMFirmwareProperties"><span class="type">MMFirmwareProperties</span></a> objects specifying the installed images. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-free-full"><code class="function">g_list_free_full()</code></a> using <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a> as <a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> ModemManager.FirmwareProperties]</span>
</td>
</tr>
<tr>
@@ -447,6 +447,6 @@ for the asynchronous version of this method.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MMModemLocation.html b/docs/reference/libmm-glib/html/MMModemLocation.html
index 75b5ac9..ee12b08 100644
--- a/docs/reference/libmm-glib/html/MMModemLocation.html
+++ b/docs/reference/libmm-glib/html/MMModemLocation.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch03s03.html" title="Location support">
<link rel="prev" href="ch03s03.html" title="Location support">
<link rel="next" href="MMLocation3gpp.html" title="MMLocation3gpp">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -48,13 +48,13 @@
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMModemLocation.html#mm-modem-location-get-path" title="mm_modem_location_get_path ()">mm_modem_location_get_path</a> (<em class="parameter"><code><a class="link" href="MMModemLocation.html" title="MMModemLocation"><span class="type">MMModemLocation</span></a> *self</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMModemLocation.html#mm-modem-location-dup-path" title="mm_modem_location_dup_path ()">mm_modem_location_dup_path</a> (<em class="parameter"><code><a class="link" href="MMModemLocation.html" title="MMModemLocation"><span class="type">MMModemLocation</span></a> *self</code></em>);
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemLocationSource"><span class="returnvalue">MMModemLocationSource</span></a> <a class="link" href="MMModemLocation.html#mm-modem-location-get-capabilities" title="mm_modem_location_get_capabilities ()">mm_modem_location_get_capabilities</a>
+<span class="returnvalue">MMModemLocationSource</span> <a class="link" href="MMModemLocation.html#mm-modem-location-get-capabilities" title="mm_modem_location_get_capabilities ()">mm_modem_location_get_capabilities</a>
(<em class="parameter"><code><a class="link" href="MMModemLocation.html" title="MMModemLocation"><span class="type">MMModemLocation</span></a> *self</code></em>);
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemLocationSource"><span class="returnvalue">MMModemLocationSource</span></a> <a class="link" href="MMModemLocation.html#mm-modem-location-get-enabled" title="mm_modem_location_get_enabled ()">mm_modem_location_get_enabled</a> (<em class="parameter"><code><a class="link" href="MMModemLocation.html" title="MMModemLocation"><span class="type">MMModemLocation</span></a> *self</code></em>);
+<span class="returnvalue">MMModemLocationSource</span> <a class="link" href="MMModemLocation.html#mm-modem-location-get-enabled" title="mm_modem_location_get_enabled ()">mm_modem_location_get_enabled</a> (<em class="parameter"><code><a class="link" href="MMModemLocation.html" title="MMModemLocation"><span class="type">MMModemLocation</span></a> *self</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMModemLocation.html#mm-modem-location-signals-location" title="mm_modem_location_signals_location ()">mm_modem_location_signals_location</a> (<em class="parameter"><code><a class="link" href="MMModemLocation.html" title="MMModemLocation"><span class="type">MMModemLocation</span></a> *self</code></em>);
<span class="returnvalue">void</span> <a class="link" href="MMModemLocation.html#mm-modem-location-setup" title="mm_modem_location_setup ()">mm_modem_location_setup</a> (<em class="parameter"><code><a class="link" href="MMModemLocation.html" title="MMModemLocation"><span class="type">MMModemLocation</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemLocationSource"><span class="type">MMModemLocationSource</span></a> sources</code></em>,
+ <em class="parameter"><code><span class="type">MMModemLocationSource</span> sources</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> signal_location</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
@@ -63,7 +63,7 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMModemLocation.html#mm-modem-location-setup-sync" title="mm_modem_location_setup_sync ()">mm_modem_location_setup_sync</a> (<em class="parameter"><code><a class="link" href="MMModemLocation.html" title="MMModemLocation"><span class="type">MMModemLocation</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemLocationSource"><span class="type">MMModemLocationSource</span></a> sources</code></em>,
+ <em class="parameter"><code><span class="type">MMModemLocationSource</span> sources</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> signal_location</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
@@ -251,10 +251,10 @@ Gets a copy of the DBus path of the <a class="link" href="MMObject.html" title="
<hr>
<div class="refsect2">
<a name="mm-modem-location-get-capabilities"></a><h3>mm_modem_location_get_capabilities ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemLocationSource"><span class="returnvalue">MMModemLocationSource</span></a> mm_modem_location_get_capabilities
+<pre class="programlisting"><span class="returnvalue">MMModemLocationSource</span> mm_modem_location_get_capabilities
(<em class="parameter"><code><a class="link" href="MMModemLocation.html" title="MMModemLocation"><span class="type">MMModemLocation</span></a> *self</code></em>);</pre>
<p>
-Gets a bitmask of the location capabilities which are enabled in this <a class="link" href="MMModemLocation.html" title="MMModemLocation"><span class="type">MMModemLocation</span></a>.
+Gets a bitmask of the location capabilities supported by this <a class="link" href="MMModemLocation.html" title="MMModemLocation"><span class="type">MMModemLocation</span></a>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -268,7 +268,7 @@ Gets a bitmask of the location capabilities which are enabled in this <a class="
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemLocationSource"><span class="type">MMModemLocationSource</span></a>.</td>
+<td>A <span class="type">MMModemLocationSource</span>.</td>
</tr>
</tbody>
</table></div>
@@ -276,9 +276,26 @@ Gets a bitmask of the location capabilities which are enabled in this <a class="
<hr>
<div class="refsect2">
<a name="mm-modem-location-get-enabled"></a><h3>mm_modem_location_get_enabled ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemLocationSource"><span class="returnvalue">MMModemLocationSource</span></a> mm_modem_location_get_enabled (<em class="parameter"><code><a class="link" href="MMModemLocation.html" title="MMModemLocation"><span class="type">MMModemLocation</span></a> *self</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">MMModemLocationSource</span> mm_modem_location_get_enabled (<em class="parameter"><code><a class="link" href="MMModemLocation.html" title="MMModemLocation"><span class="type">MMModemLocation</span></a> *self</code></em>);</pre>
<p>
+Gets a bitmask of the location capabilities which are enabled in this <a class="link" href="MMModemLocation.html" title="MMModemLocation"><span class="type">MMModemLocation</span></a>.
</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModemLocation.html" title="MMModemLocation"><span class="type">MMModemLocation</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <span class="type">MMModemLocationSource</span>.</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -309,7 +326,7 @@ Gets the status of the location signaling in the <a class="link" href="MMModemLo
<div class="refsect2">
<a name="mm-modem-location-setup"></a><h3>mm_modem_location_setup ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> mm_modem_location_setup (<em class="parameter"><code><a class="link" href="MMModemLocation.html" title="MMModemLocation"><span class="type">MMModemLocation</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemLocationSource"><span class="type">MMModemLocationSource</span></a> sources</code></em>,
+ <em class="parameter"><code><span class="type">MMModemLocationSource</span> sources</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> signal_location</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
@@ -337,7 +354,7 @@ See <a class="link" href="MMModemLocation.html#mm-modem-location-setup-sync" tit
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>sources</code></em> :</span></p></td>
-<td>Bitmask of <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemLocationSource"><span class="type">MMModemLocationSource</span></a> values specifying which locations should get enabled.</td>
+<td>Bitmask of <span class="type">MMModemLocationSource</span> values specifying which locations should get enabled.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>signal_location</code></em> :</span></p></td>
@@ -398,7 +415,7 @@ Finishes an operation started with <a class="link" href="MMModemLocation.html#mm
<div class="refsect2">
<a name="mm-modem-location-setup-sync"></a><h3>mm_modem_location_setup_sync ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_modem_location_setup_sync (<em class="parameter"><code><a class="link" href="MMModemLocation.html" title="MMModemLocation"><span class="type">MMModemLocation</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemLocationSource"><span class="type">MMModemLocationSource</span></a> sources</code></em>,
+ <em class="parameter"><code><span class="type">MMModemLocationSource</span> sources</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> signal_location</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
@@ -422,7 +439,7 @@ for the asynchronous version of this method.
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>sources</code></em> :</span></p></td>
-<td>Bitmask of <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemLocationSource"><span class="type">MMModemLocationSource</span></a> values specifying which locations should get enabled.</td>
+<td>Bitmask of <span class="type">MMModemLocationSource</span> values specifying which locations should get enabled.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>signal_location</code></em> :</span></p></td>
@@ -517,7 +534,8 @@ Finishes an operation started with <a class="link" href="MMModemLocation.html#mm
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer full) A <a class="link" href="MMLocation3gpp.html" title="MMLocation3gpp"><span class="type">MMLocation3gpp</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if not available. The returned value should be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>.</td>
+<td>A <a class="link" href="MMLocation3gpp.html" title="MMLocation3gpp"><span class="type">MMLocation3gpp</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if not available. The returned value should be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
</tr>
</tbody>
</table></div>
@@ -556,7 +574,8 @@ for the asynchronous version of this method.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer full) A <a class="link" href="MMLocation3gpp.html" title="MMLocation3gpp"><span class="type">MMLocation3gpp</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if not available. The returned value should be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>.</td>
+<td>A <a class="link" href="MMLocation3gpp.html" title="MMLocation3gpp"><span class="type">MMLocation3gpp</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if not available. The returned value should be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
</tr>
</tbody>
</table></div>
@@ -634,7 +653,8 @@ Finishes an operation started with <a class="link" href="MMModemLocation.html#mm
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer full) A <a class="link" href="MMLocationGpsNmea.html" title="MMLocationGpsNmea"><span class="type">MMLocationGpsNmea</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if not available. The returned value should be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>.</td>
+<td>A <a class="link" href="MMLocationGpsNmea.html" title="MMLocationGpsNmea"><span class="type">MMLocationGpsNmea</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if not available. The returned value should be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
</tr>
</tbody>
</table></div>
@@ -673,7 +693,8 @@ for the asynchronous version of this method.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer full) A <a class="link" href="MMLocationGpsNmea.html" title="MMLocationGpsNmea"><span class="type">MMLocationGpsNmea</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if not available. The returned value should be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>.</td>
+<td>A <a class="link" href="MMLocationGpsNmea.html" title="MMLocationGpsNmea"><span class="type">MMLocationGpsNmea</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if not available. The returned value should be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
</tr>
</tbody>
</table></div>
@@ -751,7 +772,8 @@ Finishes an operation started with <a class="link" href="MMModemLocation.html#mm
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer full) A <a class="link" href="MMLocationGpsRaw.html" title="MMLocationGpsRaw"><span class="type">MMLocationGpsRaw</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if not available. The returned value should be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>.</td>
+<td>A <a class="link" href="MMLocationGpsRaw.html" title="MMLocationGpsRaw"><span class="type">MMLocationGpsRaw</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if not available. The returned value should be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
</tr>
</tbody>
</table></div>
@@ -790,7 +812,8 @@ for the asynchronous version of this method.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer full) A <a class="link" href="MMLocationGpsRaw.html" title="MMLocationGpsRaw"><span class="type">MMLocationGpsRaw</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if not available. The returned value should be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>.</td>
+<td>A <a class="link" href="MMLocationGpsRaw.html" title="MMLocationGpsRaw"><span class="type">MMLocationGpsRaw</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if not available. The returned value should be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
</tr>
</tbody>
</table></div>
@@ -868,7 +891,8 @@ Finishes an operation started with <a class="link" href="MMModemLocation.html#mm
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer full) A <a class="link" href="MMLocationCdmaBs.html" title="MMLocationCdmaBs"><span class="type">MMLocationCdmaBs</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if not available. The returned value should be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>.</td>
+<td>A <a class="link" href="MMLocationCdmaBs.html" title="MMLocationCdmaBs"><span class="type">MMLocationCdmaBs</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if not available. The returned value should be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
</tr>
</tbody>
</table></div>
@@ -907,7 +931,8 @@ for the asynchronous version of this method.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer full) A <a class="link" href="MMLocationCdmaBs.html" title="MMLocationCdmaBs"><span class="type">MMLocationCdmaBs</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if not available. The returned value should be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>.</td>
+<td>A <a class="link" href="MMLocationCdmaBs.html" title="MMLocationCdmaBs"><span class="type">MMLocationCdmaBs</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if not available. The returned value should be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
</tr>
</tbody>
</table></div>
@@ -1082,6 +1107,6 @@ for the asynchronous version of this method.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MMModemMessaging.html b/docs/reference/libmm-glib/html/MMModemMessaging.html
index 7a4c75a..cf24614 100644
--- a/docs/reference/libmm-glib/html/MMModemMessaging.html
+++ b/docs/reference/libmm-glib/html/MMModemMessaging.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch03s04.html" title="Messaging support">
<link rel="prev" href="ch03s04.html" title="Messaging support">
<link rel="next" href="ch03s05.html" title="Time support">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -47,13 +47,13 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMModemMessaging.html#mm-modem-messaging-dup-path" title="mm_modem_messaging_dup_path ()">mm_modem_messaging_dup_path</a> (<em class="parameter"><code><a class="link" href="MMModemMessaging.html" title="MMModemMessaging"><span class="type">MMModemMessaging</span></a> *self</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMModemMessaging.html#mm-modem-messaging-peek-supported-storages" title="mm_modem_messaging_peek_supported_storages ()">mm_modem_messaging_peek_supported_storages</a>
(<em class="parameter"><code><a class="link" href="MMModemMessaging.html" title="MMModemMessaging"><span class="type">MMModemMessaging</span></a> *self</code></em>,
- <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsStorage"><span class="type">MMSmsStorage</span></a> **storages</code></em>,
+ <em class="parameter"><code>const <span class="type">MMSmsStorage</span> **storages</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_storages</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMModemMessaging.html#mm-modem-messaging-get-supported-storages" title="mm_modem_messaging_get_supported_storages ()">mm_modem_messaging_get_supported_storages</a>
(<em class="parameter"><code><a class="link" href="MMModemMessaging.html" title="MMModemMessaging"><span class="type">MMModemMessaging</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsStorage"><span class="type">MMSmsStorage</span></a> **storages</code></em>,
+ <em class="parameter"><code><span class="type">MMSmsStorage</span> **storages</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_storages</code></em>);
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsStorage"><span class="returnvalue">MMSmsStorage</span></a> <a class="link" href="MMModemMessaging.html#mm-modem-messaging-get-default-storage" title="mm_modem_messaging_get_default_storage ()">mm_modem_messaging_get_default_storage</a>
+<span class="returnvalue">MMSmsStorage</span> <a class="link" href="MMModemMessaging.html#mm-modem-messaging-get-default-storage" title="mm_modem_messaging_get_default_storage ()">mm_modem_messaging_get_default_storage</a>
(<em class="parameter"><code><a class="link" href="MMModemMessaging.html" title="MMModemMessaging"><span class="type">MMModemMessaging</span></a> *self</code></em>);
<span class="returnvalue">void</span> <a class="link" href="MMModemMessaging.html#mm-modem-messaging-create" title="mm_modem_messaging_create ()">mm_modem_messaging_create</a> (<em class="parameter"><code><a class="link" href="MMModemMessaging.html" title="MMModemMessaging"><span class="type">MMModemMessaging</span></a> *self</code></em>,
@@ -182,7 +182,7 @@ Gets a copy of the DBus path of the <a class="link" href="MMObject.html" title="
<a name="mm-modem-messaging-peek-supported-storages"></a><h3>mm_modem_messaging_peek_supported_storages ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_modem_messaging_peek_supported_storages
(<em class="parameter"><code><a class="link" href="MMModemMessaging.html" title="MMModemMessaging"><span class="type">MMModemMessaging</span></a> *self</code></em>,
- <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsStorage"><span class="type">MMSmsStorage</span></a> **storages</code></em>,
+ <em class="parameter"><code>const <span class="type">MMSmsStorage</span> **storages</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_storages</code></em>);</pre>
<p>
Gets the list of SMS storages supported by the <a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a>.
@@ -199,7 +199,7 @@ Gets the list of SMS storages supported by the <a class="link" href="MMModem.htm
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>storages</code></em> :</span></p></td>
-<td>Return location for the array of <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsStorage"><span class="type">MMSmsStorage</span></a> values. Do not free the returned array, it is owned by <em class="parameter"><code>self</code></em>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Return location for the array of <span class="type">MMSmsStorage</span> values. Do not free the returned array, it is owned by <em class="parameter"><code>self</code></em>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
</td>
</tr>
<tr>
@@ -220,7 +220,7 @@ Gets the list of SMS storages supported by the <a class="link" href="MMModem.htm
<a name="mm-modem-messaging-get-supported-storages"></a><h3>mm_modem_messaging_get_supported_storages ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_modem_messaging_get_supported_storages
(<em class="parameter"><code><a class="link" href="MMModemMessaging.html" title="MMModemMessaging"><span class="type">MMModemMessaging</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsStorage"><span class="type">MMSmsStorage</span></a> **storages</code></em>,
+ <em class="parameter"><code><span class="type">MMSmsStorage</span> **storages</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_storages</code></em>);</pre>
<p>
Gets the list of SMS storages supported by the <a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a>.
@@ -237,7 +237,7 @@ Gets the list of SMS storages supported by the <a class="link" href="MMModem.htm
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>storages</code></em> :</span></p></td>
-<td>Return location for the array of <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsStorage"><span class="type">MMSmsStorage</span></a> values. The returned array should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when no longer needed. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_storages]</span>
+<td>Return location for the array of <span class="type">MMSmsStorage</span> values. The returned array should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when no longer needed. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_storages]</span>
</td>
</tr>
<tr>
@@ -256,7 +256,7 @@ Gets the list of SMS storages supported by the <a class="link" href="MMModem.htm
<hr>
<div class="refsect2">
<a name="mm-modem-messaging-get-default-storage"></a><h3>mm_modem_messaging_get_default_storage ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsStorage"><span class="returnvalue">MMSmsStorage</span></a> mm_modem_messaging_get_default_storage
+<pre class="programlisting"><span class="returnvalue">MMSmsStorage</span> mm_modem_messaging_get_default_storage
(<em class="parameter"><code><a class="link" href="MMModemMessaging.html" title="MMModemMessaging"><span class="type">MMModemMessaging</span></a> *self</code></em>);</pre>
<p>
Gets the default SMS storage used when storing or receiving SMS messages.
@@ -273,7 +273,7 @@ Gets the default SMS storage used when storing or receiving SMS messages.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the default <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsStorage"><span class="type">MMSmsStorage</span></a>.</td>
+<td>the default <span class="type">MMSmsStorage</span>.</td>
</tr>
</tbody>
</table></div>
@@ -332,7 +332,42 @@ Finishes an operation started with <a class="link" href="MMModemMessaging.html#m
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
+Synchronously creates a new <a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> in the modem.
</p>
+<p>
+The calling thread is blocked until a reply is received. See <a class="link" href="MMModemMessaging.html#mm-modem-messaging-create" title="mm_modem_messaging_create ()"><code class="function">mm_modem_messaging_create()</code></a>
+for the asynchronous version of this method.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModemMessaging.html" title="MMModemMessaging"><span class="type">MMModemMessaging</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>properties</code></em> :</span></p></td>
+<td>A #<a class="link" href="MMSmsProperties.html" title="MMSmsProperties"><span class="type">MMSmsProperties</span></a> object with the properties to use.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly created <a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>error</code></em> is set. The returned value should be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -534,7 +569,7 @@ Finishes an operation started with <a class="link" href="MMModemMessaging.html#m
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A list of <a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> objects, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if either not found or <em class="parameter"><code>error</code></em> is set. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-free-full"><code class="function">g_list_free_full()</code></a> using <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a> as <a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> function. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> MM.Sms][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+<td>A list of <a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> objects, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if either not found or <em class="parameter"><code>error</code></em> is set. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-free-full"><code class="function">g_list_free_full()</code></a> using <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a> as <a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> function. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> ModemManager.Sms][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
</td>
</tr>
</tbody>
@@ -574,7 +609,7 @@ for the asynchronous version of this method.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A list of <a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> objects, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if either not found or <em class="parameter"><code>error</code></em> is set. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-free-full"><code class="function">g_list_free_full()</code></a> using <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a> as <a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> function. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> MM.Sms][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+<td>A list of <a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> objects, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if either not found or <em class="parameter"><code>error</code></em> is set. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-free-full"><code class="function">g_list_free_full()</code></a> using <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a> as <a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> function. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> MMSms][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
</td>
</tr>
</tbody>
@@ -584,6 +619,6 @@ for the asynchronous version of this method.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MMModemOma.html b/docs/reference/libmm-glib/html/MMModemOma.html
new file mode 100644
index 0000000..4ae09a4
--- /dev/null
+++ b/docs/reference/libmm-glib/html/MMModemOma.html
@@ -0,0 +1,905 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>MMModemOma</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="libmm-glib Reference Manual">
+<link rel="up" href="ch03s08.html" title="OMA support">
+<link rel="prev" href="ch03s08.html" title="OMA support">
+<link rel="next" href="ch04.html" title="The Bearer object">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="ch03s08.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch03s08.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libmm-glib Reference Manual</th>
+<td><a accesskey="n" href="ch04.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#MMModemOma.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#MMModemOma.description" class="shortcut">Description</a>
+  | 
+ <a href="#MMModemOma.object-hierarchy" class="shortcut">Object Hierarchy</a>
+  | 
+ <a href="#MMModemOma.implemented-interfaces" class="shortcut">Implemented Interfaces</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="MMModemOma"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="MMModemOma.top_of_page"></a>MMModemOma</span></h2>
+<p>MMModemOma — The OMA interface</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="MMModemOma.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">struct <a class="link" href="MMModemOma.html#MMModemOma-struct" title="struct MMModemOma">MMModemOma</a>;
+struct <a class="link" href="MMModemOma.html#MMOmaPendingNetworkInitiatedSession" title="struct MMOmaPendingNetworkInitiatedSession">MMOmaPendingNetworkInitiatedSession</a>;
+
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMModemOma.html#mm-modem-oma-get-path" title="mm_modem_oma_get_path ()">mm_modem_oma_get_path</a> (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMModemOma.html#mm-modem-oma-dup-path" title="mm_modem_oma_dup_path ()">mm_modem_oma_dup_path</a> (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>);
+
+<span class="returnvalue">void</span> <a class="link" href="MMModemOma.html#mm-modem-oma-setup" title="mm_modem_oma_setup ()">mm_modem_oma_setup</a> (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>,
+ <em class="parameter"><code><span class="type">MMOmaFeature</span> features</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMModemOma.html#mm-modem-oma-setup-finish" title="mm_modem_oma_setup_finish ()">mm_modem_oma_setup_finish</a> (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMModemOma.html#mm-modem-oma-setup-sync" title="mm_modem_oma_setup_sync ()">mm_modem_oma_setup_sync</a> (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>,
+ <em class="parameter"><code><span class="type">MMOmaFeature</span> features</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="MMModemOma.html#mm-modem-oma-start-client-initiated-session" title="mm_modem_oma_start_client_initiated_session ()">mm_modem_oma_start_client_initiated_session</a>
+ (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>,
+ <em class="parameter"><code><span class="type">MMOmaSessionType</span> session_type</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMModemOma.html#mm-modem-oma-start-client-initiated-session-finish" title="mm_modem_oma_start_client_initiated_session_finish ()">mm_modem_oma_start_client_initiated_session_finish</a>
+ (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMModemOma.html#mm-modem-oma-start-client-initiated-session-sync" title="mm_modem_oma_start_client_initiated_session_sync ()">mm_modem_oma_start_client_initiated_session_sync</a>
+ (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>,
+ <em class="parameter"><code><span class="type">MMOmaSessionType</span> session_type</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="MMModemOma.html#mm-modem-oma-accept-network-initiated-session" title="mm_modem_oma_accept_network_initiated_session ()">mm_modem_oma_accept_network_initiated_session</a>
+ (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session_id</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> accept</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMModemOma.html#mm-modem-oma-accept-network-initiated-session-finish" title="mm_modem_oma_accept_network_initiated_session_finish ()">mm_modem_oma_accept_network_initiated_session_finish</a>
+ (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMModemOma.html#mm-modem-oma-accept-network-initiated-session-sync" title="mm_modem_oma_accept_network_initiated_session_sync ()">mm_modem_oma_accept_network_initiated_session_sync</a>
+ (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session_id</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> accept</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="MMModemOma.html#mm-modem-oma-cancel-session" title="mm_modem_oma_cancel_session ()">mm_modem_oma_cancel_session</a> (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMModemOma.html#mm-modem-oma-cancel-session-finish" title="mm_modem_oma_cancel_session_finish ()">mm_modem_oma_cancel_session_finish</a> (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMModemOma.html#mm-modem-oma-cancel-session-sync" title="mm_modem_oma_cancel_session_sync ()">mm_modem_oma_cancel_session_sync</a> (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+<span class="returnvalue">MMOmaFeature</span> <a class="link" href="MMModemOma.html#mm-modem-oma-get-features" title="mm_modem_oma_get_features ()">mm_modem_oma_get_features</a> (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>);
+<span class="returnvalue">MMOmaSessionType</span> <a class="link" href="MMModemOma.html#mm-modem-oma-get-session-type" title="mm_modem_oma_get_session_type ()">mm_modem_oma_get_session_type</a> (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>);
+<span class="returnvalue">MMOmaSessionState</span> <a class="link" href="MMModemOma.html#mm-modem-oma-get-session-state" title="mm_modem_oma_get_session_state ()">mm_modem_oma_get_session_state</a> (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMModemOma.html#mm-modem-peek-pending-network-initiated-sessions" title="mm_modem_peek_pending_network_initiated_sessions ()">mm_modem_peek_pending_network_initiated_sessions</a>
+ (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>,
+ <em class="parameter"><code>const <a class="link" href="MMModemOma.html#MMOmaPendingNetworkInitiatedSession" title="struct MMOmaPendingNetworkInitiatedSession"><span class="type">MMOmaPendingNetworkInitiatedSession</span></a> **sessions</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_sessions</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMModemOma.html#mm-modem-get-pending-network-initiated-sessions" title="mm_modem_get_pending_network_initiated_sessions ()">mm_modem_get_pending_network_initiated_sessions</a>
+ (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>,
+ <em class="parameter"><code><a class="link" href="MMModemOma.html#MMOmaPendingNetworkInitiatedSession" title="struct MMOmaPendingNetworkInitiatedSession"><span class="type">MMOmaPendingNetworkInitiatedSession</span></a> **sessions</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_sessions</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="MMModemOma.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+ <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+ +----<a href="http://library.gnome.org/devel/gio/unstable/GDBusProxy.html">GDBusProxy</a>
+ +----<a class="link" href="MmGdbusModemOmaProxy.html" title="MmGdbusModemOmaProxy">MmGdbusModemOmaProxy</a>
+ +----MMModemOma
+</pre>
+</div>
+<div class="refsect1">
+<a name="MMModemOma.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
+<p>
+MMModemOma implements
+ <a href="http://library.gnome.org/devel/gio/unstable/GDBusInterface.html">GDBusInterface</a>, <a href="http://library.gnome.org/devel/gio/unstable/GInitable.html">GInitable</a>, <a href="http://library.gnome.org/devel/gio/unstable/GAsyncInitable.html">GAsyncInitable</a> and <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma">MmGdbusModemOma</a>.</p>
+</div>
+<div class="refsect1">
+<a name="MMModemOma.description"></a><h2>Description</h2>
+<p>
+The <a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> is an object providing access to the methods, signals and
+properties of the OMA interface.
+</p>
+<p>
+The OMA interface is exposed whenever a modem has OMA device management capabilities.
+</p>
+</div>
+<div class="refsect1">
+<a name="MMModemOma.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="MMModemOma-struct"></a><h3>struct MMModemOma</h3>
+<pre class="programlisting">struct MMModemOma;</pre>
+<p>
+The <a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> structure contains private data and should only be accessed
+using the provided API.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="MMOmaPendingNetworkInitiatedSession"></a><h3>struct MMOmaPendingNetworkInitiatedSession</h3>
+<pre class="programlisting">struct MMOmaPendingNetworkInitiatedSession {
+ MMOmaSessionType session_type;
+ guint session_id;
+};
+</pre>
+<p>
+<a class="link" href="MMModemOma.html#MMOmaPendingNetworkInitiatedSession" title="struct MMOmaPendingNetworkInitiatedSession"><span class="type">MMOmaPendingNetworkInitiatedSession</span></a> is a simple struct specifying the
+information available for a pending network-initiated OMA session.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><span class="type">MMOmaSessionType</span> <em class="structfield"><code><a name="MMOmaPendingNetworkInitiatedSession.session-type"></a>session_type</code></em>;</span></p></td>
+<td>A <span class="type">MMOmaSessionType</span>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="MMOmaPendingNetworkInitiatedSession.session-id"></a>session_id</code></em>;</span></p></td>
+<td>Unique ID of the network-initiated OMA session.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-oma-get-path"></a><h3>mm_modem_oma_get_path ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_modem_oma_get_path (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>);</pre>
+<p>
+Gets the DBus path of the <a class="link" href="MMObject.html" title="MMObject"><span class="type">MMObject</span></a> which implements this interface.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The DBus path of the <a class="link" href="MMObject.html" title="MMObject"><span class="type">MMObject</span></a> object. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-oma-dup-path"></a><h3>mm_modem_oma_dup_path ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_modem_oma_dup_path (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>);</pre>
+<p>
+Gets a copy of the DBus path of the <a class="link" href="MMObject.html" title="MMObject"><span class="type">MMObject</span></a> object which implements this interface.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The DBus path of the <a class="link" href="MMObject.html" title="MMObject"><span class="type">MMObject</span></a>. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-oma-setup"></a><h3>mm_modem_oma_setup ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> mm_modem_oma_setup (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>,
+ <em class="parameter"><code><span class="type">MMOmaFeature</span> features</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>
+Asynchronously sets up the OMA device management service.
+</p>
+<p>
+When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
+You can then call <a class="link" href="MMModemOma.html#mm-modem-oma-setup-finish" title="mm_modem_oma_setup_finish ()"><code class="function">mm_modem_oma_setup_finish()</code></a> to get the result of the operation.
+</p>
+<p>
+See <a class="link" href="MMModemOma.html#mm-modem-oma-setup-sync" title="mm_modem_oma_setup_sync ()"><code class="function">mm_modem_oma_setup_sync()</code></a> for the synchronous, blocking version of this method.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>features</code></em> :</span></p></td>
+<td>Mask of <span class="type">MMOmaFeatures</span> to enable.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> to call when the request is satisfied or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>User data to pass to <em class="parameter"><code>callback</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-oma-setup-finish"></a><h3>mm_modem_oma_setup_finish ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_modem_oma_setup_finish (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <a class="link" href="MMModemOma.html#mm-modem-oma-setup" title="mm_modem_oma_setup ()"><code class="function">mm_modem_oma_setup()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>The <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> obtained from the <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> passed to <a class="link" href="MMModemOma.html#mm-modem-oma-setup" title="mm_modem_oma_setup ()"><code class="function">mm_modem_oma_setup()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the setup was successful, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if <em class="parameter"><code>error</code></em> is set.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-oma-setup-sync"></a><h3>mm_modem_oma_setup_sync ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_modem_oma_setup_sync (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>,
+ <em class="parameter"><code><span class="type">MMOmaFeature</span> features</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Synchronously sets up the OMA device management service.
+</p>
+<p>
+The calling thread is blocked until a reply is received. See <a class="link" href="MMModemOma.html#mm-modem-oma-setup" title="mm_modem_oma_setup ()"><code class="function">mm_modem_oma_setup()</code></a>
+for the asynchronous version of this method.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>features</code></em> :</span></p></td>
+<td>Mask of <span class="type">MMOmaFeatures</span> to enable.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the setup was successful, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if <em class="parameter"><code>error</code></em> is set.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-oma-start-client-initiated-session"></a><h3>mm_modem_oma_start_client_initiated_session ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> mm_modem_oma_start_client_initiated_session
+ (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>,
+ <em class="parameter"><code><span class="type">MMOmaSessionType</span> session_type</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>
+Asynchronously starts a client-initiated OMA device management session.
+</p>
+<p>
+When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
+You can then call <a class="link" href="MMModemOma.html#mm-modem-oma-start-client-initiated-session-finish" title="mm_modem_oma_start_client_initiated_session_finish ()"><code class="function">mm_modem_oma_start_client_initiated_session_finish()</code></a> to get the result of the operation.
+</p>
+<p>
+See <a class="link" href="MMModemOma.html#mm-modem-oma-start-client-initiated-session-sync" title="mm_modem_oma_start_client_initiated_session_sync ()"><code class="function">mm_modem_oma_start_client_initiated_session_sync()</code></a> for the synchronous, blocking version of this method.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>session_type</code></em> :</span></p></td>
+<td>A <span class="type">MMOmaSessionType</span>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> to call when the request is satisfied or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>User data to pass to <em class="parameter"><code>callback</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-oma-start-client-initiated-session-finish"></a><h3>mm_modem_oma_start_client_initiated_session_finish ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_modem_oma_start_client_initiated_session_finish
+ (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <a class="link" href="MMModemOma.html#mm-modem-oma-start-client-initiated-session" title="mm_modem_oma_start_client_initiated_session ()"><code class="function">mm_modem_oma_start_client_initiated_session()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>The <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> obtained from the <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> passed to <a class="link" href="MMModemOma.html#mm-modem-oma-start-client-initiated-session" title="mm_modem_oma_start_client_initiated_session ()"><code class="function">mm_modem_oma_start_client_initiated_session()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the session was started, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if <em class="parameter"><code>error</code></em> is set.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-oma-start-client-initiated-session-sync"></a><h3>mm_modem_oma_start_client_initiated_session_sync ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_modem_oma_start_client_initiated_session_sync
+ (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>,
+ <em class="parameter"><code><span class="type">MMOmaSessionType</span> session_type</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Synchronously starts a client-initiated OMA device management session.
+</p>
+<p>
+The calling thread is blocked until a reply is received. See <a class="link" href="MMModemOma.html#mm-modem-oma-start-client-initiated-session" title="mm_modem_oma_start_client_initiated_session ()"><code class="function">mm_modem_oma_start_client_initiated_session()</code></a>
+for the asynchronous version of this method.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>session_type</code></em> :</span></p></td>
+<td>A <span class="type">MMOmaSessionType</span>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the session was started, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if <em class="parameter"><code>error</code></em> is set.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-oma-accept-network-initiated-session"></a><h3>mm_modem_oma_accept_network_initiated_session ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> mm_modem_oma_accept_network_initiated_session
+ (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session_id</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> accept</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>
+Asynchronously accepts a nework-initiated OMA device management session.
+</p>
+<p>
+When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
+You can then call <a class="link" href="MMModemOma.html#mm-modem-oma-accept-network-initiated-session-finish" title="mm_modem_oma_accept_network_initiated_session_finish ()"><code class="function">mm_modem_oma_accept_network_initiated_session_finish()</code></a> to get the result of the operation.
+</p>
+<p>
+See <a class="link" href="MMModemOma.html#mm-modem-oma-accept-network-initiated-session-sync" title="mm_modem_oma_accept_network_initiated_session_sync ()"><code class="function">mm_modem_oma_accept_network_initiated_session_sync()</code></a> for the synchronous, blocking version of this method.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>session_id</code></em> :</span></p></td>
+<td>The unique ID of the network-initiated session.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>accept</code></em> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the session is to be accepted, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> to call when the request is satisfied or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>User data to pass to <em class="parameter"><code>callback</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-oma-accept-network-initiated-session-finish"></a><h3>mm_modem_oma_accept_network_initiated_session_finish ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_modem_oma_accept_network_initiated_session_finish
+ (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <a class="link" href="MMModemOma.html#mm-modem-oma-accept-network-initiated-session" title="mm_modem_oma_accept_network_initiated_session ()"><code class="function">mm_modem_oma_accept_network_initiated_session()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>The <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> obtained from the <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> passed to <a class="link" href="MMModemOma.html#mm-modem-oma-accept-network-initiated-session" title="mm_modem_oma_accept_network_initiated_session ()"><code class="function">mm_modem_oma_accept_network_initiated_session()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the session was started, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if <em class="parameter"><code>error</code></em> is set.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-oma-accept-network-initiated-session-sync"></a><h3>mm_modem_oma_accept_network_initiated_session_sync ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_modem_oma_accept_network_initiated_session_sync
+ (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session_id</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> accept</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Synchronously accepts a nework-initiated OMA device management session.
+</p>
+<p>
+The calling thread is blocked until a reply is received. See <a class="link" href="MMModemOma.html#mm-modem-oma-accept-network-initiated-session" title="mm_modem_oma_accept_network_initiated_session ()"><code class="function">mm_modem_oma_accept_network_initiated_session()</code></a>
+for the asynchronous version of this method.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>session_id</code></em> :</span></p></td>
+<td>The unique ID of the network-initiated session.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>accept</code></em> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the session is to be accepted, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the session was started, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if <em class="parameter"><code>error</code></em> is set.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-oma-cancel-session"></a><h3>mm_modem_oma_cancel_session ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> mm_modem_oma_cancel_session (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>
+Asynchronously cancels the current OMA device management session.
+</p>
+<p>
+When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
+You can then call <a class="link" href="MMModemOma.html#mm-modem-oma-cancel-session-finish" title="mm_modem_oma_cancel_session_finish ()"><code class="function">mm_modem_oma_cancel_session_finish()</code></a> to get the result of the operation.
+</p>
+<p>
+See <a class="link" href="MMModemOma.html#mm-modem-oma-cancel-session-sync" title="mm_modem_oma_cancel_session_sync ()"><code class="function">mm_modem_oma_cancel_session_sync()</code></a> for the synchronous, blocking version of this method.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> to call when the request is satisfied or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>User data to pass to <em class="parameter"><code>callback</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-oma-cancel-session-finish"></a><h3>mm_modem_oma_cancel_session_finish ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_modem_oma_cancel_session_finish (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <a class="link" href="MMModemOma.html#mm-modem-oma-cancel-session" title="mm_modem_oma_cancel_session ()"><code class="function">mm_modem_oma_cancel_session()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>The <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> obtained from the <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> passed to <a class="link" href="MMModemOma.html#mm-modem-oma-cancel-session" title="mm_modem_oma_cancel_session ()"><code class="function">mm_modem_oma_cancel_session()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the session was started, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if <em class="parameter"><code>error</code></em> is set.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-oma-cancel-session-sync"></a><h3>mm_modem_oma_cancel_session_sync ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_modem_oma_cancel_session_sync (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Synchronously cancels the current OMA device management session.
+</p>
+<p>
+The calling thread is blocked until a reply is received. See <a class="link" href="MMModemOma.html#mm-modem-oma-cancel-session" title="mm_modem_oma_cancel_session ()"><code class="function">mm_modem_oma_cancel_session()</code></a>
+for the asynchronous version of this method.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the session was started, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if <em class="parameter"><code>error</code></em> is set.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-oma-get-features"></a><h3>mm_modem_oma_get_features ()</h3>
+<pre class="programlisting"><span class="returnvalue">MMOmaFeature</span> mm_modem_oma_get_features (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>);</pre>
+<p>
+Gets the currently enabled OMA features.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a bitmask of <span class="type">MMOmaFeature</span> values.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-oma-get-session-type"></a><h3>mm_modem_oma_get_session_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">MMOmaSessionType</span> mm_modem_oma_get_session_type (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>);</pre>
+<p>
+Gets the type of the current OMA device management session.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <span class="type">MMOmaSessionType</span>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-oma-get-session-state"></a><h3>mm_modem_oma_get_session_state ()</h3>
+<pre class="programlisting"><span class="returnvalue">MMOmaSessionState</span> mm_modem_oma_get_session_state (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>);</pre>
+<p>
+Gets the state of the current OMA device management session.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <span class="type">MMOmaSessionState</span>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-peek-pending-network-initiated-sessions"></a><h3>mm_modem_peek_pending_network_initiated_sessions ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_modem_peek_pending_network_initiated_sessions
+ (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>,
+ <em class="parameter"><code>const <a class="link" href="MMModemOma.html#MMOmaPendingNetworkInitiatedSession" title="struct MMOmaPendingNetworkInitiatedSession"><span class="type">MMOmaPendingNetworkInitiatedSession</span></a> **sessions</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_sessions</code></em>);</pre>
+<p>
+Gets the list of pending network-initiated OMA sessions.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sessions</code></em> :</span></p></td>
+<td>Return location for the array of <a class="link" href="MMModemOma.html#MMOmaPendingNetworkInitiatedSession" title="struct MMOmaPendingNetworkInitiatedSession"><span class="type">MMOmaPendingNetworkInitiatedSession</span></a> values. Do not free the returned array, it is owned by <em class="parameter"><code>self</code></em>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_sessions]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>n_sessions</code></em> :</span></p></td>
+<td>Return location for the number of values in <em class="parameter"><code>sessions</code></em>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>sessions</code></em> and <em class="parameter"><code>n_sessions</code></em> are set, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-get-pending-network-initiated-sessions"></a><h3>mm_modem_get_pending_network_initiated_sessions ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_modem_get_pending_network_initiated_sessions
+ (<em class="parameter"><code><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> *self</code></em>,
+ <em class="parameter"><code><a class="link" href="MMModemOma.html#MMOmaPendingNetworkInitiatedSession" title="struct MMOmaPendingNetworkInitiatedSession"><span class="type">MMOmaPendingNetworkInitiatedSession</span></a> **sessions</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_sessions</code></em>);</pre>
+<p>
+Gets the list of pending network-initiated OMA sessions.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sessions</code></em> :</span></p></td>
+<td>Return location for the array of <a class="link" href="MMModemOma.html#MMOmaPendingNetworkInitiatedSession" title="struct MMOmaPendingNetworkInitiatedSession"><span class="type">MMOmaPendingNetworkInitiatedSession</span></a> structs. The returned array should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when no longer needed. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_sessions]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>n_sessions</code></em> :</span></p></td>
+<td>Return location for the number of values in <em class="parameter"><code>sessions</code></em>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>sessions</code></em> and <em class="parameter"><code>n_sessions</code></em> are set, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.19</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MMModemSignal.html b/docs/reference/libmm-glib/html/MMModemSignal.html
new file mode 100644
index 0000000..3a0f2de
--- /dev/null
+++ b/docs/reference/libmm-glib/html/MMModemSignal.html
@@ -0,0 +1,658 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>MMModemSignal</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="libmm-glib Reference Manual">
+<link rel="up" href="ch03s07.html" title="Extended signal information">
+<link rel="prev" href="ch03s07.html" title="Extended signal information">
+<link rel="next" href="MMSignal.html" title="MMSignal">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="ch03s07.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch03s07.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libmm-glib Reference Manual</th>
+<td><a accesskey="n" href="MMSignal.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#MMModemSignal.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#MMModemSignal.description" class="shortcut">Description</a>
+  | 
+ <a href="#MMModemSignal.object-hierarchy" class="shortcut">Object Hierarchy</a>
+  | 
+ <a href="#MMModemSignal.implemented-interfaces" class="shortcut">Implemented Interfaces</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="MMModemSignal"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="MMModemSignal.top_of_page"></a>MMModemSignal</span></h2>
+<p>MMModemSignal — The extended Signal interface</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="MMModemSignal.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">struct <a class="link" href="MMModemSignal.html#MMModemSignal-struct" title="struct MMModemSignal">MMModemSignal</a>;
+
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMModemSignal.html#mm-modem-signal-get-path" title="mm_modem_signal_get_path ()">mm_modem_signal_get_path</a> (<em class="parameter"><code><a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> *self</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMModemSignal.html#mm-modem-signal-dup-path" title="mm_modem_signal_dup_path ()">mm_modem_signal_dup_path</a> (<em class="parameter"><code><a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> *self</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="MMModemSignal.html#mm-modem-signal-get-rate" title="mm_modem_signal_get_rate ()">mm_modem_signal_get_rate</a> (<em class="parameter"><code><a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> *self</code></em>);
+<a class="link" href="MMSignal.html" title="MMSignal"><span class="returnvalue">MMSignal</span></a> * <a class="link" href="MMModemSignal.html#mm-modem-signal-peek-cdma" title="mm_modem_signal_peek_cdma ()">mm_modem_signal_peek_cdma</a> (<em class="parameter"><code><a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> *self</code></em>);
+<a class="link" href="MMSignal.html" title="MMSignal"><span class="returnvalue">MMSignal</span></a> * <a class="link" href="MMModemSignal.html#mm-modem-signal-get-cdma" title="mm_modem_signal_get_cdma ()">mm_modem_signal_get_cdma</a> (<em class="parameter"><code><a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> *self</code></em>);
+<a class="link" href="MMSignal.html" title="MMSignal"><span class="returnvalue">MMSignal</span></a> * <a class="link" href="MMModemSignal.html#mm-modem-signal-peek-evdo" title="mm_modem_signal_peek_evdo ()">mm_modem_signal_peek_evdo</a> (<em class="parameter"><code><a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> *self</code></em>);
+<a class="link" href="MMSignal.html" title="MMSignal"><span class="returnvalue">MMSignal</span></a> * <a class="link" href="MMModemSignal.html#mm-modem-signal-get-evdo" title="mm_modem_signal_get_evdo ()">mm_modem_signal_get_evdo</a> (<em class="parameter"><code><a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> *self</code></em>);
+<a class="link" href="MMSignal.html" title="MMSignal"><span class="returnvalue">MMSignal</span></a> * <a class="link" href="MMModemSignal.html#mm-modem-signal-peek-gsm" title="mm_modem_signal_peek_gsm ()">mm_modem_signal_peek_gsm</a> (<em class="parameter"><code><a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> *self</code></em>);
+<a class="link" href="MMSignal.html" title="MMSignal"><span class="returnvalue">MMSignal</span></a> * <a class="link" href="MMModemSignal.html#mm-modem-signal-get-gsm" title="mm_modem_signal_get_gsm ()">mm_modem_signal_get_gsm</a> (<em class="parameter"><code><a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> *self</code></em>);
+<a class="link" href="MMSignal.html" title="MMSignal"><span class="returnvalue">MMSignal</span></a> * <a class="link" href="MMModemSignal.html#mm-modem-signal-peek-umts" title="mm_modem_signal_peek_umts ()">mm_modem_signal_peek_umts</a> (<em class="parameter"><code><a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> *self</code></em>);
+<a class="link" href="MMSignal.html" title="MMSignal"><span class="returnvalue">MMSignal</span></a> * <a class="link" href="MMModemSignal.html#mm-modem-signal-get-umts" title="mm_modem_signal_get_umts ()">mm_modem_signal_get_umts</a> (<em class="parameter"><code><a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> *self</code></em>);
+<a class="link" href="MMSignal.html" title="MMSignal"><span class="returnvalue">MMSignal</span></a> * <a class="link" href="MMModemSignal.html#mm-modem-signal-peek-lte" title="mm_modem_signal_peek_lte ()">mm_modem_signal_peek_lte</a> (<em class="parameter"><code><a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> *self</code></em>);
+<a class="link" href="MMSignal.html" title="MMSignal"><span class="returnvalue">MMSignal</span></a> * <a class="link" href="MMModemSignal.html#mm-modem-signal-get-lte" title="mm_modem_signal_get_lte ()">mm_modem_signal_get_lte</a> (<em class="parameter"><code><a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> *self</code></em>);
+
+<span class="returnvalue">void</span> <a class="link" href="MMModemSignal.html#mm-modem-signal-setup" title="mm_modem_signal_setup ()">mm_modem_signal_setup</a> (<em class="parameter"><code><a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> rate</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMModemSignal.html#mm-modem-signal-setup-finish" title="mm_modem_signal_setup_finish ()">mm_modem_signal_setup_finish</a> (<em class="parameter"><code><a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMModemSignal.html#mm-modem-signal-setup-sync" title="mm_modem_signal_setup_sync ()">mm_modem_signal_setup_sync</a> (<em class="parameter"><code><a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> rate</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="MMModemSignal.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+ <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+ +----<a href="http://library.gnome.org/devel/gio/unstable/GDBusProxy.html">GDBusProxy</a>
+ +----<a class="link" href="MmGdbusModemSignalProxy.html" title="MmGdbusModemSignalProxy">MmGdbusModemSignalProxy</a>
+ +----MMModemSignal
+</pre>
+</div>
+<div class="refsect1">
+<a name="MMModemSignal.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
+<p>
+MMModemSignal implements
+ <a href="http://library.gnome.org/devel/gio/unstable/GDBusInterface.html">GDBusInterface</a>, <a href="http://library.gnome.org/devel/gio/unstable/GInitable.html">GInitable</a>, <a href="http://library.gnome.org/devel/gio/unstable/GAsyncInitable.html">GAsyncInitable</a> and <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal">MmGdbusModemSignal</a>.</p>
+</div>
+<div class="refsect1">
+<a name="MMModemSignal.description"></a><h2>Description</h2>
+<p>
+The <a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> is an object providing access to the methods, signals and
+properties of the Signal interface.
+</p>
+<p>
+The Signal interface is exposed whenever a modem has extended signal retrieval
+capabilities.
+</p>
+</div>
+<div class="refsect1">
+<a name="MMModemSignal.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="MMModemSignal-struct"></a><h3>struct MMModemSignal</h3>
+<pre class="programlisting">struct MMModemSignal;</pre>
+<p>
+The <a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> structure contains private data and should only be accessed
+using the provided API.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-signal-get-path"></a><h3>mm_modem_signal_get_path ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_modem_signal_get_path (<em class="parameter"><code><a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> *self</code></em>);</pre>
+<p>
+Gets the DBus path of the <a class="link" href="MMObject.html" title="MMObject"><span class="type">MMObject</span></a> which implements this interface.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The DBus path of the <a class="link" href="MMObject.html" title="MMObject"><span class="type">MMObject</span></a> object. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-signal-dup-path"></a><h3>mm_modem_signal_dup_path ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_modem_signal_dup_path (<em class="parameter"><code><a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> *self</code></em>);</pre>
+<p>
+Gets a copy of the DBus path of the <a class="link" href="MMObject.html" title="MMObject"><span class="type">MMObject</span></a> object which implements this interface.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The DBus path of the <a class="link" href="MMObject.html" title="MMObject"><span class="type">MMObject</span></a>. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-signal-get-rate"></a><h3>mm_modem_signal_get_rate ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> mm_modem_signal_get_rate (<em class="parameter"><code><a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> *self</code></em>);</pre>
+<p>
+Gets the currently configured refresh rate.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the refresh rate, in seconds.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-signal-peek-cdma"></a><h3>mm_modem_signal_peek_cdma ()</h3>
+<pre class="programlisting"><a class="link" href="MMSignal.html" title="MMSignal"><span class="returnvalue">MMSignal</span></a> * mm_modem_signal_peek_cdma (<em class="parameter"><code><a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> *self</code></em>);</pre>
+<p>
+Gets a <a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> object specifying the CDMA signal information.
+</p>
+<p>
+</p>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>The returned value is only valid until the property changes so
+it is only safe to use this function on the thread where
+<em class="parameter"><code>self</code></em> was constructed. Use <a class="link" href="MMModemSignal.html#mm-modem-signal-get-cdma" title="mm_modem_signal_get_cdma ()"><code class="function">mm_modem_signal_get_cdma()</code></a> if on another
+thread.</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a>. Do not free the returned value, it belongs to <em class="parameter"><code>self</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-signal-get-cdma"></a><h3>mm_modem_signal_get_cdma ()</h3>
+<pre class="programlisting"><a class="link" href="MMSignal.html" title="MMSignal"><span class="returnvalue">MMSignal</span></a> * mm_modem_signal_get_cdma (<em class="parameter"><code><a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> *self</code></em>);</pre>
+<p>
+Gets a <a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> object specifying the CDMA signal information.
+</p>
+<p>
+</p>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>The values reported by <em class="parameter"><code>self</code></em> are not updated when the values in the
+interface change. Instead, the client is expected to call
+<a class="link" href="MMModemSignal.html#mm-modem-signal-get-cdma" title="mm_modem_signal_get_cdma ()"><code class="function">mm_modem_signal_get_cdma()</code></a> again to get a new <a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> with the
+new values.</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> that must be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if unknown. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-signal-peek-evdo"></a><h3>mm_modem_signal_peek_evdo ()</h3>
+<pre class="programlisting"><a class="link" href="MMSignal.html" title="MMSignal"><span class="returnvalue">MMSignal</span></a> * mm_modem_signal_peek_evdo (<em class="parameter"><code><a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> *self</code></em>);</pre>
+<p>
+Gets a <a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> object specifying the EV-DO signal information.
+</p>
+<p>
+</p>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>The returned value is only valid until the property changes so
+it is only safe to use this function on the thread where
+<em class="parameter"><code>self</code></em> was constructed. Use <a class="link" href="MMModemSignal.html#mm-modem-signal-get-evdo" title="mm_modem_signal_get_evdo ()"><code class="function">mm_modem_signal_get_evdo()</code></a> if on another
+thread.</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a>. Do not free the returned value, it belongs to <em class="parameter"><code>self</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-signal-get-evdo"></a><h3>mm_modem_signal_get_evdo ()</h3>
+<pre class="programlisting"><a class="link" href="MMSignal.html" title="MMSignal"><span class="returnvalue">MMSignal</span></a> * mm_modem_signal_get_evdo (<em class="parameter"><code><a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> *self</code></em>);</pre>
+<p>
+Gets a <a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> object specifying the EV-DO signal information.
+</p>
+<p>
+</p>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>The values reported by <em class="parameter"><code>self</code></em> are not updated when the values in the
+interface change. Instead, the client is expected to call
+<a class="link" href="MMModemSignal.html#mm-modem-signal-get-evdo" title="mm_modem_signal_get_evdo ()"><code class="function">mm_modem_signal_get_evdo()</code></a> again to get a new <a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> with the
+new values.</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> that must be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if unknown. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-signal-peek-gsm"></a><h3>mm_modem_signal_peek_gsm ()</h3>
+<pre class="programlisting"><a class="link" href="MMSignal.html" title="MMSignal"><span class="returnvalue">MMSignal</span></a> * mm_modem_signal_peek_gsm (<em class="parameter"><code><a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> *self</code></em>);</pre>
+<p>
+Gets a <a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> object specifying the GSM signal information.
+</p>
+<p>
+</p>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>The returned value is only valid until the property changes so
+it is only safe to use this function on the thread where
+<em class="parameter"><code>self</code></em> was constructed. Use <a class="link" href="MMModemSignal.html#mm-modem-signal-get-gsm" title="mm_modem_signal_get_gsm ()"><code class="function">mm_modem_signal_get_gsm()</code></a> if on another
+thread.</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a>. Do not free the returned value, it belongs to <em class="parameter"><code>self</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-signal-get-gsm"></a><h3>mm_modem_signal_get_gsm ()</h3>
+<pre class="programlisting"><a class="link" href="MMSignal.html" title="MMSignal"><span class="returnvalue">MMSignal</span></a> * mm_modem_signal_get_gsm (<em class="parameter"><code><a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> *self</code></em>);</pre>
+<p>
+Gets a <a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> object specifying the GSM signal information.
+</p>
+<p>
+</p>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>The values reported by <em class="parameter"><code>self</code></em> are not updated when the values in the
+interface change. Instead, the client is expected to call
+<a class="link" href="MMModemSignal.html#mm-modem-signal-get-gsm" title="mm_modem_signal_get_gsm ()"><code class="function">mm_modem_signal_get_gsm()</code></a> again to get a new <a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> with the
+new values.</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> that must be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if unknown. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-signal-peek-umts"></a><h3>mm_modem_signal_peek_umts ()</h3>
+<pre class="programlisting"><a class="link" href="MMSignal.html" title="MMSignal"><span class="returnvalue">MMSignal</span></a> * mm_modem_signal_peek_umts (<em class="parameter"><code><a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> *self</code></em>);</pre>
+<p>
+Gets a <a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> object specifying the UMTS signal information.
+</p>
+<p>
+</p>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>The returned value is only valid until the property changes so
+it is only safe to use this function on the thread where
+<em class="parameter"><code>self</code></em> was constructed. Use <a class="link" href="MMModemSignal.html#mm-modem-signal-get-umts" title="mm_modem_signal_get_umts ()"><code class="function">mm_modem_signal_get_umts()</code></a> if on another
+thread.</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a>. Do not free the returned value, it belongs to <em class="parameter"><code>self</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-signal-get-umts"></a><h3>mm_modem_signal_get_umts ()</h3>
+<pre class="programlisting"><a class="link" href="MMSignal.html" title="MMSignal"><span class="returnvalue">MMSignal</span></a> * mm_modem_signal_get_umts (<em class="parameter"><code><a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> *self</code></em>);</pre>
+<p>
+Gets a <a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> object specifying the UMTS signal information.
+</p>
+<p>
+</p>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>The values reported by <em class="parameter"><code>self</code></em> are not updated when the values in the
+interface change. Instead, the client is expected to call
+<a class="link" href="MMModemSignal.html#mm-modem-signal-get-umts" title="mm_modem_signal_get_umts ()"><code class="function">mm_modem_signal_get_umts()</code></a> again to get a new <a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> with the
+new values.</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> that must be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if unknown. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-signal-peek-lte"></a><h3>mm_modem_signal_peek_lte ()</h3>
+<pre class="programlisting"><a class="link" href="MMSignal.html" title="MMSignal"><span class="returnvalue">MMSignal</span></a> * mm_modem_signal_peek_lte (<em class="parameter"><code><a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> *self</code></em>);</pre>
+<p>
+Gets a <a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> object specifying the LTE signal information.
+</p>
+<p>
+</p>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>The returned value is only valid until the property changes so
+it is only safe to use this function on the thread where
+<em class="parameter"><code>self</code></em> was constructed. Use <a class="link" href="MMModemSignal.html#mm-modem-signal-get-lte" title="mm_modem_signal_get_lte ()"><code class="function">mm_modem_signal_get_lte()</code></a> if on another
+thread.</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a>. Do not free the returned value, it belongs to <em class="parameter"><code>self</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-signal-get-lte"></a><h3>mm_modem_signal_get_lte ()</h3>
+<pre class="programlisting"><a class="link" href="MMSignal.html" title="MMSignal"><span class="returnvalue">MMSignal</span></a> * mm_modem_signal_get_lte (<em class="parameter"><code><a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> *self</code></em>);</pre>
+<p>
+Gets a <a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> object specifying the LTE signal information.
+</p>
+<p>
+</p>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>The values reported by <em class="parameter"><code>self</code></em> are not updated when the values in the
+interface change. Instead, the client is expected to call
+<a class="link" href="MMModemSignal.html#mm-modem-signal-get-lte" title="mm_modem_signal_get_lte ()"><code class="function">mm_modem_signal_get_lte()</code></a> again to get a new <a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> with the
+new values.</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> that must be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if unknown. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-signal-setup"></a><h3>mm_modem_signal_setup ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> mm_modem_signal_setup (<em class="parameter"><code><a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> rate</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>
+Asynchronously setups the extended signal quality retrieval.
+</p>
+<p>
+When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
+You can then call <a class="link" href="MMModemSignal.html#mm-modem-signal-setup-finish" title="mm_modem_signal_setup_finish ()"><code class="function">mm_modem_signal_setup_finish()</code></a> to get the result of the operation.
+</p>
+<p>
+See <a class="link" href="MMModemSignal.html#mm-modem-signal-setup-sync" title="mm_modem_signal_setup_sync ()"><code class="function">mm_modem_signal_setup_sync()</code></a> for the synchronous, blocking version of this method.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>rate</code></em> :</span></p></td>
+<td>Rate to use when refreshing signal values.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> to call when the request is satisfied or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>User data to pass to <em class="parameter"><code>callback</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-signal-setup-finish"></a><h3>mm_modem_signal_setup_finish ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_modem_signal_setup_finish (<em class="parameter"><code><a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <a class="link" href="MMModemSignal.html#mm-modem-signal-setup" title="mm_modem_signal_setup ()"><code class="function">mm_modem_signal_setup()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>The <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> obtained from the <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> passed to <a class="link" href="MMModemSignal.html#mm-modem-signal-setup" title="mm_modem_signal_setup ()"><code class="function">mm_modem_signal_setup()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the setup was successful, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if <em class="parameter"><code>error</code></em> is set.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-modem-signal-setup-sync"></a><h3>mm_modem_signal_setup_sync ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_modem_signal_setup_sync (<em class="parameter"><code><a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> rate</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Synchronously setups the extended signal quality retrieval.
+</p>
+<p>
+The calling thread is blocked until a reply is received. See <a class="link" href="MMModemSignal.html#mm-modem-signal-setup" title="mm_modem_signal_setup ()"><code class="function">mm_modem_signal_setup()</code></a>
+for the asynchronous version of this method.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>rate</code></em> :</span></p></td>
+<td>Rate to use when refreshing signal values.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the setup was successful, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if <em class="parameter"><code>error</code></em> is set.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.19</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MMModemSimple.html b/docs/reference/libmm-glib/html/MMModemSimple.html
index b0a0e23..df9f8b3 100644
--- a/docs/reference/libmm-glib/html/MMModemSimple.html
+++ b/docs/reference/libmm-glib/html/MMModemSimple.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch03s02.html" title="Simple interface support">
<link rel="prev" href="ch03s02.html" title="Simple interface support">
<link rel="next" href="MMSimpleConnectProperties.html" title="MMSimpleConnectProperties">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -104,7 +104,7 @@ The <a class="link" href="MMModemSimple.html" title="MMModemSimple"><span class=
properties of the Simple interface.
</p>
<p>
-The Simple interface is exposed on modems which are not in <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-MODEM-STATE-FAILED:CAPS"><code class="literal">MM_MODEM_STATE_FAILED</code></a> state.
+The Simple interface is exposed on modems which are not in <code class="literal">MM_MODEM_STATE_FAILED</code> state.
</p>
</div>
<div class="refsect1">
@@ -547,6 +547,6 @@ for the asynchronous version of this method.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MMModemTime.html b/docs/reference/libmm-glib/html/MMModemTime.html
index c3614b7..d73de62 100644
--- a/docs/reference/libmm-glib/html/MMModemTime.html
+++ b/docs/reference/libmm-glib/html/MMModemTime.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch03s05.html" title="Time support">
<link rel="prev" href="ch03s05.html" title="Time support">
<link rel="next" href="MMNetworkTimezone.html" title="MMNetworkTimezone">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -151,14 +151,68 @@ Gets a copy of the DBus path of the <a class="link" href="MMObject.html" title="
<a name="mm-modem-time-peek-network-timezone"></a><h3>mm_modem_time_peek_network_timezone ()</h3>
<pre class="programlisting"><a class="link" href="MMNetworkTimezone.html" title="MMNetworkTimezone"><span class="returnvalue">MMNetworkTimezone</span></a> * mm_modem_time_peek_network_timezone (<em class="parameter"><code><a class="link" href="MMModemTime.html" title="MMModemTime"><span class="type">MMModemTime</span></a> *self</code></em>);</pre>
<p>
+Gets the network timezone information.
</p>
+<p>
+</p>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>The returned value is only valid until the property changes so
+it is only safe to use this function on the thread where
+<em class="parameter"><code>self</code></em> was constructed. Use <a class="link" href="MMModemTime.html#mm-modem-time-get-network-timezone" title="mm_modem_time_get_network_timezone ()"><code class="function">mm_modem_time_get_network_timezone()</code></a> if on another
+thread.</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModemTime.html" title="MMModemTime"><span class="type">MMModemTime</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <a class="link" href="MMNetworkTimezone.html" title="MMNetworkTimezone"><span class="type">MMNetworkTimezone</span></a>. Do not free the returned value, it belongs to <em class="parameter"><code>self</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="mm-modem-time-get-network-timezone"></a><h3>mm_modem_time_get_network_timezone ()</h3>
<pre class="programlisting"><a class="link" href="MMNetworkTimezone.html" title="MMNetworkTimezone"><span class="returnvalue">MMNetworkTimezone</span></a> * mm_modem_time_get_network_timezone (<em class="parameter"><code><a class="link" href="MMModemTime.html" title="MMModemTime"><span class="type">MMModemTime</span></a> *self</code></em>);</pre>
<p>
+Gets the network timezone information.
+</p>
+<p>
+</p>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>The values reported by <em class="parameter"><code>self</code></em> are not updated when the values in the
+interface change. Instead, the client is expected to call
+<a class="link" href="MMModemTime.html#mm-modem-time-get-network-timezone" title="mm_modem_time_get_network_timezone ()"><code class="function">mm_modem_time_get_network_timezone()</code></a> again to get a new <a class="link" href="MMNetworkTimezone.html" title="MMNetworkTimezone"><span class="type">MMNetworkTimezone</span></a> with the
+new values.</div>
+<p>
</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMModemTime.html" title="MMModemTime"><span class="type">MMModemTime</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <a class="link" href="MMNetworkTimezone.html" title="MMNetworkTimezone"><span class="type">MMNetworkTimezone</span></a> that must be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if unknown. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -233,7 +287,8 @@ Finishes an operation started with <a class="link" href="MMModemTime.html#mm-mod
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A string containing the network time, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>error</code></em> is set. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>.</td>
+<td>A string containing the network time, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>error</code></em> is set. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
</tr>
</tbody>
</table></div>
@@ -272,7 +327,8 @@ for the asynchronous version of this method.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A string containing the network time, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>error</code></em> is set. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>.</td>
+<td>A string containing the network time, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>error</code></em> is set. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
</tr>
</tbody>
</table></div>
@@ -281,6 +337,6 @@ for the asynchronous version of this method.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MMNetworkTimezone.html b/docs/reference/libmm-glib/html/MMNetworkTimezone.html
index 8e1db1e..dd86eca 100644
--- a/docs/reference/libmm-glib/html/MMNetworkTimezone.html
+++ b/docs/reference/libmm-glib/html/MMNetworkTimezone.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch03s05.html" title="Time support">
<link rel="prev" href="MMModemTime.html" title="MMModemTime">
<link rel="next" href="ch03s06.html" title="Firmware support">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -173,6 +173,6 @@ Gets the number of leap seconds (TAI-UTC), as reported by the network.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MMObject.html b/docs/reference/libmm-glib/html/MMObject.html
index 15392eb..d0fc278 100644
--- a/docs/reference/libmm-glib/html/MMObject.html
+++ b/docs/reference/libmm-glib/html/MMObject.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch03.html" title="The Modem object">
<link rel="prev" href="ch03.html" title="The Modem object">
<link rel="next" href="MMModem.html" title="MMModem">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -62,8 +62,12 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
<a class="link" href="MMModemTime.html" title="MMModemTime"><span class="returnvalue">MMModemTime</span></a> * <a class="link" href="MMObject.html#mm-object-get-modem-time" title="mm_object_get_modem_time ()">mm_object_get_modem_time</a> (<em class="parameter"><code><a class="link" href="MMObject.html" title="MMObject"><span class="type">MMObject</span></a> *self</code></em>);
<a class="link" href="MMModemFirmware.html" title="MMModemFirmware"><span class="returnvalue">MMModemFirmware</span></a> * <a class="link" href="MMObject.html#mm-object-peek-modem-firmware" title="mm_object_peek_modem_firmware ()">mm_object_peek_modem_firmware</a> (<em class="parameter"><code><a class="link" href="MMObject.html" title="MMObject"><span class="type">MMObject</span></a> *self</code></em>);
<a class="link" href="MMModemFirmware.html" title="MMModemFirmware"><span class="returnvalue">MMModemFirmware</span></a> * <a class="link" href="MMObject.html#mm-object-get-modem-firmware" title="mm_object_get_modem_firmware ()">mm_object_get_modem_firmware</a> (<em class="parameter"><code><a class="link" href="MMObject.html" title="MMObject"><span class="type">MMObject</span></a> *self</code></em>);
+<a class="link" href="MMModemOma.html" title="MMModemOma"><span class="returnvalue">MMModemOma</span></a> * <a class="link" href="MMObject.html#mm-object-peek-modem-oma" title="mm_object_peek_modem_oma ()">mm_object_peek_modem_oma</a> (<em class="parameter"><code><a class="link" href="MMObject.html" title="MMObject"><span class="type">MMObject</span></a> *self</code></em>);
+<a class="link" href="MMModemOma.html" title="MMModemOma"><span class="returnvalue">MMModemOma</span></a> * <a class="link" href="MMObject.html#mm-object-get-modem-oma" title="mm_object_get_modem_oma ()">mm_object_get_modem_oma</a> (<em class="parameter"><code><a class="link" href="MMObject.html" title="MMObject"><span class="type">MMObject</span></a> *self</code></em>);
<a class="link" href="MMModemSimple.html" title="MMModemSimple"><span class="returnvalue">MMModemSimple</span></a> * <a class="link" href="MMObject.html#mm-object-peek-modem-simple" title="mm_object_peek_modem_simple ()">mm_object_peek_modem_simple</a> (<em class="parameter"><code><a class="link" href="MMObject.html" title="MMObject"><span class="type">MMObject</span></a> *self</code></em>);
<a class="link" href="MMModemSimple.html" title="MMModemSimple"><span class="returnvalue">MMModemSimple</span></a> * <a class="link" href="MMObject.html#mm-object-get-modem-simple" title="mm_object_get_modem_simple ()">mm_object_get_modem_simple</a> (<em class="parameter"><code><a class="link" href="MMObject.html" title="MMObject"><span class="type">MMObject</span></a> *self</code></em>);
+<a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="returnvalue">MMModemSignal</span></a> * <a class="link" href="MMObject.html#mm-object-peek-modem-signal" title="mm_object_peek_modem_signal ()">mm_object_peek_modem_signal</a> (<em class="parameter"><code><a class="link" href="MMObject.html" title="MMObject"><span class="type">MMObject</span></a> *self</code></em>);
+<a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="returnvalue">MMModemSignal</span></a> * <a class="link" href="MMObject.html#mm-object-get-modem-signal" title="mm_object_get_modem_signal ()">mm_object_get_modem_signal</a> (<em class="parameter"><code><a class="link" href="MMObject.html" title="MMObject"><span class="type">MMObject</span></a> *self</code></em>);
</pre>
</div>
<div class="refsect1">
@@ -603,6 +607,62 @@ Gets the <a class="link" href="MMModemFirmware.html" title="MMModemFirmware"><sp
</div>
<hr>
<div class="refsect2">
+<a name="mm-object-peek-modem-oma"></a><h3>mm_object_peek_modem_oma ()</h3>
+<pre class="programlisting"><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="returnvalue">MMModemOma</span></a> * mm_object_peek_modem_oma (<em class="parameter"><code><a class="link" href="MMObject.html" title="MMObject"><span class="type">MMObject</span></a> *self</code></em>);</pre>
+<p>
+Like <a class="link" href="MMObject.html#mm-object-get-modem-oma" title="mm_object_get_modem_oma ()"><code class="function">mm_object_get_modem_oma()</code></a> but doesn't increase the reference count on the returned object.
+</p>
+<p>
+</p>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>It is not safe to use the returned object if you are on another thread than the one where the <a class="link" href="MMManager.html" title="MMManager"><span class="type">MMManager</span></a> is running.</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMObject.html" title="MMObject"><span class="type">MMObject</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>self</code></em> does not implement the interface. Do not free the returned object, it is owned by <em class="parameter"><code>self</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-object-get-modem-oma"></a><h3>mm_object_get_modem_oma ()</h3>
+<pre class="programlisting"><a class="link" href="MMModemOma.html" title="MMModemOma"><span class="returnvalue">MMModemOma</span></a> * mm_object_get_modem_oma (<em class="parameter"><code><a class="link" href="MMObject.html" title="MMObject"><span class="type">MMObject</span></a> *self</code></em>);</pre>
+<p>
+Gets the <a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> instance for the D-Bus interface org.freedesktop.ModemManager1.Modem.Oma on <em class="parameter"><code>self</code></em>, if any.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMObject.html" title="MMObject"><span class="type">MMObject</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <a class="link" href="MMModemOma.html" title="MMModemOma"><span class="type">MMModemOma</span></a> that must be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>self</code></em> does not implement the interface. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
<a name="mm-object-peek-modem-simple"></a><h3>mm_object_peek_modem_simple ()</h3>
<pre class="programlisting"><a class="link" href="MMModemSimple.html" title="MMModemSimple"><span class="returnvalue">MMModemSimple</span></a> * mm_object_peek_modem_simple (<em class="parameter"><code><a class="link" href="MMObject.html" title="MMObject"><span class="type">MMObject</span></a> *self</code></em>);</pre>
<p>
@@ -657,10 +717,66 @@ Gets the <a class="link" href="MMModemSimple.html" title="MMModemSimple"><span c
</tbody>
</table></div>
</div>
+<hr>
+<div class="refsect2">
+<a name="mm-object-peek-modem-signal"></a><h3>mm_object_peek_modem_signal ()</h3>
+<pre class="programlisting"><a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="returnvalue">MMModemSignal</span></a> * mm_object_peek_modem_signal (<em class="parameter"><code><a class="link" href="MMObject.html" title="MMObject"><span class="type">MMObject</span></a> *self</code></em>);</pre>
+<p>
+Like <a class="link" href="MMObject.html#mm-object-get-modem-signal" title="mm_object_get_modem_signal ()"><code class="function">mm_object_get_modem_signal()</code></a> but doesn't increase the reference count on the returned object.
+</p>
+<p>
+</p>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>It is not safe to use the returned object if you are on another thread than the one where the <a class="link" href="MMManager.html" title="MMManager"><span class="type">MMManager</span></a> is running.</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMObject.html" title="MMObject"><span class="type">MMObject</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>self</code></em> does not implement the interface. Do not free the returned object, it is owned by <em class="parameter"><code>self</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-object-get-modem-signal"></a><h3>mm_object_get_modem_signal ()</h3>
+<pre class="programlisting"><a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="returnvalue">MMModemSignal</span></a> * mm_object_get_modem_signal (<em class="parameter"><code><a class="link" href="MMObject.html" title="MMObject"><span class="type">MMObject</span></a> *self</code></em>);</pre>
+<p>
+Gets the <a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> instance for the D-Bus interface org.freedesktop.ModemManager1.Modem.Signal on <em class="parameter"><code>self</code></em>, if any.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMObject.html" title="MMObject"><span class="type">MMObject</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <a class="link" href="MMModemSignal.html" title="MMModemSignal"><span class="type">MMModemSignal</span></a> that must be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>self</code></em> does not implement the interface. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MMSignal.html b/docs/reference/libmm-glib/html/MMSignal.html
new file mode 100644
index 0000000..53733ea
--- /dev/null
+++ b/docs/reference/libmm-glib/html/MMSignal.html
@@ -0,0 +1,279 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>MMSignal</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="libmm-glib Reference Manual">
+<link rel="up" href="ch03s07.html" title="Extended signal information">
+<link rel="prev" href="MMModemSignal.html" title="MMModemSignal">
+<link rel="next" href="ch03s08.html" title="OMA support">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="MMModemSignal.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch03s07.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libmm-glib Reference Manual</th>
+<td><a accesskey="n" href="ch03s08.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#MMSignal.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#MMSignal.description" class="shortcut">Description</a>
+  | 
+ <a href="#MMSignal.object-hierarchy" class="shortcut">Object Hierarchy</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="MMSignal"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="MMSignal.top_of_page"></a>MMSignal</span></h2>
+<p>MMSignal — Helper object to handle extended Signal information.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="MMSignal.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">struct <a class="link" href="MMSignal.html#MMSignal-struct" title="struct MMSignal">MMSignal</a>;
+#define <a class="link" href="MMSignal.html#MM-SIGNAL-UNKNOWN:CAPS" title="MM_SIGNAL_UNKNOWN">MM_SIGNAL_UNKNOWN</a>
+
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a> <a class="link" href="MMSignal.html#mm-signal-get-rssi" title="mm_signal_get_rssi ()">mm_signal_get_rssi</a> (<em class="parameter"><code><a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> *self</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a> <a class="link" href="MMSignal.html#mm-signal-get-ecio" title="mm_signal_get_ecio ()">mm_signal_get_ecio</a> (<em class="parameter"><code><a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> *self</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a> <a class="link" href="MMSignal.html#mm-signal-get-sinr" title="mm_signal_get_sinr ()">mm_signal_get_sinr</a> (<em class="parameter"><code><a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> *self</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a> <a class="link" href="MMSignal.html#mm-signal-get-io" title="mm_signal_get_io ()">mm_signal_get_io</a> (<em class="parameter"><code><a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> *self</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a> <a class="link" href="MMSignal.html#mm-signal-get-rsrp" title="mm_signal_get_rsrp ()">mm_signal_get_rsrp</a> (<em class="parameter"><code><a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> *self</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a> <a class="link" href="MMSignal.html#mm-signal-get-rsrq" title="mm_signal_get_rsrq ()">mm_signal_get_rsrq</a> (<em class="parameter"><code><a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> *self</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a> <a class="link" href="MMSignal.html#mm-signal-get-snr" title="mm_signal_get_snr ()">mm_signal_get_snr</a> (<em class="parameter"><code><a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> *self</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="MMSignal.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+ <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+ +----MMSignal
+</pre>
+</div>
+<div class="refsect1">
+<a name="MMSignal.description"></a><h2>Description</h2>
+<p>
+The <a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> is an object handling the signal information of the
+modem.
+</p>
+</div>
+<div class="refsect1">
+<a name="MMSignal.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="MMSignal-struct"></a><h3>struct MMSignal</h3>
+<pre class="programlisting">struct MMSignal;</pre>
+<p>
+The <a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> structure contains private data and should
+only be accessed using the provided API.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="MM-SIGNAL-UNKNOWN:CAPS"></a><h3>MM_SIGNAL_UNKNOWN</h3>
+<pre class="programlisting">#define MM_SIGNAL_UNKNOWN G_MINDOUBLE
+</pre>
+<p>
+Identifier for an unknown signal value.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-signal-get-rssi"></a><h3>mm_signal_get_rssi ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a> mm_signal_get_rssi (<em class="parameter"><code><a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> *self</code></em>);</pre>
+<p>
+Gets the RSSI (Received Signal Strength Indication), in dBm.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>a <a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the RSSI, or <a class="link" href="MMSignal.html#MM-SIGNAL-UNKNOWN:CAPS" title="MM_SIGNAL_UNKNOWN"><code class="literal">MM_SIGNAL_UNKNOWN</code></a> if unknown.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-signal-get-ecio"></a><h3>mm_signal_get_ecio ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a> mm_signal_get_ecio (<em class="parameter"><code><a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> *self</code></em>);</pre>
+<p>
+Gets the Ec/Io, in dBm.
+</p>
+<p>
+Only applicable to CDMA1x, CDMA EV-DO and UMTS (WCDMA).
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>a <a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the ECIO, or <a class="link" href="MMSignal.html#MM-SIGNAL-UNKNOWN:CAPS" title="MM_SIGNAL_UNKNOWN"><code class="literal">MM_SIGNAL_UNKNOWN</code></a> if unknown.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-signal-get-sinr"></a><h3>mm_signal_get_sinr ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a> mm_signal_get_sinr (<em class="parameter"><code><a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> *self</code></em>);</pre>
+<p>
+Gets the SINR level, in dB.
+</p>
+<p>
+Only applicable to CDMA EV-DO.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>a <a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the SINR, or <a class="link" href="MMSignal.html#MM-SIGNAL-UNKNOWN:CAPS" title="MM_SIGNAL_UNKNOWN"><code class="literal">MM_SIGNAL_UNKNOWN</code></a> if unknown.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-signal-get-io"></a><h3>mm_signal_get_io ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a> mm_signal_get_io (<em class="parameter"><code><a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> *self</code></em>);</pre>
+<p>
+Gets the Io, in dBm.
+</p>
+<p>
+Only applicable to CDMA EV-DO.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>a <a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the Io, or <a class="link" href="MMSignal.html#MM-SIGNAL-UNKNOWN:CAPS" title="MM_SIGNAL_UNKNOWN"><code class="literal">MM_SIGNAL_UNKNOWN</code></a> if unknown.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-signal-get-rsrp"></a><h3>mm_signal_get_rsrp ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a> mm_signal_get_rsrp (<em class="parameter"><code><a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> *self</code></em>);</pre>
+<p>
+Gets the RSRP (Reference Signal Received Power), in dBm.
+</p>
+<p>
+Only applicable to LTE.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>a <a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the RSRP, or <a class="link" href="MMSignal.html#MM-SIGNAL-UNKNOWN:CAPS" title="MM_SIGNAL_UNKNOWN"><code class="literal">MM_SIGNAL_UNKNOWN</code></a> if unknown.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-signal-get-rsrq"></a><h3>mm_signal_get_rsrq ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a> mm_signal_get_rsrq (<em class="parameter"><code><a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> *self</code></em>);</pre>
+<p>
+Gets the RSRQ (Reference Signal Received Quality), in dB.
+</p>
+<p>
+Only applicable to LTE.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>a <a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the RSRQ, or <a class="link" href="MMSignal.html#MM-SIGNAL-UNKNOWN:CAPS" title="MM_SIGNAL_UNKNOWN"><code class="literal">MM_SIGNAL_UNKNOWN</code></a> if unknown.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-signal-get-snr"></a><h3>mm_signal_get_snr ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a> mm_signal_get_snr (<em class="parameter"><code><a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a> *self</code></em>);</pre>
+<p>
+Gets the S/R ration, in dB.
+</p>
+<p>
+Only applicable to LTE.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>a <a class="link" href="MMSignal.html" title="MMSignal"><span class="type">MMSignal</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the S/R ratio, or <a class="link" href="MMSignal.html#MM-SIGNAL-UNKNOWN:CAPS" title="MM_SIGNAL_UNKNOWN"><code class="literal">MM_SIGNAL_UNKNOWN</code></a> if unknown.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.19</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MMSim.html b/docs/reference/libmm-glib/html/MMSim.html
index 773c64f..f676980 100644
--- a/docs/reference/libmm-glib/html/MMSim.html
+++ b/docs/reference/libmm-glib/html/MMSim.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch05.html" title="The SIM object">
<link rel="prev" href="ch05.html" title="The SIM object">
<link rel="next" href="ch06.html" title="The SMS object">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -1106,6 +1106,6 @@ See <a class="link" href="MMSim.html#mm-sim-change-pin" title="mm_sim_change_pin
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MMSimpleConnectProperties.html b/docs/reference/libmm-glib/html/MMSimpleConnectProperties.html
index c2aa5f5..623c2a4 100644
--- a/docs/reference/libmm-glib/html/MMSimpleConnectProperties.html
+++ b/docs/reference/libmm-glib/html/MMSimpleConnectProperties.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch03s02.html" title="Simple interface support">
<link rel="prev" href="MMModemSimple.html" title="MMModemSimple">
<link rel="next" href="MMSimpleStatus.html" title="MMSimpleStatus">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -59,11 +59,11 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
<span class="returnvalue">void</span> <a class="link" href="MMSimpleConnectProperties.html#mm-simple-connect-properties-set-apn" title="mm_simple_connect_properties_set_apn ()">mm_simple_connect_properties_set_apn</a>
(<em class="parameter"><code><a class="link" href="MMSimpleConnectProperties.html" title="MMSimpleConnectProperties"><span class="type">MMSimpleConnectProperties</span></a> *self</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *apn</code></em>);
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerAllowedAuth"><span class="returnvalue">MMBearerAllowedAuth</span></a> <a class="link" href="MMSimpleConnectProperties.html#mm-simple-connect-properties-get-allowed-auth" title="mm_simple_connect_properties_get_allowed_auth ()">mm_simple_connect_properties_get_allowed_auth</a>
+<span class="returnvalue">MMBearerAllowedAuth</span> <a class="link" href="MMSimpleConnectProperties.html#mm-simple-connect-properties-get-allowed-auth" title="mm_simple_connect_properties_get_allowed_auth ()">mm_simple_connect_properties_get_allowed_auth</a>
(<em class="parameter"><code><a class="link" href="MMSimpleConnectProperties.html" title="MMSimpleConnectProperties"><span class="type">MMSimpleConnectProperties</span></a> *self</code></em>);
<span class="returnvalue">void</span> <a class="link" href="MMSimpleConnectProperties.html#mm-simple-connect-properties-set-allowed-auth" title="mm_simple_connect_properties_set_allowed_auth ()">mm_simple_connect_properties_set_allowed_auth</a>
(<em class="parameter"><code><a class="link" href="MMSimpleConnectProperties.html" title="MMSimpleConnectProperties"><span class="type">MMSimpleConnectProperties</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerAllowedAuth"><span class="type">MMBearerAllowedAuth</span></a> allowed_auth</code></em>);
+ <em class="parameter"><code><span class="type">MMBearerAllowedAuth</span> allowed_auth</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMSimpleConnectProperties.html#mm-simple-connect-properties-get-user" title="mm_simple_connect_properties_get_user ()">mm_simple_connect_properties_get_user</a>
(<em class="parameter"><code><a class="link" href="MMSimpleConnectProperties.html" title="MMSimpleConnectProperties"><span class="type">MMSimpleConnectProperties</span></a> *self</code></em>);
<span class="returnvalue">void</span> <a class="link" href="MMSimpleConnectProperties.html#mm-simple-connect-properties-set-user" title="mm_simple_connect_properties_set_user ()">mm_simple_connect_properties_set_user</a>
@@ -74,11 +74,11 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
<span class="returnvalue">void</span> <a class="link" href="MMSimpleConnectProperties.html#mm-simple-connect-properties-set-password" title="mm_simple_connect_properties_set_password ()">mm_simple_connect_properties_set_password</a>
(<em class="parameter"><code><a class="link" href="MMSimpleConnectProperties.html" title="MMSimpleConnectProperties"><span class="type">MMSimpleConnectProperties</span></a> *self</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *password</code></em>);
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerIpFamily"><span class="returnvalue">MMBearerIpFamily</span></a> <a class="link" href="MMSimpleConnectProperties.html#mm-simple-connect-properties-get-ip-type" title="mm_simple_connect_properties_get_ip_type ()">mm_simple_connect_properties_get_ip_type</a>
+<span class="returnvalue">MMBearerIpFamily</span> <a class="link" href="MMSimpleConnectProperties.html#mm-simple-connect-properties-get-ip-type" title="mm_simple_connect_properties_get_ip_type ()">mm_simple_connect_properties_get_ip_type</a>
(<em class="parameter"><code><a class="link" href="MMSimpleConnectProperties.html" title="MMSimpleConnectProperties"><span class="type">MMSimpleConnectProperties</span></a> *self</code></em>);
<span class="returnvalue">void</span> <a class="link" href="MMSimpleConnectProperties.html#mm-simple-connect-properties-set-ip-type" title="mm_simple_connect_properties_set_ip_type ()">mm_simple_connect_properties_set_ip_type</a>
(<em class="parameter"><code><a class="link" href="MMSimpleConnectProperties.html" title="MMSimpleConnectProperties"><span class="type">MMSimpleConnectProperties</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerIpFamily"><span class="type">MMBearerIpFamily</span></a> ip_type</code></em>);
+ <em class="parameter"><code><span class="type">MMBearerIpFamily</span> ip_type</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMSimpleConnectProperties.html#mm-simple-connect-properties-get-allow-roaming" title="mm_simple_connect_properties_get_allow_roaming ()">mm_simple_connect_properties_get_allow_roaming</a>
(<em class="parameter"><code><a class="link" href="MMSimpleConnectProperties.html" title="MMSimpleConnectProperties"><span class="type">MMSimpleConnectProperties</span></a> *self</code></em>);
<span class="returnvalue">void</span> <a class="link" href="MMSimpleConnectProperties.html#mm-simple-connect-properties-set-allow-roaming" title="mm_simple_connect_properties_set_allow_roaming ()">mm_simple_connect_properties_set_allow_roaming</a>
@@ -298,7 +298,7 @@ Sets the name of the access point to use when connecting.
<hr>
<div class="refsect2">
<a name="mm-simple-connect-properties-get-allowed-auth"></a><h3>mm_simple_connect_properties_get_allowed_auth ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerAllowedAuth"><span class="returnvalue">MMBearerAllowedAuth</span></a> mm_simple_connect_properties_get_allowed_auth
+<pre class="programlisting"><span class="returnvalue">MMBearerAllowedAuth</span> mm_simple_connect_properties_get_allowed_auth
(<em class="parameter"><code><a class="link" href="MMSimpleConnectProperties.html" title="MMSimpleConnectProperties"><span class="type">MMSimpleConnectProperties</span></a> *self</code></em>);</pre>
<p>
Gets the authentication methods allowed in the connection.
@@ -315,7 +315,7 @@ Gets the authentication methods allowed in the connection.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a bitmask of <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerAllowedAuth"><span class="type">MMBearerAllowedAuth</span></a> values, or <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-BEARER-ALLOWED-AUTH-UNKNOWN:CAPS"><code class="literal">MM_BEARER_ALLOWED_AUTH_UNKNOWN</code></a> to request the modem-default method.</td>
+<td>a bitmask of <span class="type">MMBearerAllowedAuth</span> values, or <code class="literal">MM_BEARER_ALLOWED_AUTH_UNKNOWN</code> to request the modem-default method.</td>
</tr>
</tbody>
</table></div>
@@ -325,7 +325,7 @@ Gets the authentication methods allowed in the connection.
<a name="mm-simple-connect-properties-set-allowed-auth"></a><h3>mm_simple_connect_properties_set_allowed_auth ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> mm_simple_connect_properties_set_allowed_auth
(<em class="parameter"><code><a class="link" href="MMSimpleConnectProperties.html" title="MMSimpleConnectProperties"><span class="type">MMSimpleConnectProperties</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerAllowedAuth"><span class="type">MMBearerAllowedAuth</span></a> allowed_auth</code></em>);</pre>
+ <em class="parameter"><code><span class="type">MMBearerAllowedAuth</span> allowed_auth</code></em>);</pre>
<p>
Sets the authentication method to use.
</p>
@@ -341,7 +341,7 @@ Sets the authentication method to use.
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>allowed_auth</code></em> :</span></p></td>
-<td>a bitmask of <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerAllowedAuth"><span class="type">MMBearerAllowedAuth</span></a> values. <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-BEARER-ALLOWED-AUTH-UNKNOWN:CAPS"><code class="literal">MM_BEARER_ALLOWED_AUTH_UNKNOWN</code></a> may be given to request the modem-default method.</td>
+<td>a bitmask of <span class="type">MMBearerAllowedAuth</span> values. <code class="literal">MM_BEARER_ALLOWED_AUTH_UNKNOWN</code> may be given to request the modem-default method.</td>
</tr>
</tbody>
</table></div>
@@ -453,7 +453,7 @@ Sets the password used to authenticate with the access point.
<hr>
<div class="refsect2">
<a name="mm-simple-connect-properties-get-ip-type"></a><h3>mm_simple_connect_properties_get_ip_type ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerIpFamily"><span class="returnvalue">MMBearerIpFamily</span></a> mm_simple_connect_properties_get_ip_type
+<pre class="programlisting"><span class="returnvalue">MMBearerIpFamily</span> mm_simple_connect_properties_get_ip_type
(<em class="parameter"><code><a class="link" href="MMSimpleConnectProperties.html" title="MMSimpleConnectProperties"><span class="type">MMSimpleConnectProperties</span></a> *self</code></em>);</pre>
<p>
Sets the IP type to use.
@@ -470,7 +470,7 @@ Sets the IP type to use.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerIpFamily"><span class="type">MMBearerIpFamily</span></a>.</td>
+<td>a <span class="type">MMBearerIpFamily</span>.</td>
</tr>
</tbody>
</table></div>
@@ -480,7 +480,7 @@ Sets the IP type to use.
<a name="mm-simple-connect-properties-set-ip-type"></a><h3>mm_simple_connect_properties_set_ip_type ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> mm_simple_connect_properties_set_ip_type
(<em class="parameter"><code><a class="link" href="MMSimpleConnectProperties.html" title="MMSimpleConnectProperties"><span class="type">MMSimpleConnectProperties</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerIpFamily"><span class="type">MMBearerIpFamily</span></a> ip_type</code></em>);</pre>
+ <em class="parameter"><code><span class="type">MMBearerIpFamily</span> ip_type</code></em>);</pre>
<p>
Sets the IP type to use.
</p>
@@ -496,7 +496,7 @@ Sets the IP type to use.
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>ip_type</code></em> :</span></p></td>
-<td>a <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerIpFamily"><span class="type">MMBearerIpFamily</span></a>.</td>
+<td>a <span class="type">MMBearerIpFamily</span>.</td>
</tr>
</tbody>
</table></div>
@@ -610,6 +610,6 @@ Sets the number to use when performing the connection.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MMSimpleStatus.html b/docs/reference/libmm-glib/html/MMSimpleStatus.html
index 46213d8..40d65b5 100644
--- a/docs/reference/libmm-glib/html/MMSimpleStatus.html
+++ b/docs/reference/libmm-glib/html/MMSimpleStatus.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch03s02.html" title="Simple interface support">
<link rel="prev" href="MMSimpleConnectProperties.html" title="MMSimpleConnectProperties">
<link rel="next" href="ch03s03.html" title="Location support">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -43,23 +43,25 @@
<a name="MMSimpleStatus.synopsis"></a><h2>Synopsis</h2>
<pre class="synopsis">struct <a class="link" href="MMSimpleStatus.html#MMSimpleStatus-struct" title="struct MMSimpleStatus">MMSimpleStatus</a>;
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemState"><span class="returnvalue">MMModemState</span></a> <a class="link" href="MMSimpleStatus.html#mm-simple-status-get-state" title="mm_simple_status_get_state ()">mm_simple_status_get_state</a> (<em class="parameter"><code><a class="link" href="MMSimpleStatus.html" title="MMSimpleStatus"><span class="type">MMSimpleStatus</span></a> *self</code></em>);
+<span class="returnvalue">MMModemState</span> <a class="link" href="MMSimpleStatus.html#mm-simple-status-get-state" title="mm_simple_status_get_state ()">mm_simple_status_get_state</a> (<em class="parameter"><code><a class="link" href="MMSimpleStatus.html" title="MMSimpleStatus"><span class="type">MMSimpleStatus</span></a> *self</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> <a class="link" href="MMSimpleStatus.html#mm-simple-status-get-signal-quality" title="mm_simple_status_get_signal_quality ()">mm_simple_status_get_signal_quality</a> (<em class="parameter"><code><a class="link" href="MMSimpleStatus.html" title="MMSimpleStatus"><span class="type">MMSimpleStatus</span></a> *self</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *recent</code></em>);
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemAccessTechnology"><span class="returnvalue">MMModemAccessTechnology</span></a> <a class="link" href="MMSimpleStatus.html#mm-simple-status-get-access-technologies" title="mm_simple_status_get_access_technologies ()">mm_simple_status_get_access_technologies</a>
+<span class="returnvalue">MMModemAccessTechnology</span> <a class="link" href="MMSimpleStatus.html#mm-simple-status-get-access-technologies" title="mm_simple_status_get_access_technologies ()">mm_simple_status_get_access_technologies</a>
(<em class="parameter"><code><a class="link" href="MMSimpleStatus.html" title="MMSimpleStatus"><span class="type">MMSimpleStatus</span></a> *self</code></em>);
<span class="returnvalue">void</span> <a class="link" href="MMSimpleStatus.html#mm-simple-status-get-current-bands" title="mm_simple_status_get_current_bands ()">mm_simple_status_get_current_bands</a> (<em class="parameter"><code><a class="link" href="MMSimpleStatus.html" title="MMSimpleStatus"><span class="type">MMSimpleStatus</span></a> *self</code></em>,
- <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemBand"><span class="type">MMModemBand</span></a> **bands</code></em>,
+ <em class="parameter"><code>const <span class="type">MMModemBand</span> **bands</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_bands</code></em>);
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModem3gppRegistrationState"><span class="returnvalue">MMModem3gppRegistrationState</span></a> <a class="link" href="MMSimpleStatus.html#mm-simple-status-get-3gpp-registration-state" title="mm_simple_status_get_3gpp_registration_state ()">mm_simple_status_get_3gpp_registration_state</a>
+<span class="returnvalue">MMModem3gppRegistrationState</span> <a class="link" href="MMSimpleStatus.html#mm-simple-status-get-3gpp-registration-state" title="mm_simple_status_get_3gpp_registration_state ()">mm_simple_status_get_3gpp_registration_state</a>
(<em class="parameter"><code><a class="link" href="MMSimpleStatus.html" title="MMSimpleStatus"><span class="type">MMSimpleStatus</span></a> *self</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMSimpleStatus.html#mm-simple-status-get-3gpp-operator-code" title="mm_simple_status_get_3gpp_operator_code ()">mm_simple_status_get_3gpp_operator_code</a>
(<em class="parameter"><code><a class="link" href="MMSimpleStatus.html" title="MMSimpleStatus"><span class="type">MMSimpleStatus</span></a> *self</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMSimpleStatus.html#mm-simple-status-get-3gpp-operator-name" title="mm_simple_status_get_3gpp_operator_name ()">mm_simple_status_get_3gpp_operator_name</a>
(<em class="parameter"><code><a class="link" href="MMSimpleStatus.html" title="MMSimpleStatus"><span class="type">MMSimpleStatus</span></a> *self</code></em>);
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCdmaRegistrationState"><span class="returnvalue">MMModemCdmaRegistrationState</span></a> <a class="link" href="MMSimpleStatus.html#mm-simple-status-get-cdma-cdma1x-registration-state" title="mm_simple_status_get_cdma_cdma1x_registration_state ()">mm_simple_status_get_cdma_cdma1x_registration_state</a>
+<span class="returnvalue">MMModem3gppSubscriptionState</span> <a class="link" href="MMSimpleStatus.html#mm-simple-status-get-3gpp-subscription-state" title="mm_simple_status_get_3gpp_subscription_state ()">mm_simple_status_get_3gpp_subscription_state</a>
(<em class="parameter"><code><a class="link" href="MMSimpleStatus.html" title="MMSimpleStatus"><span class="type">MMSimpleStatus</span></a> *self</code></em>);
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCdmaRegistrationState"><span class="returnvalue">MMModemCdmaRegistrationState</span></a> <a class="link" href="MMSimpleStatus.html#mm-simple-status-get-cdma-evdo-registration-state" title="mm_simple_status_get_cdma_evdo_registration_state ()">mm_simple_status_get_cdma_evdo_registration_state</a>
+<span class="returnvalue">MMModemCdmaRegistrationState</span> <a class="link" href="MMSimpleStatus.html#mm-simple-status-get-cdma-cdma1x-registration-state" title="mm_simple_status_get_cdma_cdma1x_registration_state ()">mm_simple_status_get_cdma_cdma1x_registration_state</a>
+ (<em class="parameter"><code><a class="link" href="MMSimpleStatus.html" title="MMSimpleStatus"><span class="type">MMSimpleStatus</span></a> *self</code></em>);
+<span class="returnvalue">MMModemCdmaRegistrationState</span> <a class="link" href="MMSimpleStatus.html#mm-simple-status-get-cdma-evdo-registration-state" title="mm_simple_status_get_cdma_evdo_registration_state ()">mm_simple_status_get_cdma_evdo_registration_state</a>
(<em class="parameter"><code><a class="link" href="MMSimpleStatus.html" title="MMSimpleStatus"><span class="type">MMSimpleStatus</span></a> *self</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="MMSimpleStatus.html#mm-simple-status-get-cdma-nid" title="mm_simple_status_get_cdma_nid ()">mm_simple_status_get_cdma_nid</a> (<em class="parameter"><code><a class="link" href="MMSimpleStatus.html" title="MMSimpleStatus"><span class="type">MMSimpleStatus</span></a> *self</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="MMSimpleStatus.html#mm-simple-status-get-cdma-sid" title="mm_simple_status_get_cdma_sid ()">mm_simple_status_get_cdma_sid</a> (<em class="parameter"><code><a class="link" href="MMSimpleStatus.html" title="MMSimpleStatus"><span class="type">MMSimpleStatus</span></a> *self</code></em>);
@@ -75,17 +77,18 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
<div class="refsect1">
<a name="MMSimpleStatus.properties"></a><h2>Properties</h2>
<pre class="synopsis">
- "<a class="link" href="MMSimpleStatus.html#MMSimpleStatus--access-technologies" title='The "access-technologies" property'>access-technologies</a>" <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemAccessTechnology"><span class="type">MMModemAccessTechnology</span></a> : Read / Write
- "<a class="link" href="MMSimpleStatus.html#MMSimpleStatus--cdma-cdma1x-registration-state" title='The "cdma-cdma1x-registration-state" property'>cdma-cdma1x-registration-state</a>" <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCdmaRegistrationState"><span class="type">MMModemCdmaRegistrationState</span></a> : Read / Write
- "<a class="link" href="MMSimpleStatus.html#MMSimpleStatus--cdma-evdo-registration-state" title='The "cdma-evdo-registration-state" property'>cdma-evdo-registration-state</a>" <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCdmaRegistrationState"><span class="type">MMModemCdmaRegistrationState</span></a> : Read / Write
+ "<a class="link" href="MMSimpleStatus.html#MMSimpleStatus--access-technologies" title='The "access-technologies" property'>access-technologies</a>" <span class="type">MMModemAccessTechnology</span> : Read / Write
+ "<a class="link" href="MMSimpleStatus.html#MMSimpleStatus--cdma-cdma1x-registration-state" title='The "cdma-cdma1x-registration-state" property'>cdma-cdma1x-registration-state</a>" <span class="type">MMModemCdmaRegistrationState</span> : Read / Write
+ "<a class="link" href="MMSimpleStatus.html#MMSimpleStatus--cdma-evdo-registration-state" title='The "cdma-evdo-registration-state" property'>cdma-evdo-registration-state</a>" <span class="type">MMModemCdmaRegistrationState</span> : Read / Write
"<a class="link" href="MMSimpleStatus.html#MMSimpleStatus--cdma-nid" title='The "cdma-nid" property'>cdma-nid</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write
"<a class="link" href="MMSimpleStatus.html#MMSimpleStatus--cdma-sid" title='The "cdma-sid" property'>cdma-sid</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write
"<a class="link" href="MMSimpleStatus.html#MMSimpleStatus--current-bands" title='The "current-bands" property'>current-bands</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write
"<a class="link" href="MMSimpleStatus.html#MMSimpleStatus--m3gpp-operator-code" title='The "m3gpp-operator-code" property'>m3gpp-operator-code</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write
"<a class="link" href="MMSimpleStatus.html#MMSimpleStatus--m3gpp-operator-name" title='The "m3gpp-operator-name" property'>m3gpp-operator-name</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write
- "<a class="link" href="MMSimpleStatus.html#MMSimpleStatus--m3gpp-registration-state" title='The "m3gpp-registration-state" property'>m3gpp-registration-state</a>" <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModem3gppRegistrationState"><span class="type">MMModem3gppRegistrationState</span></a> : Read / Write
+ "<a class="link" href="MMSimpleStatus.html#MMSimpleStatus--m3gpp-registration-state" title='The "m3gpp-registration-state" property'>m3gpp-registration-state</a>" <span class="type">MMModem3gppRegistrationState</span> : Read / Write
+ "<a class="link" href="MMSimpleStatus.html#MMSimpleStatus--m3gpp-subscription-state" title='The "m3gpp-subscription-state" property'>m3gpp-subscription-state</a>" <span class="type">MMModem3gppSubscriptionState</span> : Read / Write
"<a class="link" href="MMSimpleStatus.html#MMSimpleStatus--signal-quality" title='The "signal-quality" property'>signal-quality</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write
- "<a class="link" href="MMSimpleStatus.html#MMSimpleStatus--state" title='The "state" property'>state</a>" <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemState"><span class="type">MMModemState</span></a> : Read / Write
+ "<a class="link" href="MMSimpleStatus.html#MMSimpleStatus--state" title='The "state" property'>state</a>" <span class="type">MMModemState</span> : Read / Write
</pre>
</div>
<div class="refsect1">
@@ -112,7 +115,7 @@ only be accessed using the provided API.
<hr>
<div class="refsect2">
<a name="mm-simple-status-get-state"></a><h3>mm_simple_status_get_state ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemState"><span class="returnvalue">MMModemState</span></a> mm_simple_status_get_state (<em class="parameter"><code><a class="link" href="MMSimpleStatus.html" title="MMSimpleStatus"><span class="type">MMSimpleStatus</span></a> *self</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">MMModemState</span> mm_simple_status_get_state (<em class="parameter"><code><a class="link" href="MMSimpleStatus.html" title="MMSimpleStatus"><span class="type">MMSimpleStatus</span></a> *self</code></em>);</pre>
<p>
Gets the state of the modem.
</p>
@@ -128,7 +131,7 @@ Gets the state of the modem.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemState"><span class="type">MMModemState</span></a>.</td>
+<td>a <span class="type">MMModemState</span>.</td>
</tr>
</tbody>
</table></div>
@@ -166,7 +169,7 @@ Gets the signal quality.
<hr>
<div class="refsect2">
<a name="mm-simple-status-get-access-technologies"></a><h3>mm_simple_status_get_access_technologies ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemAccessTechnology"><span class="returnvalue">MMModemAccessTechnology</span></a> mm_simple_status_get_access_technologies
+<pre class="programlisting"><span class="returnvalue">MMModemAccessTechnology</span> mm_simple_status_get_access_technologies
(<em class="parameter"><code><a class="link" href="MMSimpleStatus.html" title="MMSimpleStatus"><span class="type">MMSimpleStatus</span></a> *self</code></em>);</pre>
<p>
Gets the currently used access technologies.
@@ -183,7 +186,7 @@ Gets the currently used access technologies.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a bitmask of <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemAccessTechnology"><span class="type">MMModemAccessTechnology</span></a> values.</td>
+<td>a bitmask of <span class="type">MMModemAccessTechnology</span> values.</td>
</tr>
</tbody>
</table></div>
@@ -192,7 +195,7 @@ Gets the currently used access technologies.
<div class="refsect2">
<a name="mm-simple-status-get-current-bands"></a><h3>mm_simple_status_get_current_bands ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> mm_simple_status_get_current_bands (<em class="parameter"><code><a class="link" href="MMSimpleStatus.html" title="MMSimpleStatus"><span class="type">MMSimpleStatus</span></a> *self</code></em>,
- <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemBand"><span class="type">MMModemBand</span></a> **bands</code></em>,
+ <em class="parameter"><code>const <span class="type">MMModemBand</span> **bands</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_bands</code></em>);</pre>
<p>
Gets the currently used frequency bands.
@@ -209,7 +212,7 @@ Gets the currently used frequency bands.
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>bands</code></em> :</span></p></td>
-<td>location for an array of <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemBand"><span class="type">MMModemBand</span></a> values. Do not free the returned value, it is owned by <em class="parameter"><code>self</code></em>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>location for an array of <span class="type">MMModemBand</span> values. Do not free the returned value, it is owned by <em class="parameter"><code>self</code></em>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
</td>
</tr>
<tr>
@@ -223,7 +226,7 @@ Gets the currently used frequency bands.
<hr>
<div class="refsect2">
<a name="mm-simple-status-get-3gpp-registration-state"></a><h3>mm_simple_status_get_3gpp_registration_state ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModem3gppRegistrationState"><span class="returnvalue">MMModem3gppRegistrationState</span></a> mm_simple_status_get_3gpp_registration_state
+<pre class="programlisting"><span class="returnvalue">MMModem3gppRegistrationState</span> mm_simple_status_get_3gpp_registration_state
(<em class="parameter"><code><a class="link" href="MMSimpleStatus.html" title="MMSimpleStatus"><span class="type">MMSimpleStatus</span></a> *self</code></em>);</pre>
<p>
Gets the current state of the registration in the 3GPP network.
@@ -240,7 +243,7 @@ Gets the current state of the registration in the 3GPP network.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModem3gppRegistrationState"><span class="type">MMModem3gppRegistrationState</span></a>.</td>
+<td>a <span class="type">MMModem3gppRegistrationState</span>.</td>
</tr>
</tbody>
</table></div>
@@ -297,8 +300,33 @@ Gets the name of the operator of the 3GPP network where the modem is registered.
</div>
<hr>
<div class="refsect2">
+<a name="mm-simple-status-get-3gpp-subscription-state"></a><h3>mm_simple_status_get_3gpp_subscription_state ()</h3>
+<pre class="programlisting"><span class="returnvalue">MMModem3gppSubscriptionState</span> mm_simple_status_get_3gpp_subscription_state
+ (<em class="parameter"><code><a class="link" href="MMSimpleStatus.html" title="MMSimpleStatus"><span class="type">MMSimpleStatus</span></a> *self</code></em>);</pre>
+<p>
+Gets the current subscription status of the account.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>a <a class="link" href="MMSimpleStatus.html" title="MMSimpleStatus"><span class="type">MMSimpleStatus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <span class="type">MMModem3gppSubscriptionState</span>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
<a name="mm-simple-status-get-cdma-cdma1x-registration-state"></a><h3>mm_simple_status_get_cdma_cdma1x_registration_state ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCdmaRegistrationState"><span class="returnvalue">MMModemCdmaRegistrationState</span></a> mm_simple_status_get_cdma_cdma1x_registration_state
+<pre class="programlisting"><span class="returnvalue">MMModemCdmaRegistrationState</span> mm_simple_status_get_cdma_cdma1x_registration_state
(<em class="parameter"><code><a class="link" href="MMSimpleStatus.html" title="MMSimpleStatus"><span class="type">MMSimpleStatus</span></a> *self</code></em>);</pre>
<p>
Gets the current state of the registration in the CDMA-1x network.
@@ -315,7 +343,7 @@ Gets the current state of the registration in the CDMA-1x network.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCdmaRegistrationState"><span class="type">MMModemCdmaRegistrationState</span></a>.</td>
+<td>a <span class="type">MMModemCdmaRegistrationState</span>.</td>
</tr>
</tbody>
</table></div>
@@ -323,7 +351,7 @@ Gets the current state of the registration in the CDMA-1x network.
<hr>
<div class="refsect2">
<a name="mm-simple-status-get-cdma-evdo-registration-state"></a><h3>mm_simple_status_get_cdma_evdo_registration_state ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCdmaRegistrationState"><span class="returnvalue">MMModemCdmaRegistrationState</span></a> mm_simple_status_get_cdma_evdo_registration_state
+<pre class="programlisting"><span class="returnvalue">MMModemCdmaRegistrationState</span> mm_simple_status_get_cdma_evdo_registration_state
(<em class="parameter"><code><a class="link" href="MMSimpleStatus.html" title="MMSimpleStatus"><span class="type">MMSimpleStatus</span></a> *self</code></em>);</pre>
<p>
Gets the current state of the registration in the EV-DO network.
@@ -340,7 +368,7 @@ Gets the current state of the registration in the EV-DO network.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCdmaRegistrationState"><span class="type">MMModemCdmaRegistrationState</span></a>.</td>
+<td>a <span class="type">MMModemCdmaRegistrationState</span>.</td>
</tr>
</tbody>
</table></div>
@@ -398,20 +426,20 @@ Gets the System Identification number of the CDMA network.
<a name="MMSimpleStatus.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
<a name="MMSimpleStatus--access-technologies"></a><h3>The <code class="literal">"access-technologies"</code> property</h3>
-<pre class="programlisting"> "access-technologies" <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemAccessTechnology"><span class="type">MMModemAccessTechnology</span></a> : Read / Write</pre>
+<pre class="programlisting"> "access-technologies" <span class="type">MMModemAccessTechnology</span> : Read / Write</pre>
<p>Access technologies used by the modem.</p>
</div>
<hr>
<div class="refsect2">
<a name="MMSimpleStatus--cdma-cdma1x-registration-state"></a><h3>The <code class="literal">"cdma-cdma1x-registration-state"</code> property</h3>
-<pre class="programlisting"> "cdma-cdma1x-registration-state" <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCdmaRegistrationState"><span class="type">MMModemCdmaRegistrationState</span></a> : Read / Write</pre>
+<pre class="programlisting"> "cdma-cdma1x-registration-state" <span class="type">MMModemCdmaRegistrationState</span> : Read / Write</pre>
<p>Registration state in the CDMA1x network.</p>
<p>Default value: MM_MODEM_CDMA_REGISTRATION_STATE_UNKNOWN</p>
</div>
<hr>
<div class="refsect2">
<a name="MMSimpleStatus--cdma-evdo-registration-state"></a><h3>The <code class="literal">"cdma-evdo-registration-state"</code> property</h3>
-<pre class="programlisting"> "cdma-evdo-registration-state" <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCdmaRegistrationState"><span class="type">MMModemCdmaRegistrationState</span></a> : Read / Write</pre>
+<pre class="programlisting"> "cdma-evdo-registration-state" <span class="type">MMModemCdmaRegistrationState</span> : Read / Write</pre>
<p>Registration state in the EV-DO network.</p>
<p>Default value: MM_MODEM_CDMA_REGISTRATION_STATE_UNKNOWN</p>
</div>
@@ -456,12 +484,19 @@ Gets the System Identification number of the CDMA network.
<hr>
<div class="refsect2">
<a name="MMSimpleStatus--m3gpp-registration-state"></a><h3>The <code class="literal">"m3gpp-registration-state"</code> property</h3>
-<pre class="programlisting"> "m3gpp-registration-state" <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModem3gppRegistrationState"><span class="type">MMModem3gppRegistrationState</span></a> : Read / Write</pre>
+<pre class="programlisting"> "m3gpp-registration-state" <span class="type">MMModem3gppRegistrationState</span> : Read / Write</pre>
<p>Registration state in the 3GPP network.</p>
<p>Default value: MM_MODEM_3GPP_REGISTRATION_STATE_UNKNOWN</p>
</div>
<hr>
<div class="refsect2">
+<a name="MMSimpleStatus--m3gpp-subscription-state"></a><h3>The <code class="literal">"m3gpp-subscription-state"</code> property</h3>
+<pre class="programlisting"> "m3gpp-subscription-state" <span class="type">MMModem3gppSubscriptionState</span> : Read / Write</pre>
+<p>Subscription state of the account.</p>
+<p>Default value: MM_MODEM_3GPP_SUBSCRIPTION_STATE_UNKNOWN</p>
+</div>
+<hr>
+<div class="refsect2">
<a name="MMSimpleStatus--signal-quality"></a><h3>The <code class="literal">"signal-quality"</code> property</h3>
<pre class="programlisting"> "signal-quality" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write</pre>
<p>Signal quality reported by the modem.</p>
@@ -471,7 +506,7 @@ Gets the System Identification number of the CDMA network.
<hr>
<div class="refsect2">
<a name="MMSimpleStatus--state"></a><h3>The <code class="literal">"state"</code> property</h3>
-<pre class="programlisting"> "state" <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemState"><span class="type">MMModemState</span></a> : Read / Write</pre>
+<pre class="programlisting"> "state" <span class="type">MMModemState</span> : Read / Write</pre>
<p>State of the modem.</p>
<p>Default value: MM_MODEM_STATE_UNKNOWN</p>
</div>
@@ -479,6 +514,6 @@ Gets the System Identification number of the CDMA network.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MMSms.html b/docs/reference/libmm-glib/html/MMSms.html
index f4b0963..f12660f 100644
--- a/docs/reference/libmm-glib/html/MMSms.html
+++ b/docs/reference/libmm-glib/html/MMSms.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch06.html" title="The SMS object">
<link rel="prev" href="ch06.html" title="The SMS object">
<link rel="next" href="MMSmsProperties.html" title="MMSmsProperties">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -45,9 +45,9 @@
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMSms.html#mm-sms-get-path" title="mm_sms_get_path ()">mm_sms_get_path</a> (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMSms.html#mm-sms-dup-path" title="mm_sms_dup_path ()">mm_sms_dup_path</a> (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>);
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsState"><span class="returnvalue">MMSmsState</span></a> <a class="link" href="MMSms.html#mm-sms-get-state" title="mm_sms_get_state ()">mm_sms_get_state</a> (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>);
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsPduType"><span class="returnvalue">MMSmsPduType</span></a> <a class="link" href="MMSms.html#mm-sms-get-pdu-type" title="mm_sms_get_pdu_type ()">mm_sms_get_pdu_type</a> (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>);
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsStorage"><span class="returnvalue">MMSmsStorage</span></a> <a class="link" href="MMSms.html#mm-sms-get-storage" title="mm_sms_get_storage ()">mm_sms_get_storage</a> (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>);
+<span class="returnvalue">MMSmsState</span> <a class="link" href="MMSms.html#mm-sms-get-state" title="mm_sms_get_state ()">mm_sms_get_state</a> (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>);
+<span class="returnvalue">MMSmsPduType</span> <a class="link" href="MMSms.html#mm-sms-get-pdu-type" title="mm_sms_get_pdu_type ()">mm_sms_get_pdu_type</a> (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>);
+<span class="returnvalue">MMSmsStorage</span> <a class="link" href="MMSms.html#mm-sms-get-storage" title="mm_sms_get_storage ()">mm_sms_get_storage</a> (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMSms.html#mm-sms-get-text" title="mm_sms_get_text ()">mm_sms_get_text</a> (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMSms.html#mm-sms-dup-text" title="mm_sms_dup_text ()">mm_sms_dup_text</a> (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> * <a class="link" href="MMSms.html#mm-sms-get-data" title="mm_sms_get_data ()">mm_sms_get_data</a> (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>,
@@ -60,7 +60,9 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMSms.html#mm-sms-dup-smsc" title="mm_sms_dup_smsc ()">mm_sms_dup_smsc</a> (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="MMSms.html#mm-sms-get-message-reference" title="mm_sms_get_message_reference ()">mm_sms_get_message_reference</a> (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> <a class="link" href="MMSms.html#mm-sms-get-class" title="mm_sms_get_class ()">mm_sms_get_class</a> (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>);
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsValidityType"><span class="returnvalue">MMSmsValidityType</span></a> <a class="link" href="MMSms.html#mm-sms-get-validity-type" title="mm_sms_get_validity_type ()">mm_sms_get_validity_type</a> (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>);
+<span class="returnvalue">MMSmsCdmaTeleserviceId</span> <a class="link" href="MMSms.html#mm-sms-get-teleservice-id" title="mm_sms_get_teleservice_id ()">mm_sms_get_teleservice_id</a> (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>);
+<span class="returnvalue">MMSmsCdmaServiceCategory</span> <a class="link" href="MMSms.html#mm-sms-get-service-category" title="mm_sms_get_service_category ()">mm_sms_get_service_category</a> (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>);
+<span class="returnvalue">MMSmsValidityType</span> <a class="link" href="MMSms.html#mm-sms-get-validity-type" title="mm_sms_get_validity_type ()">mm_sms_get_validity_type</a> (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="MMSms.html#mm-sms-get-validity-relative" title="mm_sms_get_validity_relative ()">mm_sms_get_validity_relative</a> (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMSms.html#mm-sms-get-timestamp" title="mm_sms_get_timestamp ()">mm_sms_get_timestamp</a> (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMSms.html#mm-sms-dup-timestamp" title="mm_sms_dup_timestamp ()">mm_sms_dup_timestamp</a> (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>);
@@ -80,7 +82,7 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
<span class="returnvalue">void</span> <a class="link" href="MMSms.html#mm-sms-store" title="mm_sms_store ()">mm_sms_store</a> (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsStorage"><span class="type">MMSmsStorage</span></a> storage</code></em>,
+ <em class="parameter"><code><span class="type">MMSmsStorage</span> storage</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
@@ -88,7 +90,7 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MMSms.html#mm-sms-store-sync" title="mm_sms_store_sync ()">mm_sms_store_sync</a> (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsStorage"><span class="type">MMSmsStorage</span></a> storage</code></em>,
+ <em class="parameter"><code><span class="type">MMSmsStorage</span> storage</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
</pre>
@@ -182,7 +184,7 @@ Gets a copy of the DBus path of the <a class="link" href="MMSms.html" title="MMS
<hr>
<div class="refsect2">
<a name="mm-sms-get-state"></a><h3>mm_sms_get_state ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsState"><span class="returnvalue">MMSmsState</span></a> mm_sms_get_state (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">MMSmsState</span> mm_sms_get_state (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>);</pre>
<p>
Gets the state of this SMS.
</p>
@@ -198,7 +200,7 @@ Gets the state of this SMS.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsState"><span class="type">MMSmsState</span></a> specifying the state.</td>
+<td>A <span class="type">MMSmsState</span> specifying the state.</td>
</tr>
</tbody>
</table></div>
@@ -206,7 +208,7 @@ Gets the state of this SMS.
<hr>
<div class="refsect2">
<a name="mm-sms-get-pdu-type"></a><h3>mm_sms_get_pdu_type ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsPduType"><span class="returnvalue">MMSmsPduType</span></a> mm_sms_get_pdu_type (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">MMSmsPduType</span> mm_sms_get_pdu_type (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>);</pre>
<p>
Gets the PDU type on which this SMS is based.
</p>
@@ -222,7 +224,7 @@ Gets the PDU type on which this SMS is based.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsPduType"><span class="type">MMSmsPduType</span></a> specifying the PDU type.</td>
+<td>A <span class="type">MMSmsPduType</span> specifying the PDU type.</td>
</tr>
</tbody>
</table></div>
@@ -230,7 +232,7 @@ Gets the PDU type on which this SMS is based.
<hr>
<div class="refsect2">
<a name="mm-sms-get-storage"></a><h3>mm_sms_get_storage ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsStorage"><span class="returnvalue">MMSmsStorage</span></a> mm_sms_get_storage (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">MMSmsStorage</span> mm_sms_get_storage (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>);</pre>
<p>
Gets the storage in which this SMS is kept.
</p>
@@ -246,7 +248,7 @@ Gets the storage in which this SMS is kept.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsStorage"><span class="type">MMSmsStorage</span></a> specifying the storage.</td>
+<td>A <span class="type">MMSmsStorage</span> specifying the storage.</td>
</tr>
</tbody>
</table></div>
@@ -361,7 +363,8 @@ Gets the message data.
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>data_len</code></em> :</span></p></td>
-<td>(out) Size of the output data, if any given.</td>
+<td>Size of the output data, if any given. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
@@ -497,7 +500,7 @@ Gets the SMS service center number.
Gets the message reference of the last PDU sent/received within this SMS.
</p>
<p>
-If the PDU type is <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-PDU-TYPE-STATUS-REPORT:CAPS"><code class="literal">MM_SMS_PDU_TYPE_STATUS_REPORT</code></a>, this field identifies the
+If the PDU type is <code class="literal">MM_SMS_PDU_TYPE_STATUS_REPORT</code>, this field identifies the
message reference of the PDU associated to the status report.
</p>
<div class="variablelist"><table border="0" class="variablelist">
@@ -543,8 +546,56 @@ Gets the 3GPP message class of the SMS.
</div>
<hr>
<div class="refsect2">
+<a name="mm-sms-get-teleservice-id"></a><h3>mm_sms_get_teleservice_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">MMSmsCdmaTeleserviceId</span> mm_sms_get_teleservice_id (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>);</pre>
+<p>
+Gets the 3GPP2 Teleservice ID.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <span class="type">MMSmsCdmaTeleserviceId</span>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-sms-get-service-category"></a><h3>mm_sms_get_service_category ()</h3>
+<pre class="programlisting"><span class="returnvalue">MMSmsCdmaServiceCategory</span> mm_sms_get_service_category (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>);</pre>
+<p>
+Gets the 3GPP2 Service Category.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <span class="type">MMSmsCdmaServiceCategory</span>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
<a name="mm-sms-get-validity-type"></a><h3>mm_sms_get_validity_type ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsValidityType"><span class="returnvalue">MMSmsValidityType</span></a> mm_sms_get_validity_type (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">MMSmsValidityType</span> mm_sms_get_validity_type (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>);</pre>
<p>
Gets the type of validity information in the SMS.
</p>
@@ -560,7 +611,7 @@ Gets the type of validity information in the SMS.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the validity type or <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-VALIDITY-TYPE-UNKNOWN:CAPS"><span class="type">MM_SMS_VALIDITY_TYPE_UNKNOWN</span></a>.</td>
+<td>the validity type or <span class="type">MM_SMS_VALIDITY_TYPE_UNKNOWN</span>.</td>
</tr>
</tbody>
</table></div>
@@ -573,7 +624,7 @@ Gets the type of validity information in the SMS.
Gets the length of the validity period, in minutes.
</p>
<p>
-Only applicable if the type of validity is <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-VALIDITY-TYPE-RELATIVE:CAPS"><span class="type">MM_SMS_VALIDITY_TYPE_RELATIVE</span></a>.
+Only applicable if the type of validity is <span class="type">MM_SMS_VALIDITY_TYPE_RELATIVE</span>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -602,8 +653,8 @@ Gets the time when the first PDU of the SMS message arrived the SMSC, in
format.
</p>
<p>
-This field is only applicable if the PDU type is <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-PDU-TYPE-DELIVER:CAPS"><code class="literal">MM_SMS_PDU_TYPE_DELIVER</code></a> or
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-PDU-TYPE-STATUS-REPORT:CAPS"><code class="literal">MM_SMS_PDU_TYPE_STATUS_REPORT</code></a>.
+This field is only applicable if the PDU type is <code class="literal">MM_SMS_PDU_TYPE_DELIVER</code> or
+<code class="literal">MM_SMS_PDU_TYPE_STATUS_REPORT</code>.
</p>
<p>
</p>
@@ -642,8 +693,8 @@ Gets the time when the first PDU of the SMS message arrived the SMSC, in
format.
</p>
<p>
-This field is only applicable if the PDU type is <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-PDU-TYPE-DELIVER:CAPS"><code class="literal">MM_SMS_PDU_TYPE_DELIVER</code></a> or
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-PDU-TYPE-STATUS-REPORT:CAPS"><code class="literal">MM_SMS_PDU_TYPE_STATUS_REPORT</code></a>.
+This field is only applicable if the PDU type is <code class="literal">MM_SMS_PDU_TYPE_DELIVER</code> or
+<code class="literal">MM_SMS_PDU_TYPE_STATUS_REPORT</code>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -673,7 +724,7 @@ Gets the time when the first PDU of the SMS message left the SMSC, in
format.
</p>
<p>
-This field is only applicable if the PDU type is <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-PDU-TYPE-STATUS-REPORT:CAPS"><code class="literal">MM_SMS_PDU_TYPE_STATUS_REPORT</code></a>.
+This field is only applicable if the PDU type is <code class="literal">MM_SMS_PDU_TYPE_STATUS_REPORT</code>.
</p>
<p>
</p>
@@ -712,7 +763,7 @@ Gets the time when the first PDU of the SMS message left the SMSC, in
format.
</p>
<p>
-This field is only applicable if the PDU type is <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-PDU-TYPE-STATUS-REPORT:CAPS"><code class="literal">MM_SMS_PDU_TYPE_STATUS_REPORT</code></a>.
+This field is only applicable if the PDU type is <code class="literal">MM_SMS_PDU_TYPE_STATUS_REPORT</code>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -740,7 +791,7 @@ This field is only applicable if the PDU type is <a href="/usr/share/gtk-doc/htm
Gets the delivery state of this SMS.
</p>
<p>
-This field is only applicable if the PDU type is <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-PDU-TYPE-STATUS-REPORT:CAPS"><code class="literal">MM_SMS_PDU_TYPE_STATUS_REPORT</code></a>.
+This field is only applicable if the PDU type is <code class="literal">MM_SMS_PDU_TYPE_STATUS_REPORT</code>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -754,7 +805,7 @@ This field is only applicable if the PDU type is <a href="/usr/share/gtk-doc/htm
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsDeliveryState"><span class="type">MMSmsDeliveryState</span></a> specifying the delivery state.</td>
+<td>A <span class="type">MMSmsDeliveryState</span> specifying the delivery state.</td>
</tr>
</tbody>
</table></div>
@@ -912,7 +963,7 @@ See <a class="link" href="MMSms.html#mm-sms-send" title="mm_sms_send ()"><code c
<div class="refsect2">
<a name="mm-sms-store"></a><h3>mm_sms_store ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> mm_sms_store (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsStorage"><span class="type">MMSmsStorage</span></a> storage</code></em>,
+ <em class="parameter"><code><span class="type">MMSmsStorage</span> storage</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
@@ -941,7 +992,7 @@ See <a class="link" href="MMSms.html#mm-sms-store-sync" title="mm_sms_store_sync
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>storage</code></em> :</span></p></td>
-<td>A <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsStorage"><span class="type">MMSmsStorage</span></a> specifying where to store the SMS, or <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-STORAGE-UNKNOWN:CAPS"><span class="type">MM_SMS_STORAGE_UNKNOWN</span></a> to use the default.</td>
+<td>A <span class="type">MMSmsStorage</span> specifying where to store the SMS, or <span class="type">MM_SMS_STORAGE_UNKNOWN</span> to use the default.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
@@ -998,7 +1049,7 @@ Finishes an operation started with <a class="link" href="MMSms.html#mm-sms-store
<div class="refsect2">
<a name="mm-sms-store-sync"></a><h3>mm_sms_store_sync ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_sms_store_sync (<em class="parameter"><code><a class="link" href="MMSms.html" title="MMSms"><span class="type">MMSms</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsStorage"><span class="type">MMSmsStorage</span></a> storage</code></em>,
+ <em class="parameter"><code><span class="type">MMSmsStorage</span> storage</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
@@ -1023,7 +1074,7 @@ See <a class="link" href="MMSms.html#mm-sms-store" title="mm_sms_store ()"><code
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>storage</code></em> :</span></p></td>
-<td>A <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsStorage"><span class="type">MMSmsStorage</span></a> specifying where to store the SMS, or <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-STORAGE-UNKNOWN:CAPS"><span class="type">MM_SMS_STORAGE_UNKNOWN</span></a> to use the default.</td>
+<td>A <span class="type">MMSmsStorage</span> specifying where to store the SMS, or <span class="type">MM_SMS_STORAGE_UNKNOWN</span> to use the default.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
@@ -1046,6 +1097,6 @@ See <a class="link" href="MMSms.html#mm-sms-store" title="mm_sms_store ()"><code
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MMSmsProperties.html b/docs/reference/libmm-glib/html/MMSmsProperties.html
index e73d6ea..b9abe8b 100644
--- a/docs/reference/libmm-glib/html/MMSmsProperties.html
+++ b/docs/reference/libmm-glib/html/MMSmsProperties.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch06.html" title="The SMS object">
<link rel="prev" href="MMSms.html" title="MMSms">
<link rel="next" href="pt02.html" title="Part II. Low level API">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -64,7 +64,7 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MMSmsProperties.html#mm-sms-properties-get-smsc" title="mm_sms_properties_get_smsc ()">mm_sms_properties_get_smsc</a> (<em class="parameter"><code><a class="link" href="MMSmsProperties.html" title="MMSmsProperties"><span class="type">MMSmsProperties</span></a> *self</code></em>);
<span class="returnvalue">void</span> <a class="link" href="MMSmsProperties.html#mm-sms-properties-set-smsc" title="mm_sms_properties_set_smsc ()">mm_sms_properties_set_smsc</a> (<em class="parameter"><code><a class="link" href="MMSmsProperties.html" title="MMSmsProperties"><span class="type">MMSmsProperties</span></a> *self</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *smsc</code></em>);
-<a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsValidityType"><span class="returnvalue">MMSmsValidityType</span></a> <a class="link" href="MMSmsProperties.html#mm-sms-properties-get-validity-type" title="mm_sms_properties_get_validity_type ()">mm_sms_properties_get_validity_type</a> (<em class="parameter"><code><a class="link" href="MMSmsProperties.html" title="MMSmsProperties"><span class="type">MMSmsProperties</span></a> *self</code></em>);
+<span class="returnvalue">MMSmsValidityType</span> <a class="link" href="MMSmsProperties.html#mm-sms-properties-get-validity-type" title="mm_sms_properties_get_validity_type ()">mm_sms_properties_get_validity_type</a> (<em class="parameter"><code><a class="link" href="MMSmsProperties.html" title="MMSmsProperties"><span class="type">MMSmsProperties</span></a> *self</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="MMSmsProperties.html#mm-sms-properties-get-validity-relative" title="mm_sms_properties_get_validity_relative ()">mm_sms_properties_get_validity_relative</a>
(<em class="parameter"><code><a class="link" href="MMSmsProperties.html" title="MMSmsProperties"><span class="type">MMSmsProperties</span></a> *self</code></em>);
<span class="returnvalue">void</span> <a class="link" href="MMSmsProperties.html#mm-sms-properties-set-validity-relative" title="mm_sms_properties_set_validity_relative ()">mm_sms_properties_set_validity_relative</a>
@@ -78,6 +78,16 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
<span class="returnvalue">void</span> <a class="link" href="MMSmsProperties.html#mm-sms-properties-set-delivery-report-request" title="mm_sms_properties_set_delivery_report_request ()">mm_sms_properties_set_delivery_report_request</a>
(<em class="parameter"><code><a class="link" href="MMSmsProperties.html" title="MMSmsProperties"><span class="type">MMSmsProperties</span></a> *self</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> request</code></em>);
+<span class="returnvalue">MMSmsCdmaTeleserviceId</span> <a class="link" href="MMSmsProperties.html#mm-sms-properties-get-teleservice-id" title="mm_sms_properties_get_teleservice_id ()">mm_sms_properties_get_teleservice_id</a>
+ (<em class="parameter"><code><a class="link" href="MMSmsProperties.html" title="MMSmsProperties"><span class="type">MMSmsProperties</span></a> *self</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="MMSmsProperties.html#mm-sms-properties-set-teleservice-id" title="mm_sms_properties_set_teleservice_id ()">mm_sms_properties_set_teleservice_id</a>
+ (<em class="parameter"><code><a class="link" href="MMSmsProperties.html" title="MMSmsProperties"><span class="type">MMSmsProperties</span></a> *self</code></em>,
+ <em class="parameter"><code><span class="type">MMSmsCdmaTeleserviceId</span> teleservice_id</code></em>);
+<span class="returnvalue">MMSmsCdmaServiceCategory</span> <a class="link" href="MMSmsProperties.html#mm-sms-properties-get-service-category" title="mm_sms_properties_get_service_category ()">mm_sms_properties_get_service_category</a>
+ (<em class="parameter"><code><a class="link" href="MMSmsProperties.html" title="MMSmsProperties"><span class="type">MMSmsProperties</span></a> *self</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="MMSmsProperties.html#mm-sms-properties-set-service-category" title="mm_sms_properties_set_service_category ()">mm_sms_properties_set_service_category</a>
+ (<em class="parameter"><code><a class="link" href="MMSmsProperties.html" title="MMSmsProperties"><span class="type">MMSmsProperties</span></a> *self</code></em>,
+ <em class="parameter"><code><span class="type">MMSmsCdmaServiceCategory</span> service_category</code></em>);
</pre>
</div>
<div class="refsect1">
@@ -419,7 +429,7 @@ Sets the SMS service center number.
<hr>
<div class="refsect2">
<a name="mm-sms-properties-get-validity-type"></a><h3>mm_sms_properties_get_validity_type ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsValidityType"><span class="returnvalue">MMSmsValidityType</span></a> mm_sms_properties_get_validity_type (<em class="parameter"><code><a class="link" href="MMSmsProperties.html" title="MMSmsProperties"><span class="type">MMSmsProperties</span></a> *self</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">MMSmsValidityType</span> mm_sms_properties_get_validity_type (<em class="parameter"><code><a class="link" href="MMSmsProperties.html" title="MMSmsProperties"><span class="type">MMSmsProperties</span></a> *self</code></em>);</pre>
<p>
Gets the relative validity type the SMS.
</p>
@@ -435,7 +445,7 @@ Gets the relative validity type the SMS.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsValidityType"><span class="type">MMSmsValidityType</span></a>.</td>
+<td>a <span class="type">MMSmsValidityType</span>.</td>
</tr>
</tbody>
</table></div>
@@ -486,7 +496,7 @@ Sets the relative validity time of the SMS.
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>validity</code></em> :</span></p></td>
-<td>The validity of <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MM-SMS-VALIDITY-TYPE-RELATIVE:CAPS"><code class="literal">MM_SMS_VALIDITY_TYPE_RELATIVE</code></a> type.</td>
+<td>The validity of <code class="literal">MM_SMS_VALIDITY_TYPE_RELATIVE</code> type.</td>
</tr>
</tbody>
</table></div>
@@ -593,10 +603,112 @@ Sets whether delivery report is requested for the SMS.
</tbody>
</table></div>
</div>
+<hr>
+<div class="refsect2">
+<a name="mm-sms-properties-get-teleservice-id"></a><h3>mm_sms_properties_get_teleservice_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">MMSmsCdmaTeleserviceId</span> mm_sms_properties_get_teleservice_id
+ (<em class="parameter"><code><a class="link" href="MMSmsProperties.html" title="MMSmsProperties"><span class="type">MMSmsProperties</span></a> *self</code></em>);</pre>
+<p>
+Gets the CDMA teleservice ID of the SMS.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMSmsProperties.html" title="MMSmsProperties"><span class="type">MMSmsProperties</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the CDMA teleservice ID.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-sms-properties-set-teleservice-id"></a><h3>mm_sms_properties_set_teleservice_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> mm_sms_properties_set_teleservice_id
+ (<em class="parameter"><code><a class="link" href="MMSmsProperties.html" title="MMSmsProperties"><span class="type">MMSmsProperties</span></a> *self</code></em>,
+ <em class="parameter"><code><span class="type">MMSmsCdmaTeleserviceId</span> teleservice_id</code></em>);</pre>
+<p>
+Sets the CDMA teleservice ID of the SMS.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMSmsProperties.html" title="MMSmsProperties"><span class="type">MMSmsProperties</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>teleservice_id</code></em> :</span></p></td>
+<td>The CDMA teleservice ID.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-sms-properties-get-service-category"></a><h3>mm_sms_properties_get_service_category ()</h3>
+<pre class="programlisting"><span class="returnvalue">MMSmsCdmaServiceCategory</span> mm_sms_properties_get_service_category
+ (<em class="parameter"><code><a class="link" href="MMSmsProperties.html" title="MMSmsProperties"><span class="type">MMSmsProperties</span></a> *self</code></em>);</pre>
+<p>
+Gets the CDMA message service category of the SMS.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMSmsProperties.html" title="MMSmsProperties"><span class="type">MMSmsProperties</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the CDMA service category.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-sms-properties-set-service-category"></a><h3>mm_sms_properties_set_service_category ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> mm_sms_properties_set_service_category
+ (<em class="parameter"><code><a class="link" href="MMSmsProperties.html" title="MMSmsProperties"><span class="type">MMSmsProperties</span></a> *self</code></em>,
+ <em class="parameter"><code><span class="type">MMSmsCdmaServiceCategory</span> service_category</code></em>);</pre>
+<p>
+Sets the CDMA service category of the SMS.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>A <a class="link" href="MMSmsProperties.html" title="MMSmsProperties"><span class="type">MMSmsProperties</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>service_category</code></em> :</span></p></td>
+<td>The CDMA service category.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MMUnlockRetries.html b/docs/reference/libmm-glib/html/MMUnlockRetries.html
index 1c4e067..db93ba8 100644
--- a/docs/reference/libmm-glib/html/MMUnlockRetries.html
+++ b/docs/reference/libmm-glib/html/MMUnlockRetries.html
@@ -5,17 +5,17 @@
<title>MMUnlockRetries</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="libmm-glib Reference Manual">
-<link rel="up" href="ch03.html#idm211869297872" title="Generic interfaces">
-<link rel="prev" href="MMModemCdma.html" title="MMModemCdma">
+<link rel="up" href="ch03.html#id-1.2.4.3" title="Generic interfaces">
+<link rel="prev" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties">
<link rel="next" href="ch03s02.html" title="Simple interface support">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
-<td><a accesskey="p" href="MMModemCdma.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch03.html#idm211869297872"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="MMCdmaManualActivationProperties.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch03.html#id-1.2.4.3"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">libmm-glib Reference Manual</th>
<td><a accesskey="n" href="ch03s02.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
@@ -43,8 +43,8 @@
#define <a class="link" href="MMUnlockRetries.html#MM-UNLOCK-RETRIES-UNKNOWN:CAPS" title="MM_UNLOCK_RETRIES_UNKNOWN">MM_UNLOCK_RETRIES_UNKNOWN</a>
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="MMUnlockRetries.html#mm-unlock-retries-get" title="mm_unlock_retries_get ()">mm_unlock_retries_get</a> (<em class="parameter"><code><a class="link" href="MMUnlockRetries.html" title="MMUnlockRetries"><span class="type">MMUnlockRetries</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemLock"><span class="type">MMModemLock</span></a> lock</code></em>);
-<span class="returnvalue">void</span> (<a class="link" href="MMUnlockRetries.html#MMUnlockRetriesForeachCb" title="MMUnlockRetriesForeachCb ()">*MMUnlockRetriesForeachCb</a>) (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemLock"><span class="type">MMModemLock</span></a> lock</code></em>,
+ <em class="parameter"><code><span class="type">MMModemLock</span> lock</code></em>);
+<span class="returnvalue">void</span> (<a class="link" href="MMUnlockRetries.html#MMUnlockRetriesForeachCb" title="MMUnlockRetriesForeachCb ()">*MMUnlockRetriesForeachCb</a>) (<em class="parameter"><code><span class="type">MMModemLock</span> lock</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> count</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
<span class="returnvalue">void</span> <a class="link" href="MMUnlockRetries.html#mm-unlock-retries-foreach" title="mm_unlock_retries_foreach ()">mm_unlock_retries_foreach</a> (<em class="parameter"><code><a class="link" href="MMUnlockRetries.html" title="MMUnlockRetries"><span class="type">MMUnlockRetries</span></a> *self</code></em>,
@@ -63,7 +63,7 @@
<a name="MMUnlockRetries.description"></a><h2>Description</h2>
<p>
The <a class="link" href="MMUnlockRetries.html" title="MMUnlockRetries"><span class="type">MMUnlockRetries</span></a> is an object exposing the unlock retry counts for
-different <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemLock"><span class="type">MMModemLock</span></a> values.
+different <span class="type">MMModemLock</span> values.
</p>
<p>
This object is retrieved from the <a class="link" href="MMModem.html" title="MMModem"><span class="type">MMModem</span></a> object with either
@@ -93,7 +93,7 @@ Identifier for reporting unknown unlock retries.
<div class="refsect2">
<a name="mm-unlock-retries-get"></a><h3>mm_unlock_retries_get ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> mm_unlock_retries_get (<em class="parameter"><code><a class="link" href="MMUnlockRetries.html" title="MMUnlockRetries"><span class="type">MMUnlockRetries</span></a> *self</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemLock"><span class="type">MMModemLock</span></a> lock</code></em>);</pre>
+ <em class="parameter"><code><span class="type">MMModemLock</span> lock</code></em>);</pre>
<p>
Gets the unlock retries for the given <em class="parameter"><code>lock</code></em>.
</p>
@@ -109,7 +109,7 @@ Gets the unlock retries for the given <em class="parameter"><code>lock</code></e
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>lock</code></em> :</span></p></td>
-<td>a <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemLock"><span class="type">MMModemLock</span></a>.</td>
+<td>a <span class="type">MMModemLock</span>.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
@@ -121,7 +121,7 @@ Gets the unlock retries for the given <em class="parameter"><code>lock</code></e
<hr>
<div class="refsect2">
<a name="MMUnlockRetriesForeachCb"></a><h3>MMUnlockRetriesForeachCb ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> (*MMUnlockRetriesForeachCb) (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemLock"><span class="type">MMModemLock</span></a> lock</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span> (*MMUnlockRetriesForeachCb) (<em class="parameter"><code><span class="type">MMModemLock</span> lock</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> count</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
@@ -135,7 +135,7 @@ Specifies the type of function passed to <a class="link" href="MMUnlockRetries.h
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>lock</code></em> :</span></p></td>
-<td>a <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemLock"><span class="type">MMModemLock</span></a>.</td>
+<td>a <span class="type">MMModemLock</span>.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>count</code></em> :</span></p></td>
@@ -169,11 +169,13 @@ Executes <em class="parameter"><code>callback</code></em> for each lock informat
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
-<td>callback to call for each available lock.</td>
+<td>callback to call for each available lock. <span class="annotation">[<acronym title="The callback is valid only during the call to the method."><span class="acronym">scope call</span></acronym>]</span>
+</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>data to pass to <em class="parameter"><code>callback</code></em>.</td>
+<td>data to pass to <em class="parameter"><code>callback</code></em>. <span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span>
+</td>
</tr>
</tbody>
</table></div>
@@ -182,6 +184,6 @@ Executes <em class="parameter"><code>callback</code></em> for each lock informat
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusBearer.html b/docs/reference/libmm-glib/html/MmGdbusBearer.html
index f2da03d..74f1677 100644
--- a/docs/reference/libmm-glib/html/MmGdbusBearer.html
+++ b/docs/reference/libmm-glib/html/MmGdbusBearer.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusModemSimpleSkeleton.html" title="MmGdbusModemSimpleSkeleton">
<link rel="next" href="MmGdbusBearerProxy.html" title="MmGdbusBearerProxy">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -226,7 +226,7 @@ Virtual table for the D-Bus interface org.freedesktop.ModemManager1.Bearer.
<a name="mm-gdbus-bearer-get-interface"></a><h3>mm_gdbus_bearer_get_interface ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_bearer_get_interface (<em class="parameter"><code><a class="link" href="MmGdbusBearer.html" title="MmGdbusBearer"><span class="type">MmGdbusBearer</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Bearer.html#gdbus-property-org-freedesktop-ModemManager1-Bearer.Interface">"Interface"</a> D-Bus property.
+Gets the value of the "Interface" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -260,7 +260,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-bearer-dup-interface"></a><h3>mm_gdbus_bearer_dup_interface ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_bearer_dup_interface (<em class="parameter"><code><a class="link" href="MmGdbusBearer.html" title="MmGdbusBearer"><span class="type">MmGdbusBearer</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Bearer.html#gdbus-property-org-freedesktop-ModemManager1-Bearer.Interface">"Interface"</a> D-Bus property.
+Gets a copy of the "Interface" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -288,7 +288,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-bearer-get-ip4-config"></a><h3>mm_gdbus_bearer_get_ip4_config ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_bearer_get_ip4_config (<em class="parameter"><code><a class="link" href="MmGdbusBearer.html" title="MmGdbusBearer"><span class="type">MmGdbusBearer</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Bearer.html#gdbus-property-org-freedesktop-ModemManager1-Bearer.Ip4Config">"Ip4Config"</a> D-Bus property.
+Gets the value of the "Ip4Config" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -322,7 +322,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-bearer-dup-ip4-config"></a><h3>mm_gdbus_bearer_dup_ip4_config ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_bearer_dup_ip4_config (<em class="parameter"><code><a class="link" href="MmGdbusBearer.html" title="MmGdbusBearer"><span class="type">MmGdbusBearer</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Bearer.html#gdbus-property-org-freedesktop-ModemManager1-Bearer.Ip4Config">"Ip4Config"</a> D-Bus property.
+Gets a copy of the "Ip4Config" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -350,7 +350,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-bearer-get-ip6-config"></a><h3>mm_gdbus_bearer_get_ip6_config ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_bearer_get_ip6_config (<em class="parameter"><code><a class="link" href="MmGdbusBearer.html" title="MmGdbusBearer"><span class="type">MmGdbusBearer</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Bearer.html#gdbus-property-org-freedesktop-ModemManager1-Bearer.Ip6Config">"Ip6Config"</a> D-Bus property.
+Gets the value of the "Ip6Config" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -384,7 +384,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-bearer-dup-ip6-config"></a><h3>mm_gdbus_bearer_dup_ip6_config ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_bearer_dup_ip6_config (<em class="parameter"><code><a class="link" href="MmGdbusBearer.html" title="MmGdbusBearer"><span class="type">MmGdbusBearer</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Bearer.html#gdbus-property-org-freedesktop-ModemManager1-Bearer.Ip6Config">"Ip6Config"</a> D-Bus property.
+Gets a copy of the "Ip6Config" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -412,7 +412,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-bearer-get-ip-timeout"></a><h3>mm_gdbus_bearer_get_ip_timeout ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> mm_gdbus_bearer_get_ip_timeout (<em class="parameter"><code><a class="link" href="MmGdbusBearer.html" title="MmGdbusBearer"><span class="type">MmGdbusBearer</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Bearer.html#gdbus-property-org-freedesktop-ModemManager1-Bearer.IpTimeout">"IpTimeout"</a> D-Bus property.
+Gets the value of the "IpTimeout" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -439,7 +439,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-bearer-get-properties"></a><h3>mm_gdbus_bearer_get_properties ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_bearer_get_properties (<em class="parameter"><code><a class="link" href="MmGdbusBearer.html" title="MmGdbusBearer"><span class="type">MmGdbusBearer</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Bearer.html#gdbus-property-org-freedesktop-ModemManager1-Bearer.Properties">"Properties"</a> D-Bus property.
+Gets the value of the "Properties" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -473,7 +473,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-bearer-dup-properties"></a><h3>mm_gdbus_bearer_dup_properties ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_bearer_dup_properties (<em class="parameter"><code><a class="link" href="MmGdbusBearer.html" title="MmGdbusBearer"><span class="type">MmGdbusBearer</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Bearer.html#gdbus-property-org-freedesktop-ModemManager1-Bearer.Properties">"Properties"</a> D-Bus property.
+Gets a copy of the "Properties" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -501,7 +501,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-bearer-get-connected"></a><h3>mm_gdbus_bearer_get_connected ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_gdbus_bearer_get_connected (<em class="parameter"><code><a class="link" href="MmGdbusBearer.html" title="MmGdbusBearer"><span class="type">MmGdbusBearer</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Bearer.html#gdbus-property-org-freedesktop-ModemManager1-Bearer.Connected">"Connected"</a> D-Bus property.
+Gets the value of the "Connected" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -528,7 +528,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-bearer-get-suspended"></a><h3>mm_gdbus_bearer_get_suspended ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_gdbus_bearer_get_suspended (<em class="parameter"><code><a class="link" href="MmGdbusBearer.html" title="MmGdbusBearer"><span class="type">MmGdbusBearer</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Bearer.html#gdbus-property-org-freedesktop-ModemManager1-Bearer.Suspended">"Suspended"</a> D-Bus property.
+Gets the value of the "Suspended" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -558,7 +558,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Bearer.html#gdbus-method-org-freedesktop-ModemManager1-Bearer.Connect"><GTKDOCLINK HREF="Connect"><code class="function">Connect()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="Connect"><code class="function">Connect()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusBearer.html#mm-gdbus-bearer-call-connect-finish" title="mm_gdbus_bearer_call_connect_finish ()"><code class="function">mm_gdbus_bearer_call_connect_finish()</code></a> to get the result of the operation.
</p>
@@ -634,7 +634,7 @@ Finishes an operation started with <a class="link" href="MmGdbusBearer.html#mm-g
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Bearer.html#gdbus-method-org-freedesktop-ModemManager1-Bearer.Connect"><GTKDOCLINK HREF="Connect"><code class="function">Connect()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="Connect"><code class="function">Connect()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusBearer.html#mm-gdbus-bearer-call-connect" title="mm_gdbus_bearer_call_connect ()"><code class="function">mm_gdbus_bearer_call_connect()</code></a> for the asynchronous version of this method.
@@ -675,7 +675,7 @@ See <a class="link" href="MmGdbusBearer.html#mm-gdbus-bearer-call-connect" title
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Bearer.html#gdbus-method-org-freedesktop-ModemManager1-Bearer.Disconnect"><GTKDOCLINK HREF="Disconnect"><code class="function">Disconnect()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="Disconnect"><code class="function">Disconnect()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusBearer.html#mm-gdbus-bearer-call-disconnect-finish" title="mm_gdbus_bearer_call_disconnect_finish ()"><code class="function">mm_gdbus_bearer_call_disconnect_finish()</code></a> to get the result of the operation.
</p>
@@ -753,7 +753,7 @@ Finishes an operation started with <a class="link" href="MmGdbusBearer.html#mm-g
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Bearer.html#gdbus-method-org-freedesktop-ModemManager1-Bearer.Disconnect"><GTKDOCLINK HREF="Disconnect"><code class="function">Disconnect()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="Disconnect"><code class="function">Disconnect()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusBearer.html#mm-gdbus-bearer-call-disconnect" title="mm_gdbus_bearer_call_disconnect ()"><code class="function">mm_gdbus_bearer_call_disconnect()</code></a> for the asynchronous version of this method.
@@ -793,7 +793,7 @@ See <a class="link" href="MmGdbusBearer.html#mm-gdbus-bearer-call-disconnect" ti
<a name="MmGdbusBearer--connected"></a><h3>The <code class="literal">"connected"</code> property</h3>
<pre class="programlisting"> "connected" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Bearer.html#gdbus-property-org-freedesktop-ModemManager1-Bearer.Connected">"Connected"</a>.
+Represents the D-Bus property "Connected".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -805,7 +805,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusBearer--interface"></a><h3>The <code class="literal">"interface"</code> property</h3>
<pre class="programlisting"> "interface" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Bearer.html#gdbus-property-org-freedesktop-ModemManager1-Bearer.Interface">"Interface"</a>.
+Represents the D-Bus property "Interface".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -817,7 +817,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusBearer--ip-timeout"></a><h3>The <code class="literal">"ip-timeout"</code> property</h3>
<pre class="programlisting"> "ip-timeout" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Bearer.html#gdbus-property-org-freedesktop-ModemManager1-Bearer.IpTimeout">"IpTimeout"</a>.
+Represents the D-Bus property "IpTimeout".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -829,7 +829,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusBearer--ip4-config"></a><h3>The <code class="literal">"ip4-config"</code> property</h3>
<pre class="programlisting"> "ip4-config" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Bearer.html#gdbus-property-org-freedesktop-ModemManager1-Bearer.Ip4Config">"Ip4Config"</a>.
+Represents the D-Bus property "Ip4Config".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -842,7 +842,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusBearer--ip6-config"></a><h3>The <code class="literal">"ip6-config"</code> property</h3>
<pre class="programlisting"> "ip6-config" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Bearer.html#gdbus-property-org-freedesktop-ModemManager1-Bearer.Ip6Config">"Ip6Config"</a>.
+Represents the D-Bus property "Ip6Config".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -855,7 +855,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusBearer--properties"></a><h3>The <code class="literal">"properties"</code> property</h3>
<pre class="programlisting"> "properties" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Bearer.html#gdbus-property-org-freedesktop-ModemManager1-Bearer.Properties">"Properties"</a>.
+Represents the D-Bus property "Properties".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -868,7 +868,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusBearer--suspended"></a><h3>The <code class="literal">"suspended"</code> property</h3>
<pre class="programlisting"> "suspended" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Bearer.html#gdbus-property-org-freedesktop-ModemManager1-Bearer.Suspended">"Suspended"</a>.
+Represents the D-Bus property "Suspended".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -884,7 +884,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html"><span class="type">GDBusMethodInvocation</span></a> *invocation,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Bearer.html#gdbus-method-org-freedesktop-ModemManager1-Bearer.Connect"><GTKDOCLINK HREF="Connect"><code class="function">Connect()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="Connect"><code class="function">Connect()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_bearer_complete_connect()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -922,7 +922,7 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
<a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html"><span class="type">GDBusMethodInvocation</span></a> *invocation,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Bearer.html#gdbus-method-org-freedesktop-ModemManager1-Bearer.Disconnect"><GTKDOCLINK HREF="Disconnect"><code class="function">Disconnect()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="Disconnect"><code class="function">Disconnect()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_bearer_complete_disconnect()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -957,6 +957,6 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusBearerProxy.html b/docs/reference/libmm-glib/html/MmGdbusBearerProxy.html
index dce9cf6..e14454b 100644
--- a/docs/reference/libmm-glib/html/MmGdbusBearerProxy.html
+++ b/docs/reference/libmm-glib/html/MmGdbusBearerProxy.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusBearer.html" title="MmGdbusBearer">
<link rel="next" href="MmGdbusBearerSkeleton.html" title="MmGdbusBearerSkeleton">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -408,6 +408,6 @@ See <a class="link" href="MmGdbusBearerProxy.html#mm-gdbus-bearer-proxy-new" tit
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusBearerSkeleton.html b/docs/reference/libmm-glib/html/MmGdbusBearerSkeleton.html
index 07eaa99..67d4369 100644
--- a/docs/reference/libmm-glib/html/MmGdbusBearerSkeleton.html
+++ b/docs/reference/libmm-glib/html/MmGdbusBearerSkeleton.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusBearerProxy.html" title="MmGdbusBearerProxy">
<link rel="next" href="MmGdbusSim.html" title="MmGdbusSim">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -97,6 +97,6 @@ Creates a skeleton object for the D-Bus interface org.freedesktop.ModemManager1.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusModem.html b/docs/reference/libmm-glib/html/MmGdbusModem.html
index cc42e07..26f658f 100644
--- a/docs/reference/libmm-glib/html/MmGdbusModem.html
+++ b/docs/reference/libmm-glib/html/MmGdbusModem.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusObjectSkeleton.html" title="MmGdbusObjectSkeleton">
<link rel="next" href="MmGdbusModemProxy.html" title="MmGdbusModemProxy">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -52,6 +52,8 @@ struct <a class="link" href="MmGdbusModem.html#MmGdbusModemIface" t
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-get-access-technologies" title="mm_gdbus_modem_get_access_technologies ()">mm_gdbus_modem_get_access_technologies</a>
(<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *const * <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-get-bearers" title="mm_gdbus_modem_get_bearers ()">mm_gdbus_modem_get_bearers</a> (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> ** <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-dup-bearers" title="mm_gdbus_modem_dup_bearers ()">mm_gdbus_modem_dup_bearers</a> (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-get-current-modes" title="mm_gdbus_modem_get_current_modes ()">mm_gdbus_modem_get_current_modes</a> (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-dup-current-modes" title="mm_gdbus_modem_dup_current_modes ()">mm_gdbus_modem_dup_current_modes</a> (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-get-current-bands" title="mm_gdbus_modem_get_current_bands ()">mm_gdbus_modem_get_current_bands</a> (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);
@@ -289,6 +291,7 @@ MmGdbusModem is implemented by
<a name="MmGdbusModem.properties"></a><h2>Properties</h2>
<pre class="synopsis">
"<a class="link" href="MmGdbusModem.html#MmGdbusModem--access-technologies" title='The "access-technologies" property'>access-technologies</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write
+ "<a class="link" href="MmGdbusModem.html#MmGdbusModem--bearers" title='The "bearers" property'>bearers</a>" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Boxed-Types.html#GStrv"><span class="type">GStrv</span></a> : Read / Write
"<a class="link" href="MmGdbusModem.html#MmGdbusModem--current-bands" title='The "current-bands" property'>current-bands</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write
"<a class="link" href="MmGdbusModem.html#MmGdbusModem--current-capabilities" title='The "current-capabilities" property'>current-capabilities</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write
"<a class="link" href="MmGdbusModem.html#MmGdbusModem--current-modes" title='The "current-modes" property'>current-modes</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write
@@ -414,6 +417,8 @@ Abstract interface type for the D-Bus interface org.freedesktop.ModemManager1.Mo
guint (*get_access_technologies) (MmGdbusModem *object);
+ const gchar *const * (*get_bearers) (MmGdbusModem *object);
+
GVariant * (*get_current_bands) (MmGdbusModem *object);
guint (*get_current_capabilities) (MmGdbusModem *object);
@@ -537,6 +542,10 @@ Virtual table for the D-Bus interface org.freedesktop.ModemManager1.Modem.
<td>Getter for the <a class="link" href="MmGdbusModem.html#MmGdbusModem--access-technologies" title='The "access-technologies" property'><span class="type">"access-technologies"</span></a> property.</td>
</tr>
<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="MmGdbusModemIface.get-bearers"></a>get_bearers</code></em> ()</span></p></td>
+<td>Getter for the <a class="link" href="MmGdbusModem.html#MmGdbusModem--bearers" title='The "bearers" property'><span class="type">"bearers"</span></a> property.</td>
+</tr>
+<tr>
<td><p><span class="term"><em class="structfield"><code><a name="MmGdbusModemIface.get-current-bands"></a>get_current_bands</code></em> ()</span></p></td>
<td>Getter for the <a class="link" href="MmGdbusModem.html#MmGdbusModem--current-bands" title='The "current-bands" property'><span class="type">"current-bands"</span></a> property.</td>
</tr>
@@ -657,7 +666,7 @@ Virtual table for the D-Bus interface org.freedesktop.ModemManager1.Modem.
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> mm_gdbus_modem_get_access_technologies
(<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.AccessTechnologies">"AccessTechnologies"</a> D-Bus property.
+Gets the value of the "AccessTechnologies" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -681,10 +690,72 @@ Since this D-Bus property is readable, it is meaningful to use this function on
</div>
<hr>
<div class="refsect2">
+<a name="mm-gdbus-modem-get-bearers"></a><h3>mm_gdbus_modem_get_bearers ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *const * mm_gdbus_modem_get_bearers (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
+<p>
+Gets the value of the "Bearers" D-Bus property.
+</p>
+<p>
+Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
+</p>
+<p>
+</p>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where <em class="parameter"><code>object</code></em> was constructed. Use <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-dup-bearers" title="mm_gdbus_modem_dup_bearers ()"><code class="function">mm_gdbus_modem_dup_bearers()</code></a> if on another thread.</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The property value or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the property is not set. Do not free the returned value, it belongs to <em class="parameter"><code>object</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-dup-bearers"></a><h3>mm_gdbus_modem_dup_bearers ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> ** mm_gdbus_modem_dup_bearers (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
+<p>
+Gets a copy of the "Bearers" D-Bus property.
+</p>
+<p>
+Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The property value or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the property is not set. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-String-Utility-Functions.html#g-strfreev"><code class="function">g_strfreev()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
<a name="mm-gdbus-modem-get-current-modes"></a><h3>mm_gdbus_modem_get_current_modes ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_modem_get_current_modes (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.CurrentModes">"CurrentModes"</a> D-Bus property.
+Gets the value of the "CurrentModes" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -718,7 +789,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-dup-current-modes"></a><h3>mm_gdbus_modem_dup_current_modes ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_modem_dup_current_modes (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.CurrentModes">"CurrentModes"</a> D-Bus property.
+Gets a copy of the "CurrentModes" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -746,7 +817,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-get-current-bands"></a><h3>mm_gdbus_modem_get_current_bands ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_modem_get_current_bands (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.CurrentBands">"CurrentBands"</a> D-Bus property.
+Gets the value of the "CurrentBands" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -780,7 +851,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-dup-current-bands"></a><h3>mm_gdbus_modem_dup_current_bands ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_modem_dup_current_bands (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.CurrentBands">"CurrentBands"</a> D-Bus property.
+Gets a copy of the "CurrentBands" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -809,7 +880,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> mm_gdbus_modem_get_current_capabilities
(<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.CurrentCapabilities">"CurrentCapabilities"</a> D-Bus property.
+Gets the value of the "CurrentCapabilities" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -836,7 +907,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-get-device"></a><h3>mm_gdbus_modem_get_device ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_modem_get_device (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.Device">"Device"</a> D-Bus property.
+Gets the value of the "Device" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -870,7 +941,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-dup-device"></a><h3>mm_gdbus_modem_dup_device ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_modem_dup_device (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.Device">"Device"</a> D-Bus property.
+Gets a copy of the "Device" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -899,7 +970,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_modem_get_device_identifier
(<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.DeviceIdentifier">"DeviceIdentifier"</a> D-Bus property.
+Gets the value of the "DeviceIdentifier" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -934,7 +1005,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_modem_dup_device_identifier
(<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.DeviceIdentifier">"DeviceIdentifier"</a> D-Bus property.
+Gets a copy of the "DeviceIdentifier" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -962,7 +1033,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-get-drivers"></a><h3>mm_gdbus_modem_get_drivers ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *const * mm_gdbus_modem_get_drivers (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.Drivers">"Drivers"</a> D-Bus property.
+Gets the value of the "Drivers" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -996,7 +1067,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-dup-drivers"></a><h3>mm_gdbus_modem_dup_drivers ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> ** mm_gdbus_modem_dup_drivers (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.Drivers">"Drivers"</a> D-Bus property.
+Gets a copy of the "Drivers" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -1025,7 +1096,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_modem_get_equipment_identifier
(<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.EquipmentIdentifier">"EquipmentIdentifier"</a> D-Bus property.
+Gets the value of the "EquipmentIdentifier" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -1060,7 +1131,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_modem_dup_equipment_identifier
(<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.EquipmentIdentifier">"EquipmentIdentifier"</a> D-Bus property.
+Gets a copy of the "EquipmentIdentifier" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -1088,7 +1159,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-get-manufacturer"></a><h3>mm_gdbus_modem_get_manufacturer ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_modem_get_manufacturer (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.Manufacturer">"Manufacturer"</a> D-Bus property.
+Gets the value of the "Manufacturer" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -1122,7 +1193,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-dup-manufacturer"></a><h3>mm_gdbus_modem_dup_manufacturer ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_modem_dup_manufacturer (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.Manufacturer">"Manufacturer"</a> D-Bus property.
+Gets a copy of the "Manufacturer" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -1151,7 +1222,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> mm_gdbus_modem_get_max_active_bearers
(<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.MaxActiveBearers">"MaxActiveBearers"</a> D-Bus property.
+Gets the value of the "MaxActiveBearers" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -1178,7 +1249,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-get-max-bearers"></a><h3>mm_gdbus_modem_get_max_bearers ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> mm_gdbus_modem_get_max_bearers (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.MaxBearers">"MaxBearers"</a> D-Bus property.
+Gets the value of the "MaxBearers" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -1205,7 +1276,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-get-model"></a><h3>mm_gdbus_modem_get_model ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_modem_get_model (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.Model">"Model"</a> D-Bus property.
+Gets the value of the "Model" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -1239,7 +1310,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-dup-model"></a><h3>mm_gdbus_modem_dup_model ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_modem_dup_model (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.Model">"Model"</a> D-Bus property.
+Gets a copy of the "Model" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -1267,7 +1338,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-get-own-numbers"></a><h3>mm_gdbus_modem_get_own_numbers ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *const * mm_gdbus_modem_get_own_numbers (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.OwnNumbers">"OwnNumbers"</a> D-Bus property.
+Gets the value of the "OwnNumbers" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -1301,7 +1372,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-dup-own-numbers"></a><h3>mm_gdbus_modem_dup_own_numbers ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> ** mm_gdbus_modem_dup_own_numbers (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.OwnNumbers">"OwnNumbers"</a> D-Bus property.
+Gets a copy of the "OwnNumbers" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -1329,7 +1400,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-get-plugin"></a><h3>mm_gdbus_modem_get_plugin ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_modem_get_plugin (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.Plugin">"Plugin"</a> D-Bus property.
+Gets the value of the "Plugin" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -1363,7 +1434,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-dup-plugin"></a><h3>mm_gdbus_modem_dup_plugin ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_modem_dup_plugin (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.Plugin">"Plugin"</a> D-Bus property.
+Gets a copy of the "Plugin" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -1391,7 +1462,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-get-power-state"></a><h3>mm_gdbus_modem_get_power_state ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> mm_gdbus_modem_get_power_state (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.PowerState">"PowerState"</a> D-Bus property.
+Gets the value of the "PowerState" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -1418,7 +1489,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-get-primary-port"></a><h3>mm_gdbus_modem_get_primary_port ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_modem_get_primary_port (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.PrimaryPort">"PrimaryPort"</a> D-Bus property.
+Gets the value of the "PrimaryPort" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -1452,7 +1523,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-dup-primary-port"></a><h3>mm_gdbus_modem_dup_primary_port ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_modem_dup_primary_port (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.PrimaryPort">"PrimaryPort"</a> D-Bus property.
+Gets a copy of the "PrimaryPort" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -1480,7 +1551,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-get-ports"></a><h3>mm_gdbus_modem_get_ports ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_modem_get_ports (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.Ports">"Ports"</a> D-Bus property.
+Gets the value of the "Ports" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -1514,7 +1585,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-dup-ports"></a><h3>mm_gdbus_modem_dup_ports ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_modem_dup_ports (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.Ports">"Ports"</a> D-Bus property.
+Gets a copy of the "Ports" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -1542,7 +1613,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-get-revision"></a><h3>mm_gdbus_modem_get_revision ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_modem_get_revision (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.Revision">"Revision"</a> D-Bus property.
+Gets the value of the "Revision" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -1576,7 +1647,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-dup-revision"></a><h3>mm_gdbus_modem_dup_revision ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_modem_dup_revision (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.Revision">"Revision"</a> D-Bus property.
+Gets a copy of the "Revision" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -1604,7 +1675,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-get-signal-quality"></a><h3>mm_gdbus_modem_get_signal_quality ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_modem_get_signal_quality (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.SignalQuality">"SignalQuality"</a> D-Bus property.
+Gets the value of the "SignalQuality" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -1638,7 +1709,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-dup-signal-quality"></a><h3>mm_gdbus_modem_dup_signal_quality ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_modem_dup_signal_quality (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.SignalQuality">"SignalQuality"</a> D-Bus property.
+Gets a copy of the "SignalQuality" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -1666,7 +1737,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-get-sim"></a><h3>mm_gdbus_modem_get_sim ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_modem_get_sim (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.Sim">"Sim"</a> D-Bus property.
+Gets the value of the "Sim" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -1700,7 +1771,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-dup-sim"></a><h3>mm_gdbus_modem_dup_sim ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_modem_dup_sim (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.Sim">"Sim"</a> D-Bus property.
+Gets a copy of the "Sim" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -1729,7 +1800,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_modem_get_supported_capabilities
(<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.SupportedCapabilities">"SupportedCapabilities"</a> D-Bus property.
+Gets the value of the "SupportedCapabilities" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -1764,7 +1835,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_modem_dup_supported_capabilities
(<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.SupportedCapabilities">"SupportedCapabilities"</a> D-Bus property.
+Gets a copy of the "SupportedCapabilities" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -1792,7 +1863,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-get-state"></a><h3>mm_gdbus_modem_get_state ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> mm_gdbus_modem_get_state (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.State">"State"</a> D-Bus property.
+Gets the value of the "State" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -1820,7 +1891,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> mm_gdbus_modem_get_state_failed_reason
(<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.StateFailedReason">"StateFailedReason"</a> D-Bus property.
+Gets the value of the "StateFailedReason" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -1847,7 +1918,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-get-supported-bands"></a><h3>mm_gdbus_modem_get_supported_bands ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_modem_get_supported_bands (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.SupportedBands">"SupportedBands"</a> D-Bus property.
+Gets the value of the "SupportedBands" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -1881,7 +1952,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-dup-supported-bands"></a><h3>mm_gdbus_modem_dup_supported_bands ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_modem_dup_supported_bands (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.SupportedBands">"SupportedBands"</a> D-Bus property.
+Gets a copy of the "SupportedBands" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -1910,7 +1981,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> mm_gdbus_modem_get_supported_ip_families
(<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.SupportedIpFamilies">"SupportedIpFamilies"</a> D-Bus property.
+Gets the value of the "SupportedIpFamilies" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -1937,7 +2008,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-get-supported-modes"></a><h3>mm_gdbus_modem_get_supported_modes ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_modem_get_supported_modes (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.SupportedModes">"SupportedModes"</a> D-Bus property.
+Gets the value of the "SupportedModes" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -1971,7 +2042,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-dup-supported-modes"></a><h3>mm_gdbus_modem_dup_supported_modes ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_modem_dup_supported_modes (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.SupportedModes">"SupportedModes"</a> D-Bus property.
+Gets a copy of the "SupportedModes" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -1999,7 +2070,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-get-unlock-required"></a><h3>mm_gdbus_modem_get_unlock_required ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> mm_gdbus_modem_get_unlock_required (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.UnlockRequired">"UnlockRequired"</a> D-Bus property.
+Gets the value of the "UnlockRequired" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -2026,7 +2097,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-get-unlock-retries"></a><h3>mm_gdbus_modem_get_unlock_retries ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_modem_get_unlock_retries (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.UnlockRetries">"UnlockRetries"</a> D-Bus property.
+Gets the value of the "UnlockRetries" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -2060,7 +2131,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-dup-unlock-retries"></a><h3>mm_gdbus_modem_dup_unlock_retries ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_modem_dup_unlock_retries (<em class="parameter"><code><a class="link" href="MmGdbusModem.html" title="MmGdbusModem"><span class="type">MmGdbusModem</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.UnlockRetries">"UnlockRetries"</a> D-Bus property.
+Gets a copy of the "UnlockRetries" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -2092,7 +2163,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.Enable"><GTKDOCLINK HREF="Enable"><code class="function">Enable()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="Enable"><code class="function">Enable()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-call-enable-finish" title="mm_gdbus_modem_call_enable_finish ()"><code class="function">mm_gdbus_modem_call_enable_finish()</code></a> to get the result of the operation.
</p>
@@ -2173,7 +2244,7 @@ Finishes an operation started with <a class="link" href="MmGdbusModem.html#mm-gd
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.Enable"><GTKDOCLINK HREF="Enable"><code class="function">Enable()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="Enable"><code class="function">Enable()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-call-enable" title="mm_gdbus_modem_call_enable ()"><code class="function">mm_gdbus_modem_call_enable()</code></a> for the asynchronous version of this method.
@@ -2219,7 +2290,7 @@ See <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-call-enable" title="m
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.SetPowerState"><GTKDOCLINK HREF="SetPowerState"><code class="function">SetPowerState()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="SetPowerState"><code class="function">SetPowerState()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-call-set-power-state-finish" title="mm_gdbus_modem_call_set_power_state_finish ()"><code class="function">mm_gdbus_modem_call_set_power_state_finish()</code></a> to get the result of the operation.
</p>
@@ -2302,7 +2373,7 @@ Finishes an operation started with <a class="link" href="MmGdbusModem.html#mm-gd
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.SetPowerState"><GTKDOCLINK HREF="SetPowerState"><code class="function">SetPowerState()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="SetPowerState"><code class="function">SetPowerState()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-call-set-power-state" title="mm_gdbus_modem_call_set_power_state ()"><code class="function">mm_gdbus_modem_call_set_power_state()</code></a> for the asynchronous version of this method.
@@ -2348,7 +2419,7 @@ See <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-call-set-power-state"
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.CreateBearer"><GTKDOCLINK HREF="CreateBearer"><code class="function">CreateBearer()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="CreateBearer"><code class="function">CreateBearer()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-call-create-bearer-finish" title="mm_gdbus_modem_call_create_bearer_finish ()"><code class="function">mm_gdbus_modem_call_create_bearer_finish()</code></a> to get the result of the operation.
</p>
@@ -2438,7 +2509,7 @@ Finishes an operation started with <a class="link" href="MmGdbusModem.html#mm-gd
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.CreateBearer"><GTKDOCLINK HREF="CreateBearer"><code class="function">CreateBearer()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="CreateBearer"><code class="function">CreateBearer()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-call-create-bearer" title="mm_gdbus_modem_call_create_bearer ()"><code class="function">mm_gdbus_modem_call_create_bearer()</code></a> for the asynchronous version of this method.
@@ -2489,7 +2560,7 @@ See <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-call-create-bearer" t
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.DeleteBearer"><GTKDOCLINK HREF="DeleteBearer"><code class="function">DeleteBearer()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="DeleteBearer"><code class="function">DeleteBearer()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-call-delete-bearer-finish" title="mm_gdbus_modem_call_delete_bearer_finish ()"><code class="function">mm_gdbus_modem_call_delete_bearer_finish()</code></a> to get the result of the operation.
</p>
@@ -2572,7 +2643,7 @@ Finishes an operation started with <a class="link" href="MmGdbusModem.html#mm-gd
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.DeleteBearer"><GTKDOCLINK HREF="DeleteBearer"><code class="function">DeleteBearer()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="DeleteBearer"><code class="function">DeleteBearer()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-call-delete-bearer" title="mm_gdbus_modem_call_delete_bearer ()"><code class="function">mm_gdbus_modem_call_delete_bearer()</code></a> for the asynchronous version of this method.
@@ -2617,7 +2688,7 @@ See <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-call-delete-bearer" t
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.ListBearers"><GTKDOCLINK HREF="ListBearers"><code class="function">ListBearers()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="ListBearers"><code class="function">ListBearers()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-call-list-bearers-finish" title="mm_gdbus_modem_call_list_bearers_finish ()"><code class="function">mm_gdbus_modem_call_list_bearers_finish()</code></a> to get the result of the operation.
</p>
@@ -2702,7 +2773,7 @@ Finishes an operation started with <a class="link" href="MmGdbusModem.html#mm-gd
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.ListBearers"><GTKDOCLINK HREF="ListBearers"><code class="function">ListBearers()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="ListBearers"><code class="function">ListBearers()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-call-list-bearers" title="mm_gdbus_modem_call_list_bearers ()"><code class="function">mm_gdbus_modem_call_list_bearers()</code></a> for the asynchronous version of this method.
@@ -2748,7 +2819,7 @@ See <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-call-list-bearers" ti
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.Reset"><GTKDOCLINK HREF="Reset"><code class="function">Reset()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="Reset"><code class="function">Reset()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-call-reset-finish" title="mm_gdbus_modem_call_reset_finish ()"><code class="function">mm_gdbus_modem_call_reset_finish()</code></a> to get the result of the operation.
</p>
@@ -2824,7 +2895,7 @@ Finishes an operation started with <a class="link" href="MmGdbusModem.html#mm-gd
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.Reset"><GTKDOCLINK HREF="Reset"><code class="function">Reset()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="Reset"><code class="function">Reset()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-call-reset" title="mm_gdbus_modem_call_reset ()"><code class="function">mm_gdbus_modem_call_reset()</code></a> for the asynchronous version of this method.
@@ -2866,7 +2937,7 @@ See <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-call-reset" title="mm
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.FactoryReset"><GTKDOCLINK HREF="FactoryReset"><code class="function">FactoryReset()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="FactoryReset"><code class="function">FactoryReset()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-call-factory-reset-finish" title="mm_gdbus_modem_call_factory_reset_finish ()"><code class="function">mm_gdbus_modem_call_factory_reset_finish()</code></a> to get the result of the operation.
</p>
@@ -2949,7 +3020,7 @@ Finishes an operation started with <a class="link" href="MmGdbusModem.html#mm-gd
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.FactoryReset"><GTKDOCLINK HREF="FactoryReset"><code class="function">FactoryReset()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="FactoryReset"><code class="function">FactoryReset()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-call-factory-reset" title="mm_gdbus_modem_call_factory_reset ()"><code class="function">mm_gdbus_modem_call_factory_reset()</code></a> for the asynchronous version of this method.
@@ -2996,7 +3067,7 @@ See <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-call-factory-reset" t
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.SetCurrentModes"><GTKDOCLINK HREF="SetCurrentModes"><code class="function">SetCurrentModes()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="SetCurrentModes"><code class="function">SetCurrentModes()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-call-set-current-modes-finish" title="mm_gdbus_modem_call_set_current_modes_finish ()"><code class="function">mm_gdbus_modem_call_set_current_modes_finish()</code></a> to get the result of the operation.
</p>
@@ -3079,7 +3150,7 @@ Finishes an operation started with <a class="link" href="MmGdbusModem.html#mm-gd
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.SetCurrentModes"><GTKDOCLINK HREF="SetCurrentModes"><code class="function">SetCurrentModes()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="SetCurrentModes"><code class="function">SetCurrentModes()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-call-set-current-modes" title="mm_gdbus_modem_call_set_current_modes ()"><code class="function">mm_gdbus_modem_call_set_current_modes()</code></a> for the asynchronous version of this method.
@@ -3126,7 +3197,7 @@ See <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-call-set-current-mode
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.SetCurrentBands"><GTKDOCLINK HREF="SetCurrentBands"><code class="function">SetCurrentBands()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="SetCurrentBands"><code class="function">SetCurrentBands()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-call-set-current-bands-finish" title="mm_gdbus_modem_call_set_current_bands_finish ()"><code class="function">mm_gdbus_modem_call_set_current_bands_finish()</code></a> to get the result of the operation.
</p>
@@ -3209,7 +3280,7 @@ Finishes an operation started with <a class="link" href="MmGdbusModem.html#mm-gd
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.SetCurrentBands"><GTKDOCLINK HREF="SetCurrentBands"><code class="function">SetCurrentBands()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="SetCurrentBands"><code class="function">SetCurrentBands()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-call-set-current-bands" title="mm_gdbus_modem_call_set_current_bands ()"><code class="function">mm_gdbus_modem_call_set_current_bands()</code></a> for the asynchronous version of this method.
@@ -3256,7 +3327,7 @@ See <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-call-set-current-band
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.SetCurrentCapabilities"><GTKDOCLINK HREF="SetCurrentCapabilities"><code class="function">SetCurrentCapabilities()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="SetCurrentCapabilities"><code class="function">SetCurrentCapabilities()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-call-set-current-capabilities-finish" title="mm_gdbus_modem_call_set_current_capabilities_finish ()"><code class="function">mm_gdbus_modem_call_set_current_capabilities_finish()</code></a> to get the result of the operation.
</p>
@@ -3339,7 +3410,7 @@ Finishes an operation started with <a class="link" href="MmGdbusModem.html#mm-gd
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.SetCurrentCapabilities"><GTKDOCLINK HREF="SetCurrentCapabilities"><code class="function">SetCurrentCapabilities()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="SetCurrentCapabilities"><code class="function">SetCurrentCapabilities()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-call-set-current-capabilities" title="mm_gdbus_modem_call_set_current_capabilities ()"><code class="function">mm_gdbus_modem_call_set_current_capabilities()</code></a> for the asynchronous version of this method.
@@ -3386,7 +3457,7 @@ See <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-call-set-current-capa
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.Command"><GTKDOCLINK HREF="Command"><code class="function">Command()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="Command"><code class="function">Command()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-call-command-finish" title="mm_gdbus_modem_call_command_finish ()"><code class="function">mm_gdbus_modem_call_command_finish()</code></a> to get the result of the operation.
</p>
@@ -3479,7 +3550,7 @@ Finishes an operation started with <a class="link" href="MmGdbusModem.html#mm-gd
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.Command"><GTKDOCLINK HREF="Command"><code class="function">Command()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="Command"><code class="function">Command()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-call-command" title="mm_gdbus_modem_call_command ()"><code class="function">mm_gdbus_modem_call_command()</code></a> for the asynchronous version of this method.
@@ -3532,7 +3603,7 @@ See <a class="link" href="MmGdbusModem.html#mm-gdbus-modem-call-command" title="
<a name="MmGdbusModem--access-technologies"></a><h3>The <code class="literal">"access-technologies"</code> property</h3>
<pre class="programlisting"> "access-technologies" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.AccessTechnologies">"AccessTechnologies"</a>.
+Represents the D-Bus property "AccessTechnologies".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -3541,10 +3612,21 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
</div>
<hr>
<div class="refsect2">
+<a name="MmGdbusModem--bearers"></a><h3>The <code class="literal">"bearers"</code> property</h3>
+<pre class="programlisting"> "bearers" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Boxed-Types.html#GStrv"><span class="type">GStrv</span></a> : Read / Write</pre>
+<p>
+Represents the D-Bus property "Bearers".
+</p>
+<p>
+Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
+</p>
+</div>
+<hr>
+<div class="refsect2">
<a name="MmGdbusModem--current-bands"></a><h3>The <code class="literal">"current-bands"</code> property</h3>
<pre class="programlisting"> "current-bands" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.CurrentBands">"CurrentBands"</a>.
+Represents the D-Bus property "CurrentBands".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -3557,7 +3639,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModem--current-capabilities"></a><h3>The <code class="literal">"current-capabilities"</code> property</h3>
<pre class="programlisting"> "current-capabilities" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.CurrentCapabilities">"CurrentCapabilities"</a>.
+Represents the D-Bus property "CurrentCapabilities".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -3569,7 +3651,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModem--current-modes"></a><h3>The <code class="literal">"current-modes"</code> property</h3>
<pre class="programlisting"> "current-modes" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.CurrentModes">"CurrentModes"</a>.
+Represents the D-Bus property "CurrentModes".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -3582,7 +3664,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModem--device"></a><h3>The <code class="literal">"device"</code> property</h3>
<pre class="programlisting"> "device" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.Device">"Device"</a>.
+Represents the D-Bus property "Device".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -3594,7 +3676,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModem--device-identifier"></a><h3>The <code class="literal">"device-identifier"</code> property</h3>
<pre class="programlisting"> "device-identifier" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.DeviceIdentifier">"DeviceIdentifier"</a>.
+Represents the D-Bus property "DeviceIdentifier".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -3606,7 +3688,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModem--drivers"></a><h3>The <code class="literal">"drivers"</code> property</h3>
<pre class="programlisting"> "drivers" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Boxed-Types.html#GStrv"><span class="type">GStrv</span></a> : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.Drivers">"Drivers"</a>.
+Represents the D-Bus property "Drivers".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -3617,7 +3699,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModem--equipment-identifier"></a><h3>The <code class="literal">"equipment-identifier"</code> property</h3>
<pre class="programlisting"> "equipment-identifier" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.EquipmentIdentifier">"EquipmentIdentifier"</a>.
+Represents the D-Bus property "EquipmentIdentifier".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -3629,7 +3711,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModem--manufacturer"></a><h3>The <code class="literal">"manufacturer"</code> property</h3>
<pre class="programlisting"> "manufacturer" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.Manufacturer">"Manufacturer"</a>.
+Represents the D-Bus property "Manufacturer".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -3641,7 +3723,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModem--max-active-bearers"></a><h3>The <code class="literal">"max-active-bearers"</code> property</h3>
<pre class="programlisting"> "max-active-bearers" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.MaxActiveBearers">"MaxActiveBearers"</a>.
+Represents the D-Bus property "MaxActiveBearers".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -3653,7 +3735,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModem--max-bearers"></a><h3>The <code class="literal">"max-bearers"</code> property</h3>
<pre class="programlisting"> "max-bearers" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.MaxBearers">"MaxBearers"</a>.
+Represents the D-Bus property "MaxBearers".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -3665,7 +3747,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModem--model"></a><h3>The <code class="literal">"model"</code> property</h3>
<pre class="programlisting"> "model" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.Model">"Model"</a>.
+Represents the D-Bus property "Model".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -3677,7 +3759,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModem--own-numbers"></a><h3>The <code class="literal">"own-numbers"</code> property</h3>
<pre class="programlisting"> "own-numbers" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Boxed-Types.html#GStrv"><span class="type">GStrv</span></a> : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.OwnNumbers">"OwnNumbers"</a>.
+Represents the D-Bus property "OwnNumbers".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -3688,7 +3770,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModem--plugin"></a><h3>The <code class="literal">"plugin"</code> property</h3>
<pre class="programlisting"> "plugin" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.Plugin">"Plugin"</a>.
+Represents the D-Bus property "Plugin".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -3700,7 +3782,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModem--ports"></a><h3>The <code class="literal">"ports"</code> property</h3>
<pre class="programlisting"> "ports" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.Ports">"Ports"</a>.
+Represents the D-Bus property "Ports".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -3713,7 +3795,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModem--power-state"></a><h3>The <code class="literal">"power-state"</code> property</h3>
<pre class="programlisting"> "power-state" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.PowerState">"PowerState"</a>.
+Represents the D-Bus property "PowerState".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -3725,7 +3807,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModem--primary-port"></a><h3>The <code class="literal">"primary-port"</code> property</h3>
<pre class="programlisting"> "primary-port" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.PrimaryPort">"PrimaryPort"</a>.
+Represents the D-Bus property "PrimaryPort".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -3737,7 +3819,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModem--revision"></a><h3>The <code class="literal">"revision"</code> property</h3>
<pre class="programlisting"> "revision" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.Revision">"Revision"</a>.
+Represents the D-Bus property "Revision".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -3749,7 +3831,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModem--signal-quality"></a><h3>The <code class="literal">"signal-quality"</code> property</h3>
<pre class="programlisting"> "signal-quality" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.SignalQuality">"SignalQuality"</a>.
+Represents the D-Bus property "SignalQuality".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -3762,7 +3844,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModem--sim"></a><h3>The <code class="literal">"sim"</code> property</h3>
<pre class="programlisting"> "sim" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.Sim">"Sim"</a>.
+Represents the D-Bus property "Sim".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -3774,7 +3856,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModem--state"></a><h3>The <code class="literal">"state"</code> property</h3>
<pre class="programlisting"> "state" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.State">"State"</a>.
+Represents the D-Bus property "State".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -3786,7 +3868,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModem--state-failed-reason"></a><h3>The <code class="literal">"state-failed-reason"</code> property</h3>
<pre class="programlisting"> "state-failed-reason" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.StateFailedReason">"StateFailedReason"</a>.
+Represents the D-Bus property "StateFailedReason".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -3798,7 +3880,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModem--supported-bands"></a><h3>The <code class="literal">"supported-bands"</code> property</h3>
<pre class="programlisting"> "supported-bands" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.SupportedBands">"SupportedBands"</a>.
+Represents the D-Bus property "SupportedBands".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -3811,7 +3893,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModem--supported-capabilities"></a><h3>The <code class="literal">"supported-capabilities"</code> property</h3>
<pre class="programlisting"> "supported-capabilities" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.SupportedCapabilities">"SupportedCapabilities"</a>.
+Represents the D-Bus property "SupportedCapabilities".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -3824,7 +3906,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModem--supported-ip-families"></a><h3>The <code class="literal">"supported-ip-families"</code> property</h3>
<pre class="programlisting"> "supported-ip-families" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.SupportedIpFamilies">"SupportedIpFamilies"</a>.
+Represents the D-Bus property "SupportedIpFamilies".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -3836,7 +3918,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModem--supported-modes"></a><h3>The <code class="literal">"supported-modes"</code> property</h3>
<pre class="programlisting"> "supported-modes" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.SupportedModes">"SupportedModes"</a>.
+Represents the D-Bus property "SupportedModes".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -3849,7 +3931,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModem--unlock-required"></a><h3>The <code class="literal">"unlock-required"</code> property</h3>
<pre class="programlisting"> "unlock-required" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.UnlockRequired">"UnlockRequired"</a>.
+Represents the D-Bus property "UnlockRequired".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -3861,7 +3943,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModem--unlock-retries"></a><h3>The <code class="literal">"unlock-retries"</code> property</h3>
<pre class="programlisting"> "unlock-retries" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-property-org-freedesktop-ModemManager1-Modem.UnlockRetries">"UnlockRetries"</a>.
+Represents the D-Bus property "UnlockRetries".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -3880,7 +3962,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_timeout,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.Command"><GTKDOCLINK HREF="Command"><code class="function">Command()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="Command"><code class="function">Command()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_modem_complete_command()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -3927,7 +4009,7 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *arg_properties,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.CreateBearer"><GTKDOCLINK HREF="CreateBearer"><code class="function">CreateBearer()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="CreateBearer"><code class="function">CreateBearer()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_modem_complete_create_bearer()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -3970,7 +4052,7 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *arg_bearer,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.DeleteBearer"><GTKDOCLINK HREF="DeleteBearer"><code class="function">DeleteBearer()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="DeleteBearer"><code class="function">DeleteBearer()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_modem_complete_delete_bearer()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -4013,7 +4095,7 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> arg_enable,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.Enable"><GTKDOCLINK HREF="Enable"><code class="function">Enable()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="Enable"><code class="function">Enable()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_modem_complete_enable()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -4056,7 +4138,7 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *arg_code,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.FactoryReset"><GTKDOCLINK HREF="FactoryReset"><code class="function">FactoryReset()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="FactoryReset"><code class="function">FactoryReset()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_modem_complete_factory_reset()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -4098,7 +4180,7 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
<a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html"><span class="type">GDBusMethodInvocation</span></a> *invocation,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.ListBearers"><GTKDOCLINK HREF="ListBearers"><code class="function">ListBearers()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="ListBearers"><code class="function">ListBearers()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_modem_complete_list_bearers()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -4136,7 +4218,7 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
<a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html"><span class="type">GDBusMethodInvocation</span></a> *invocation,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.Reset"><GTKDOCLINK HREF="Reset"><code class="function">Reset()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="Reset"><code class="function">Reset()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_modem_complete_reset()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -4175,7 +4257,7 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *arg_bands,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.SetCurrentBands"><GTKDOCLINK HREF="SetCurrentBands"><code class="function">SetCurrentBands()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="SetCurrentBands"><code class="function">SetCurrentBands()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_modem_complete_set_current_bands()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -4218,7 +4300,7 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_capabilities,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.SetCurrentCapabilities"><GTKDOCLINK HREF="SetCurrentCapabilities"><code class="function">SetCurrentCapabilities()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="SetCurrentCapabilities"><code class="function">SetCurrentCapabilities()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_modem_complete_set_current_capabilities()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -4261,7 +4343,7 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *arg_modes,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.SetCurrentModes"><GTKDOCLINK HREF="SetCurrentModes"><code class="function">SetCurrentModes()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="SetCurrentModes"><code class="function">SetCurrentModes()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_modem_complete_set_current_modes()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -4304,7 +4386,7 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_state,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-method-org-freedesktop-ModemManager1-Modem.SetPowerState"><GTKDOCLINK HREF="SetPowerState"><code class="function">SetPowerState()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="SetPowerState"><code class="function">SetPowerState()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_modem_complete_set_power_state()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -4348,7 +4430,7 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_reason,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-On the client-side, this signal is emitted whenever the D-Bus signal <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.html#gdbus-signal-org-freedesktop-ModemManager1-Modem.StateChanged">"StateChanged"</a> is received.
+On the client-side, this signal is emitted whenever the D-Bus signal "StateChanged" is received.
</p>
<p>
On the service-side, this signal can be used with e.g. <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#g-signal-emit-by-name"><code class="function">g_signal_emit_by_name()</code></a> to make the object emit the D-Bus signal.
@@ -4386,6 +4468,6 @@ On the service-side, this signal can be used with e.g. <a href="http://library.g
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusModem3gpp.html b/docs/reference/libmm-glib/html/MmGdbusModem3gpp.html
index 46a9e25..1336e27 100644
--- a/docs/reference/libmm-glib/html/MmGdbusModem3gpp.html
+++ b/docs/reference/libmm-glib/html/MmGdbusModem3gpp.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusModemSkeleton.html" title="MmGdbusModemSkeleton">
<link rel="next" href="MmGdbusModem3gppProxy.html" title="MmGdbusModem3gppProxy">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -64,6 +64,8 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
(<em class="parameter"><code><a class="link" href="MmGdbusModem3gpp.html" title="MmGdbusModem3gpp"><span class="type">MmGdbusModem3gpp</span></a> *object</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="MmGdbusModem3gpp.html#mm-gdbus-modem3gpp-get-enabled-facility-locks" title="mm_gdbus_modem3gpp_get_enabled_facility_locks ()">mm_gdbus_modem3gpp_get_enabled_facility_locks</a>
(<em class="parameter"><code><a class="link" href="MmGdbusModem3gpp.html" title="MmGdbusModem3gpp"><span class="type">MmGdbusModem3gpp</span></a> *object</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="MmGdbusModem3gpp.html#mm-gdbus-modem3gpp-get-subscription-state" title="mm_gdbus_modem3gpp_get_subscription_state ()">mm_gdbus_modem3gpp_get_subscription_state</a>
+ (<em class="parameter"><code><a class="link" href="MmGdbusModem3gpp.html" title="MmGdbusModem3gpp"><span class="type">MmGdbusModem3gpp</span></a> *object</code></em>);
<span class="returnvalue">void</span> <a class="link" href="MmGdbusModem3gpp.html#mm-gdbus-modem3gpp-call-register" title="mm_gdbus_modem3gpp_call_register ()">mm_gdbus_modem3gpp_call_register</a> (<em class="parameter"><code><a class="link" href="MmGdbusModem3gpp.html" title="MmGdbusModem3gpp"><span class="type">MmGdbusModem3gpp</span></a> *proxy</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *arg_operator_id</code></em>,
@@ -120,6 +122,7 @@ MmGdbusModem3gpp is implemented by
"<a class="link" href="MmGdbusModem3gpp.html#MmGdbusModem3gpp--operator-code" title='The "operator-code" property'>operator-code</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write
"<a class="link" href="MmGdbusModem3gpp.html#MmGdbusModem3gpp--operator-name" title='The "operator-name" property'>operator-name</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write
"<a class="link" href="MmGdbusModem3gpp.html#MmGdbusModem3gpp--registration-state" title='The "registration-state" property'>registration-state</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write
+ "<a class="link" href="MmGdbusModem3gpp.html#MmGdbusModem3gpp--subscription-state" title='The "subscription-state" property'>subscription-state</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write
</pre>
</div>
<div class="refsect1">
@@ -169,6 +172,8 @@ Abstract interface type for the D-Bus interface org.freedesktop.ModemManager1.Mo
const gchar * (*get_operator_name) (MmGdbusModem3gpp *object);
guint (*get_registration_state) (MmGdbusModem3gpp *object);
+
+ guint (*get_subscription_state) (MmGdbusModem3gpp *object);
};
</pre>
<p>
@@ -212,6 +217,10 @@ Virtual table for the D-Bus interface org.freedesktop.ModemManager1.Modem.Modem3
<td><p><span class="term"><em class="structfield"><code><a name="MmGdbusModem3gppIface.get-registration-state"></a>get_registration_state</code></em> ()</span></p></td>
<td>Getter for the <a class="link" href="MmGdbusModem3gpp.html#MmGdbusModem3gpp--registration-state" title='The "registration-state" property'><span class="type">"registration-state"</span></a> property.</td>
</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="MmGdbusModem3gppIface.get-subscription-state"></a>get_subscription_state</code></em> ()</span></p></td>
+<td>Getter for the <a class="link" href="MmGdbusModem3gpp.html#MmGdbusModem3gpp--subscription-state" title='The "subscription-state" property'><span class="type">"subscription-state"</span></a> property.</td>
+</tr>
</tbody>
</table></div>
</div>
@@ -221,7 +230,7 @@ Virtual table for the D-Bus interface org.freedesktop.ModemManager1.Modem.Modem3
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> mm_gdbus_modem3gpp_get_registration_state
(<em class="parameter"><code><a class="link" href="MmGdbusModem3gpp.html" title="MmGdbusModem3gpp"><span class="type">MmGdbusModem3gpp</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp.RegistrationState">"RegistrationState"</a> D-Bus property.
+Gets the value of the "RegistrationState" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -248,7 +257,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem3gpp-get-imei"></a><h3>mm_gdbus_modem3gpp_get_imei ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_modem3gpp_get_imei (<em class="parameter"><code><a class="link" href="MmGdbusModem3gpp.html" title="MmGdbusModem3gpp"><span class="type">MmGdbusModem3gpp</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp.Imei">"Imei"</a> D-Bus property.
+Gets the value of the "Imei" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -282,7 +291,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem3gpp-dup-imei"></a><h3>mm_gdbus_modem3gpp_dup_imei ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_modem3gpp_dup_imei (<em class="parameter"><code><a class="link" href="MmGdbusModem3gpp.html" title="MmGdbusModem3gpp"><span class="type">MmGdbusModem3gpp</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp.Imei">"Imei"</a> D-Bus property.
+Gets a copy of the "Imei" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -311,7 +320,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_modem3gpp_get_operator_code
(<em class="parameter"><code><a class="link" href="MmGdbusModem3gpp.html" title="MmGdbusModem3gpp"><span class="type">MmGdbusModem3gpp</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp.OperatorCode">"OperatorCode"</a> D-Bus property.
+Gets the value of the "OperatorCode" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -346,7 +355,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_modem3gpp_dup_operator_code
(<em class="parameter"><code><a class="link" href="MmGdbusModem3gpp.html" title="MmGdbusModem3gpp"><span class="type">MmGdbusModem3gpp</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp.OperatorCode">"OperatorCode"</a> D-Bus property.
+Gets a copy of the "OperatorCode" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -375,7 +384,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_modem3gpp_get_operator_name
(<em class="parameter"><code><a class="link" href="MmGdbusModem3gpp.html" title="MmGdbusModem3gpp"><span class="type">MmGdbusModem3gpp</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp.OperatorName">"OperatorName"</a> D-Bus property.
+Gets the value of the "OperatorName" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -410,7 +419,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_modem3gpp_dup_operator_name
(<em class="parameter"><code><a class="link" href="MmGdbusModem3gpp.html" title="MmGdbusModem3gpp"><span class="type">MmGdbusModem3gpp</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp.OperatorName">"OperatorName"</a> D-Bus property.
+Gets a copy of the "OperatorName" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -439,7 +448,35 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> mm_gdbus_modem3gpp_get_enabled_facility_locks
(<em class="parameter"><code><a class="link" href="MmGdbusModem3gpp.html" title="MmGdbusModem3gpp"><span class="type">MmGdbusModem3gpp</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp.EnabledFacilityLocks">"EnabledFacilityLocks"</a> D-Bus property.
+Gets the value of the "EnabledFacilityLocks" D-Bus property.
+</p>
+<p>
+Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModem3gpp.html" title="MmGdbusModem3gpp"><span class="type">MmGdbusModem3gpp</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The property value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem3gpp-get-subscription-state"></a><h3>mm_gdbus_modem3gpp_get_subscription_state ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> mm_gdbus_modem3gpp_get_subscription_state
+ (<em class="parameter"><code><a class="link" href="MmGdbusModem3gpp.html" title="MmGdbusModem3gpp"><span class="type">MmGdbusModem3gpp</span></a> *object</code></em>);</pre>
+<p>
+Gets the value of the "SubscriptionState" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -470,7 +507,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Modem3gpp.Register"><GTKDOCLINK HREF="Register"><code class="function">Register()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="Register"><code class="function">Register()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusModem3gpp.html#mm-gdbus-modem3gpp-call-register-finish" title="mm_gdbus_modem3gpp_call_register_finish ()"><code class="function">mm_gdbus_modem3gpp_call_register_finish()</code></a> to get the result of the operation.
</p>
@@ -553,7 +590,7 @@ Finishes an operation started with <a class="link" href="MmGdbusModem3gpp.html#m
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Modem3gpp.Register"><GTKDOCLINK HREF="Register"><code class="function">Register()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="Register"><code class="function">Register()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusModem3gpp.html#mm-gdbus-modem3gpp-call-register" title="mm_gdbus_modem3gpp_call_register ()"><code class="function">mm_gdbus_modem3gpp_call_register()</code></a> for the asynchronous version of this method.
@@ -598,7 +635,7 @@ See <a class="link" href="MmGdbusModem3gpp.html#mm-gdbus-modem3gpp-call-register
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Modem3gpp.Scan"><GTKDOCLINK HREF="Scan"><code class="function">Scan()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="Scan"><code class="function">Scan()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusModem3gpp.html#mm-gdbus-modem3gpp-call-scan-finish" title="mm_gdbus_modem3gpp_call_scan_finish ()"><code class="function">mm_gdbus_modem3gpp_call_scan_finish()</code></a> to get the result of the operation.
</p>
@@ -681,7 +718,7 @@ Finishes an operation started with <a class="link" href="MmGdbusModem3gpp.html#m
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Modem3gpp.Scan"><GTKDOCLINK HREF="Scan"><code class="function">Scan()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="Scan"><code class="function">Scan()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusModem3gpp.html#mm-gdbus-modem3gpp-call-scan" title="mm_gdbus_modem3gpp_call_scan ()"><code class="function">mm_gdbus_modem3gpp_call_scan()</code></a> for the asynchronous version of this method.
@@ -726,7 +763,7 @@ See <a class="link" href="MmGdbusModem3gpp.html#mm-gdbus-modem3gpp-call-scan" ti
<a name="MmGdbusModem3gpp--enabled-facility-locks"></a><h3>The <code class="literal">"enabled-facility-locks"</code> property</h3>
<pre class="programlisting"> "enabled-facility-locks" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp.EnabledFacilityLocks">"EnabledFacilityLocks"</a>.
+Represents the D-Bus property "EnabledFacilityLocks".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -738,7 +775,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModem3gpp--imei"></a><h3>The <code class="literal">"imei"</code> property</h3>
<pre class="programlisting"> "imei" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp.Imei">"Imei"</a>.
+Represents the D-Bus property "Imei".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -750,7 +787,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModem3gpp--operator-code"></a><h3>The <code class="literal">"operator-code"</code> property</h3>
<pre class="programlisting"> "operator-code" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp.OperatorCode">"OperatorCode"</a>.
+Represents the D-Bus property "OperatorCode".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -762,7 +799,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModem3gpp--operator-name"></a><h3>The <code class="literal">"operator-name"</code> property</h3>
<pre class="programlisting"> "operator-name" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp.OperatorName">"OperatorName"</a>.
+Represents the D-Bus property "OperatorName".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -774,7 +811,19 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModem3gpp--registration-state"></a><h3>The <code class="literal">"registration-state"</code> property</h3>
<pre class="programlisting"> "registration-state" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp.RegistrationState">"RegistrationState"</a>.
+Represents the D-Bus property "RegistrationState".
+</p>
+<p>
+Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
+</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="MmGdbusModem3gpp--subscription-state"></a><h3>The <code class="literal">"subscription-state"</code> property</h3>
+<pre class="programlisting"> "subscription-state" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
+<p>
+Represents the D-Bus property "SubscriptionState".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -791,7 +840,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *arg_operator_id,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Modem3gpp.Register"><GTKDOCLINK HREF="Register"><code class="function">Register()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="Register"><code class="function">Register()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_modem3gpp_complete_register()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -833,7 +882,7 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
<a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html"><span class="type">GDBusMethodInvocation</span></a> *invocation,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Modem3gpp.Scan"><GTKDOCLINK HREF="Scan"><code class="function">Scan()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="Scan"><code class="function">Scan()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_modem3gpp_complete_scan()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -868,6 +917,6 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusModem3gppProxy.html b/docs/reference/libmm-glib/html/MmGdbusModem3gppProxy.html
index 8e9f84d..1a44627 100644
--- a/docs/reference/libmm-glib/html/MmGdbusModem3gppProxy.html
+++ b/docs/reference/libmm-glib/html/MmGdbusModem3gppProxy.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusModem3gpp.html" title="MmGdbusModem3gpp">
<link rel="next" href="MmGdbusModem3gppSkeleton.html" title="MmGdbusModem3gppSkeleton">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -410,6 +410,6 @@ See <a class="link" href="MmGdbusModem3gppProxy.html#mm-gdbus-modem3gpp-proxy-ne
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusModem3gppSkeleton.html b/docs/reference/libmm-glib/html/MmGdbusModem3gppSkeleton.html
index c358eb5..03ba163 100644
--- a/docs/reference/libmm-glib/html/MmGdbusModem3gppSkeleton.html
+++ b/docs/reference/libmm-glib/html/MmGdbusModem3gppSkeleton.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusModem3gppProxy.html" title="MmGdbusModem3gppProxy">
<link rel="next" href="MmGdbusModem3gppUssd.html" title="MmGdbusModem3gppUssd">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -97,6 +97,6 @@ Creates a skeleton object for the D-Bus interface org.freedesktop.ModemManager1.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusModem3gppUssd.html b/docs/reference/libmm-glib/html/MmGdbusModem3gppUssd.html
index d7c0774..876b07a 100644
--- a/docs/reference/libmm-glib/html/MmGdbusModem3gppUssd.html
+++ b/docs/reference/libmm-glib/html/MmGdbusModem3gppUssd.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusModem3gppSkeleton.html" title="MmGdbusModem3gppSkeleton">
<link rel="next" href="MmGdbusModem3gppUssdProxy.html" title="MmGdbusModem3gppUssdProxy">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -231,7 +231,7 @@ Virtual table for the D-Bus interface org.freedesktop.ModemManager1.Modem.Modem3
<a name="mm-gdbus-modem3gpp-ussd-get-state"></a><h3>mm_gdbus_modem3gpp_ussd_get_state ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> mm_gdbus_modem3gpp_ussd_get_state (<em class="parameter"><code><a class="link" href="MmGdbusModem3gppUssd.html" title="MmGdbusModem3gppUssd"><span class="type">MmGdbusModem3gppUssd</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp-Ussd.State">"State"</a> D-Bus property.
+Gets the value of the "State" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -259,7 +259,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_modem3gpp_ussd_get_network_request
(<em class="parameter"><code><a class="link" href="MmGdbusModem3gppUssd.html" title="MmGdbusModem3gppUssd"><span class="type">MmGdbusModem3gppUssd</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp-Ussd.NetworkRequest">"NetworkRequest"</a> D-Bus property.
+Gets the value of the "NetworkRequest" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -294,7 +294,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_modem3gpp_ussd_dup_network_request
(<em class="parameter"><code><a class="link" href="MmGdbusModem3gppUssd.html" title="MmGdbusModem3gppUssd"><span class="type">MmGdbusModem3gppUssd</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp-Ussd.NetworkRequest">"NetworkRequest"</a> D-Bus property.
+Gets a copy of the "NetworkRequest" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -323,7 +323,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_modem3gpp_ussd_get_network_notification
(<em class="parameter"><code><a class="link" href="MmGdbusModem3gppUssd.html" title="MmGdbusModem3gppUssd"><span class="type">MmGdbusModem3gppUssd</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp-Ussd.NetworkNotification">"NetworkNotification"</a> D-Bus property.
+Gets the value of the "NetworkNotification" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -358,7 +358,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_modem3gpp_ussd_dup_network_notification
(<em class="parameter"><code><a class="link" href="MmGdbusModem3gppUssd.html" title="MmGdbusModem3gppUssd"><span class="type">MmGdbusModem3gppUssd</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp-Ussd.NetworkNotification">"NetworkNotification"</a> D-Bus property.
+Gets a copy of the "NetworkNotification" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -391,7 +391,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Modem3gpp-Ussd.Initiate"><GTKDOCLINK HREF="Initiate"><code class="function">Initiate()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="Initiate"><code class="function">Initiate()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusModem3gppUssd.html#mm-gdbus-modem3gpp-ussd-call-initiate-finish" title="mm_gdbus_modem3gpp_ussd_call_initiate_finish ()"><code class="function">mm_gdbus_modem3gpp_ussd_call_initiate_finish()</code></a> to get the result of the operation.
</p>
@@ -481,7 +481,7 @@ Finishes an operation started with <a class="link" href="MmGdbusModem3gppUssd.ht
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Modem3gpp-Ussd.Initiate"><GTKDOCLINK HREF="Initiate"><code class="function">Initiate()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="Initiate"><code class="function">Initiate()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusModem3gppUssd.html#mm-gdbus-modem3gpp-ussd-call-initiate" title="mm_gdbus_modem3gpp_ussd_call_initiate ()"><code class="function">mm_gdbus_modem3gpp_ussd_call_initiate()</code></a> for the asynchronous version of this method.
@@ -533,7 +533,7 @@ See <a class="link" href="MmGdbusModem3gppUssd.html#mm-gdbus-modem3gpp-ussd-call
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Modem3gpp-Ussd.Respond"><GTKDOCLINK HREF="Respond"><code class="function">Respond()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="Respond"><code class="function">Respond()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusModem3gppUssd.html#mm-gdbus-modem3gpp-ussd-call-respond-finish" title="mm_gdbus_modem3gpp_ussd_call_respond_finish ()"><code class="function">mm_gdbus_modem3gpp_ussd_call_respond_finish()</code></a> to get the result of the operation.
</p>
@@ -623,7 +623,7 @@ Finishes an operation started with <a class="link" href="MmGdbusModem3gppUssd.ht
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Modem3gpp-Ussd.Respond"><GTKDOCLINK HREF="Respond"><code class="function">Respond()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="Respond"><code class="function">Respond()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusModem3gppUssd.html#mm-gdbus-modem3gpp-ussd-call-respond" title="mm_gdbus_modem3gpp_ussd_call_respond ()"><code class="function">mm_gdbus_modem3gpp_ussd_call_respond()</code></a> for the asynchronous version of this method.
@@ -673,7 +673,7 @@ See <a class="link" href="MmGdbusModem3gppUssd.html#mm-gdbus-modem3gpp-ussd-call
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Modem3gpp-Ussd.Cancel"><GTKDOCLINK HREF="Cancel"><code class="function">Cancel()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="Cancel"><code class="function">Cancel()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusModem3gppUssd.html#mm-gdbus-modem3gpp-ussd-call-cancel-finish" title="mm_gdbus_modem3gpp_ussd_call_cancel_finish ()"><code class="function">mm_gdbus_modem3gpp_ussd_call_cancel_finish()</code></a> to get the result of the operation.
</p>
@@ -751,7 +751,7 @@ Finishes an operation started with <a class="link" href="MmGdbusModem3gppUssd.ht
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Modem3gpp-Ussd.Cancel"><GTKDOCLINK HREF="Cancel"><code class="function">Cancel()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="Cancel"><code class="function">Cancel()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusModem3gppUssd.html#mm-gdbus-modem3gpp-ussd-call-cancel" title="mm_gdbus_modem3gpp_ussd_call_cancel ()"><code class="function">mm_gdbus_modem3gpp_ussd_call_cancel()</code></a> for the asynchronous version of this method.
@@ -791,7 +791,7 @@ See <a class="link" href="MmGdbusModem3gppUssd.html#mm-gdbus-modem3gpp-ussd-call
<a name="MmGdbusModem3gppUssd--network-notification"></a><h3>The <code class="literal">"network-notification"</code> property</h3>
<pre class="programlisting"> "network-notification" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp-Ussd.NetworkNotification">"NetworkNotification"</a>.
+Represents the D-Bus property "NetworkNotification".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -803,7 +803,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModem3gppUssd--network-request"></a><h3>The <code class="literal">"network-request"</code> property</h3>
<pre class="programlisting"> "network-request" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp-Ussd.NetworkRequest">"NetworkRequest"</a>.
+Represents the D-Bus property "NetworkRequest".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -815,7 +815,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModem3gppUssd--state"></a><h3>The <code class="literal">"state"</code> property</h3>
<pre class="programlisting"> "state" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Modem3gpp-Ussd.State">"State"</a>.
+Represents the D-Bus property "State".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -831,7 +831,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html"><span class="type">GDBusMethodInvocation</span></a> *invocation,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Modem3gpp-Ussd.Cancel"><GTKDOCLINK HREF="Cancel"><code class="function">Cancel()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="Cancel"><code class="function">Cancel()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_modem3gpp_ussd_complete_cancel()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -870,7 +870,7 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *arg_command,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Modem3gpp-Ussd.Initiate"><GTKDOCLINK HREF="Initiate"><code class="function">Initiate()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="Initiate"><code class="function">Initiate()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_modem3gpp_ussd_complete_initiate()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -913,7 +913,7 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *arg_response,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Modem3gpp-Ussd.Respond"><GTKDOCLINK HREF="Respond"><code class="function">Respond()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="Respond"><code class="function">Respond()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_modem3gpp_ussd_complete_respond()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -952,6 +952,6 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusModem3gppUssdProxy.html b/docs/reference/libmm-glib/html/MmGdbusModem3gppUssdProxy.html
index dbf37f8..640218b 100644
--- a/docs/reference/libmm-glib/html/MmGdbusModem3gppUssdProxy.html
+++ b/docs/reference/libmm-glib/html/MmGdbusModem3gppUssdProxy.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusModem3gppUssd.html" title="MmGdbusModem3gppUssd">
<link rel="next" href="MmGdbusModem3gppUssdSkeleton.html" title="MmGdbusModem3gppUssdSkeleton">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -414,6 +414,6 @@ See <a class="link" href="MmGdbusModem3gppUssdProxy.html#mm-gdbus-modem3gpp-ussd
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusModem3gppUssdSkeleton.html b/docs/reference/libmm-glib/html/MmGdbusModem3gppUssdSkeleton.html
index d8551f1..3876bee 100644
--- a/docs/reference/libmm-glib/html/MmGdbusModem3gppUssdSkeleton.html
+++ b/docs/reference/libmm-glib/html/MmGdbusModem3gppUssdSkeleton.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusModem3gppUssdProxy.html" title="MmGdbusModem3gppUssdProxy">
<link rel="next" href="MmGdbusModemCdma.html" title="MmGdbusModemCdma">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -99,6 +99,6 @@ Creates a skeleton object for the D-Bus interface org.freedesktop.ModemManager1.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusModemCdma.html b/docs/reference/libmm-glib/html/MmGdbusModemCdma.html
index 86ac769..b3926ce 100644
--- a/docs/reference/libmm-glib/html/MmGdbusModemCdma.html
+++ b/docs/reference/libmm-glib/html/MmGdbusModemCdma.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusModem3gppUssdSkeleton.html" title="MmGdbusModem3gppUssdSkeleton">
<link rel="next" href="MmGdbusModemCdmaProxy.html" title="MmGdbusModemCdmaProxy">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -249,7 +249,7 @@ Virtual table for the D-Bus interface org.freedesktop.ModemManager1.Modem.ModemC
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> mm_gdbus_modem_cdma_get_cdma1x_registration_state
(<em class="parameter"><code><a class="link" href="MmGdbusModemCdma.html" title="MmGdbusModemCdma"><span class="type">MmGdbusModemCdma</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.ModemCdma.html#gdbus-property-org-freedesktop-ModemManager1-Modem-ModemCdma.Cdma1xRegistrationState">"Cdma1xRegistrationState"</a> D-Bus property.
+Gets the value of the "Cdma1xRegistrationState" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -277,7 +277,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> mm_gdbus_modem_cdma_get_evdo_registration_state
(<em class="parameter"><code><a class="link" href="MmGdbusModemCdma.html" title="MmGdbusModemCdma"><span class="type">MmGdbusModemCdma</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.ModemCdma.html#gdbus-property-org-freedesktop-ModemManager1-Modem-ModemCdma.EvdoRegistrationState">"EvdoRegistrationState"</a> D-Bus property.
+Gets the value of the "EvdoRegistrationState" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -305,7 +305,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> mm_gdbus_modem_cdma_get_activation_state
(<em class="parameter"><code><a class="link" href="MmGdbusModemCdma.html" title="MmGdbusModemCdma"><span class="type">MmGdbusModemCdma</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.ModemCdma.html#gdbus-property-org-freedesktop-ModemManager1-Modem-ModemCdma.ActivationState">"ActivationState"</a> D-Bus property.
+Gets the value of the "ActivationState" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -332,7 +332,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-cdma-get-esn"></a><h3>mm_gdbus_modem_cdma_get_esn ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_modem_cdma_get_esn (<em class="parameter"><code><a class="link" href="MmGdbusModemCdma.html" title="MmGdbusModemCdma"><span class="type">MmGdbusModemCdma</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.ModemCdma.html#gdbus-property-org-freedesktop-ModemManager1-Modem-ModemCdma.Esn">"Esn"</a> D-Bus property.
+Gets the value of the "Esn" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -366,7 +366,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-cdma-dup-esn"></a><h3>mm_gdbus_modem_cdma_dup_esn ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_modem_cdma_dup_esn (<em class="parameter"><code><a class="link" href="MmGdbusModemCdma.html" title="MmGdbusModemCdma"><span class="type">MmGdbusModemCdma</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.ModemCdma.html#gdbus-property-org-freedesktop-ModemManager1-Modem-ModemCdma.Esn">"Esn"</a> D-Bus property.
+Gets a copy of the "Esn" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -394,7 +394,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-cdma-get-meid"></a><h3>mm_gdbus_modem_cdma_get_meid ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_modem_cdma_get_meid (<em class="parameter"><code><a class="link" href="MmGdbusModemCdma.html" title="MmGdbusModemCdma"><span class="type">MmGdbusModemCdma</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.ModemCdma.html#gdbus-property-org-freedesktop-ModemManager1-Modem-ModemCdma.Meid">"Meid"</a> D-Bus property.
+Gets the value of the "Meid" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -428,7 +428,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-cdma-dup-meid"></a><h3>mm_gdbus_modem_cdma_dup_meid ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_modem_cdma_dup_meid (<em class="parameter"><code><a class="link" href="MmGdbusModemCdma.html" title="MmGdbusModemCdma"><span class="type">MmGdbusModemCdma</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.ModemCdma.html#gdbus-property-org-freedesktop-ModemManager1-Modem-ModemCdma.Meid">"Meid"</a> D-Bus property.
+Gets a copy of the "Meid" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -456,7 +456,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-cdma-get-nid"></a><h3>mm_gdbus_modem_cdma_get_nid ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> mm_gdbus_modem_cdma_get_nid (<em class="parameter"><code><a class="link" href="MmGdbusModemCdma.html" title="MmGdbusModemCdma"><span class="type">MmGdbusModemCdma</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.ModemCdma.html#gdbus-property-org-freedesktop-ModemManager1-Modem-ModemCdma.Nid">"Nid"</a> D-Bus property.
+Gets the value of the "Nid" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -483,7 +483,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-modem-cdma-get-sid"></a><h3>mm_gdbus_modem_cdma_get_sid ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> mm_gdbus_modem_cdma_get_sid (<em class="parameter"><code><a class="link" href="MmGdbusModemCdma.html" title="MmGdbusModemCdma"><span class="type">MmGdbusModemCdma</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.ModemCdma.html#gdbus-property-org-freedesktop-ModemManager1-Modem-ModemCdma.Sid">"Sid"</a> D-Bus property.
+Gets the value of the "Sid" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -514,7 +514,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.ModemCdma.html#gdbus-method-org-freedesktop-ModemManager1-Modem-ModemCdma.Activate"><GTKDOCLINK HREF="Activate"><code class="function">Activate()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="Activate"><code class="function">Activate()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusModemCdma.html#mm-gdbus-modem-cdma-call-activate-finish" title="mm_gdbus_modem_cdma_call_activate_finish ()"><code class="function">mm_gdbus_modem_cdma_call_activate_finish()</code></a> to get the result of the operation.
</p>
@@ -597,7 +597,7 @@ Finishes an operation started with <a class="link" href="MmGdbusModemCdma.html#m
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.ModemCdma.html#gdbus-method-org-freedesktop-ModemManager1-Modem-ModemCdma.Activate"><GTKDOCLINK HREF="Activate"><code class="function">Activate()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="Activate"><code class="function">Activate()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusModemCdma.html#mm-gdbus-modem-cdma-call-activate" title="mm_gdbus_modem_cdma_call_activate ()"><code class="function">mm_gdbus_modem_cdma_call_activate()</code></a> for the asynchronous version of this method.
@@ -644,7 +644,7 @@ See <a class="link" href="MmGdbusModemCdma.html#mm-gdbus-modem-cdma-call-activat
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.ModemCdma.html#gdbus-method-org-freedesktop-ModemManager1-Modem-ModemCdma.ActivateManual"><GTKDOCLINK HREF="ActivateManual"><code class="function">ActivateManual()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="ActivateManual"><code class="function">ActivateManual()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusModemCdma.html#mm-gdbus-modem-cdma-call-activate-manual-finish" title="mm_gdbus_modem_cdma_call_activate_manual_finish ()"><code class="function">mm_gdbus_modem_cdma_call_activate_manual_finish()</code></a> to get the result of the operation.
</p>
@@ -727,7 +727,7 @@ Finishes an operation started with <a class="link" href="MmGdbusModemCdma.html#m
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.ModemCdma.html#gdbus-method-org-freedesktop-ModemManager1-Modem-ModemCdma.ActivateManual"><GTKDOCLINK HREF="ActivateManual"><code class="function">ActivateManual()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="ActivateManual"><code class="function">ActivateManual()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusModemCdma.html#mm-gdbus-modem-cdma-call-activate-manual" title="mm_gdbus_modem_cdma_call_activate_manual ()"><code class="function">mm_gdbus_modem_cdma_call_activate_manual()</code></a> for the asynchronous version of this method.
@@ -771,7 +771,7 @@ See <a class="link" href="MmGdbusModemCdma.html#mm-gdbus-modem-cdma-call-activat
<a name="MmGdbusModemCdma--activation-state"></a><h3>The <code class="literal">"activation-state"</code> property</h3>
<pre class="programlisting"> "activation-state" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.ModemCdma.html#gdbus-property-org-freedesktop-ModemManager1-Modem-ModemCdma.ActivationState">"ActivationState"</a>.
+Represents the D-Bus property "ActivationState".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -783,7 +783,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModemCdma--cdma1x-registration-state"></a><h3>The <code class="literal">"cdma1x-registration-state"</code> property</h3>
<pre class="programlisting"> "cdma1x-registration-state" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.ModemCdma.html#gdbus-property-org-freedesktop-ModemManager1-Modem-ModemCdma.Cdma1xRegistrationState">"Cdma1xRegistrationState"</a>.
+Represents the D-Bus property "Cdma1xRegistrationState".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -795,7 +795,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModemCdma--esn"></a><h3>The <code class="literal">"esn"</code> property</h3>
<pre class="programlisting"> "esn" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.ModemCdma.html#gdbus-property-org-freedesktop-ModemManager1-Modem-ModemCdma.Esn">"Esn"</a>.
+Represents the D-Bus property "Esn".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -807,7 +807,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModemCdma--evdo-registration-state"></a><h3>The <code class="literal">"evdo-registration-state"</code> property</h3>
<pre class="programlisting"> "evdo-registration-state" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.ModemCdma.html#gdbus-property-org-freedesktop-ModemManager1-Modem-ModemCdma.EvdoRegistrationState">"EvdoRegistrationState"</a>.
+Represents the D-Bus property "EvdoRegistrationState".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -819,7 +819,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModemCdma--meid"></a><h3>The <code class="literal">"meid"</code> property</h3>
<pre class="programlisting"> "meid" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.ModemCdma.html#gdbus-property-org-freedesktop-ModemManager1-Modem-ModemCdma.Meid">"Meid"</a>.
+Represents the D-Bus property "Meid".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -831,7 +831,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModemCdma--nid"></a><h3>The <code class="literal">"nid"</code> property</h3>
<pre class="programlisting"> "nid" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.ModemCdma.html#gdbus-property-org-freedesktop-ModemManager1-Modem-ModemCdma.Nid">"Nid"</a>.
+Represents the D-Bus property "Nid".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -843,7 +843,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModemCdma--sid"></a><h3>The <code class="literal">"sid"</code> property</h3>
<pre class="programlisting"> "sid" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.ModemCdma.html#gdbus-property-org-freedesktop-ModemManager1-Modem-ModemCdma.Sid">"Sid"</a>.
+Represents the D-Bus property "Sid".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -861,7 +861,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *arg_status_changes,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-On the client-side, this signal is emitted whenever the D-Bus signal <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.ModemCdma.html#gdbus-signal-org-freedesktop-ModemManager1-Modem-ModemCdma.ActivationStateChanged">"ActivationStateChanged"</a> is received.
+On the client-side, this signal is emitted whenever the D-Bus signal "ActivationStateChanged" is received.
</p>
<p>
On the service-side, this signal can be used with e.g. <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#g-signal-emit-by-name"><code class="function">g_signal_emit_by_name()</code></a> to make the object emit the D-Bus signal.
@@ -903,7 +903,7 @@ On the service-side, this signal can be used with e.g. <a href="http://library.g
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *arg_carrier_code,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.ModemCdma.html#gdbus-method-org-freedesktop-ModemManager1-Modem-ModemCdma.Activate"><GTKDOCLINK HREF="Activate"><code class="function">Activate()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="Activate"><code class="function">Activate()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_modem_cdma_complete_activate()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -946,7 +946,7 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *arg_properties,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.ModemCdma.html#gdbus-method-org-freedesktop-ModemManager1-Modem-ModemCdma.ActivateManual"><GTKDOCLINK HREF="ActivateManual"><code class="function">ActivateManual()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="ActivateManual"><code class="function">ActivateManual()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_modem_cdma_complete_activate_manual()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -985,6 +985,6 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusModemCdmaProxy.html b/docs/reference/libmm-glib/html/MmGdbusModemCdmaProxy.html
index 16c6e19..052f44d 100644
--- a/docs/reference/libmm-glib/html/MmGdbusModemCdmaProxy.html
+++ b/docs/reference/libmm-glib/html/MmGdbusModemCdmaProxy.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusModemCdma.html" title="MmGdbusModemCdma">
<link rel="next" href="MmGdbusModemCdmaSkeleton.html" title="MmGdbusModemCdmaSkeleton">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -412,6 +412,6 @@ See <a class="link" href="MmGdbusModemCdmaProxy.html#mm-gdbus-modem-cdma-proxy-n
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusModemCdmaSkeleton.html b/docs/reference/libmm-glib/html/MmGdbusModemCdmaSkeleton.html
index a9f1e55..5355549 100644
--- a/docs/reference/libmm-glib/html/MmGdbusModemCdmaSkeleton.html
+++ b/docs/reference/libmm-glib/html/MmGdbusModemCdmaSkeleton.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusModemCdmaProxy.html" title="MmGdbusModemCdmaProxy">
<link rel="next" href="MmGdbusModemLocation.html" title="MmGdbusModemLocation">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -97,6 +97,6 @@ Creates a skeleton object for the D-Bus interface org.freedesktop.ModemManager1.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusModemFirmware.html b/docs/reference/libmm-glib/html/MmGdbusModemFirmware.html
index 16bbd88..845b691 100644
--- a/docs/reference/libmm-glib/html/MmGdbusModemFirmware.html
+++ b/docs/reference/libmm-glib/html/MmGdbusModemFirmware.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusModemTimeSkeleton.html" title="MmGdbusModemTimeSkeleton">
<link rel="next" href="MmGdbusModemFirmwareProxy.html" title="MmGdbusModemFirmwareProxy">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -170,7 +170,7 @@ Virtual table for the D-Bus interface org.freedesktop.ModemManager1.Modem.Firmwa
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Firmware.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Firmware.List"><GTKDOCLINK HREF="List"><code class="function">List()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="List"><code class="function">List()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusModemFirmware.html#mm-gdbus-modem-firmware-call-list-finish" title="mm_gdbus_modem_firmware_call_list_finish ()"><code class="function">mm_gdbus_modem_firmware_call_list_finish()</code></a> to get the result of the operation.
</p>
@@ -262,7 +262,7 @@ Finishes an operation started with <a class="link" href="MmGdbusModemFirmware.ht
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Firmware.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Firmware.List"><GTKDOCLINK HREF="List"><code class="function">List()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="List"><code class="function">List()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusModemFirmware.html#mm-gdbus-modem-firmware-call-list" title="mm_gdbus_modem_firmware_call_list ()"><code class="function">mm_gdbus_modem_firmware_call_list()</code></a> for the asynchronous version of this method.
@@ -314,7 +314,7 @@ See <a class="link" href="MmGdbusModemFirmware.html#mm-gdbus-modem-firmware-call
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Firmware.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Firmware.Select"><GTKDOCLINK HREF="Select"><code class="function">Select()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="Select"><code class="function">Select()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusModemFirmware.html#mm-gdbus-modem-firmware-call-select-finish" title="mm_gdbus_modem_firmware_call_select_finish ()"><code class="function">mm_gdbus_modem_firmware_call_select_finish()</code></a> to get the result of the operation.
</p>
@@ -397,7 +397,7 @@ Finishes an operation started with <a class="link" href="MmGdbusModemFirmware.ht
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Firmware.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Firmware.Select"><GTKDOCLINK HREF="Select"><code class="function">Select()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="Select"><code class="function">Select()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusModemFirmware.html#mm-gdbus-modem-firmware-call-select" title="mm_gdbus_modem_firmware_call_select ()"><code class="function">mm_gdbus_modem_firmware_call_select()</code></a> for the asynchronous version of this method.
@@ -443,7 +443,7 @@ See <a class="link" href="MmGdbusModemFirmware.html#mm-gdbus-modem-firmware-call
<a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html"><span class="type">GDBusMethodInvocation</span></a> *invocation,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Firmware.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Firmware.List"><GTKDOCLINK HREF="List"><code class="function">List()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="List"><code class="function">List()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_modem_firmware_complete_list()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -482,7 +482,7 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *arg_uniqueid,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Firmware.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Firmware.Select"><GTKDOCLINK HREF="Select"><code class="function">Select()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="Select"><code class="function">Select()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_modem_firmware_complete_select()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -521,6 +521,6 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusModemFirmwareProxy.html b/docs/reference/libmm-glib/html/MmGdbusModemFirmwareProxy.html
index 96b4784..4d44730 100644
--- a/docs/reference/libmm-glib/html/MmGdbusModemFirmwareProxy.html
+++ b/docs/reference/libmm-glib/html/MmGdbusModemFirmwareProxy.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusModemFirmware.html" title="MmGdbusModemFirmware">
<link rel="next" href="MmGdbusModemFirmwareSkeleton.html" title="MmGdbusModemFirmwareSkeleton">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -414,6 +414,6 @@ See <a class="link" href="MmGdbusModemFirmwareProxy.html#mm-gdbus-modem-firmware
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusModemFirmwareSkeleton.html b/docs/reference/libmm-glib/html/MmGdbusModemFirmwareSkeleton.html
index 5e6f18c..78de3a5 100644
--- a/docs/reference/libmm-glib/html/MmGdbusModemFirmwareSkeleton.html
+++ b/docs/reference/libmm-glib/html/MmGdbusModemFirmwareSkeleton.html
@@ -7,8 +7,8 @@
<link rel="home" href="index.html" title="libmm-glib Reference Manual">
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusModemFirmwareProxy.html" title="MmGdbusModemFirmwareProxy">
-<link rel="next" href="MmGdbusModemSimple.html" title="MmGdbusModemSimple">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<link rel="next" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -18,7 +18,7 @@
<td><a accesskey="u" href="pt02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">libmm-glib Reference Manual</th>
-<td><a accesskey="n" href="MmGdbusModemSimple.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="MmGdbusModemSignal.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#MmGdbusModemFirmwareSkeleton.synopsis" class="shortcut">Top</a>
@@ -99,6 +99,6 @@ Creates a skeleton object for the D-Bus interface org.freedesktop.ModemManager1.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusModemLocation.html b/docs/reference/libmm-glib/html/MmGdbusModemLocation.html
index 4cfeaa8..b9b36e7 100644
--- a/docs/reference/libmm-glib/html/MmGdbusModemLocation.html
+++ b/docs/reference/libmm-glib/html/MmGdbusModemLocation.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusModemCdmaSkeleton.html" title="MmGdbusModemCdmaSkeleton">
<link rel="next" href="MmGdbusModemLocationProxy.html" title="MmGdbusModemLocationProxy">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -214,7 +214,7 @@ Virtual table for the D-Bus interface org.freedesktop.ModemManager1.Modem.Locati
<a name="mm-gdbus-modem-location-get-enabled"></a><h3>mm_gdbus_modem_location_get_enabled ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> mm_gdbus_modem_location_get_enabled (<em class="parameter"><code><a class="link" href="MmGdbusModemLocation.html" title="MmGdbusModemLocation"><span class="type">MmGdbusModemLocation</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Location.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Location.Enabled">"Enabled"</a> D-Bus property.
+Gets the value of the "Enabled" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -242,7 +242,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> mm_gdbus_modem_location_get_capabilities
(<em class="parameter"><code><a class="link" href="MmGdbusModemLocation.html" title="MmGdbusModemLocation"><span class="type">MmGdbusModemLocation</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Location.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Location.Capabilities">"Capabilities"</a> D-Bus property.
+Gets the value of the "Capabilities" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -270,7 +270,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_gdbus_modem_location_get_signals_location
(<em class="parameter"><code><a class="link" href="MmGdbusModemLocation.html" title="MmGdbusModemLocation"><span class="type">MmGdbusModemLocation</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Location.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Location.SignalsLocation">"SignalsLocation"</a> D-Bus property.
+Gets the value of the "SignalsLocation" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -298,7 +298,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_modem_location_get_location
(<em class="parameter"><code><a class="link" href="MmGdbusModemLocation.html" title="MmGdbusModemLocation"><span class="type">MmGdbusModemLocation</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Location.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Location.Location">"Location"</a> D-Bus property.
+Gets the value of the "Location" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -333,7 +333,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_modem_location_dup_location
(<em class="parameter"><code><a class="link" href="MmGdbusModemLocation.html" title="MmGdbusModemLocation"><span class="type">MmGdbusModemLocation</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Location.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Location.Location">"Location"</a> D-Bus property.
+Gets a copy of the "Location" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -365,7 +365,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Location.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Location.GetLocation"><GTKDOCLINK HREF="GetLocation"><code class="function">GetLocation()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="GetLocation"><code class="function">GetLocation()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusModemLocation.html#mm-gdbus-modem-location-call-get-location-finish" title="mm_gdbus_modem_location_call_get_location_finish ()"><code class="function">mm_gdbus_modem_location_call_get_location_finish()</code></a> to get the result of the operation.
</p>
@@ -450,7 +450,7 @@ Finishes an operation started with <a class="link" href="MmGdbusModemLocation.ht
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Location.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Location.GetLocation"><GTKDOCLINK HREF="GetLocation"><code class="function">GetLocation()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="GetLocation"><code class="function">GetLocation()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusModemLocation.html#mm-gdbus-modem-location-call-get-location" title="mm_gdbus_modem_location_call_get_location ()"><code class="function">mm_gdbus_modem_location_call_get_location()</code></a> for the asynchronous version of this method.
@@ -498,7 +498,7 @@ See <a class="link" href="MmGdbusModemLocation.html#mm-gdbus-modem-location-call
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Location.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Location.Setup"><GTKDOCLINK HREF="Setup"><code class="function">Setup()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="Setup"><code class="function">Setup()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusModemLocation.html#mm-gdbus-modem-location-call-setup-finish" title="mm_gdbus_modem_location_call_setup_finish ()"><code class="function">mm_gdbus_modem_location_call_setup_finish()</code></a> to get the result of the operation.
</p>
@@ -586,7 +586,7 @@ Finishes an operation started with <a class="link" href="MmGdbusModemLocation.ht
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Location.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Location.Setup"><GTKDOCLINK HREF="Setup"><code class="function">Setup()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="Setup"><code class="function">Setup()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusModemLocation.html#mm-gdbus-modem-location-call-setup" title="mm_gdbus_modem_location_call_setup ()"><code class="function">mm_gdbus_modem_location_call_setup()</code></a> for the asynchronous version of this method.
@@ -634,7 +634,7 @@ See <a class="link" href="MmGdbusModemLocation.html#mm-gdbus-modem-location-call
<a name="MmGdbusModemLocation--capabilities"></a><h3>The <code class="literal">"capabilities"</code> property</h3>
<pre class="programlisting"> "capabilities" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Location.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Location.Capabilities">"Capabilities"</a>.
+Represents the D-Bus property "Capabilities".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -646,7 +646,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModemLocation--enabled"></a><h3>The <code class="literal">"enabled"</code> property</h3>
<pre class="programlisting"> "enabled" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Location.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Location.Enabled">"Enabled"</a>.
+Represents the D-Bus property "Enabled".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -658,7 +658,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModemLocation--location"></a><h3>The <code class="literal">"location"</code> property</h3>
<pre class="programlisting"> "location" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Location.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Location.Location">"Location"</a>.
+Represents the D-Bus property "Location".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -671,7 +671,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusModemLocation--signals-location"></a><h3>The <code class="literal">"signals-location"</code> property</h3>
<pre class="programlisting"> "signals-location" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Location.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Location.SignalsLocation">"SignalsLocation"</a>.
+Represents the D-Bus property "SignalsLocation".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -687,7 +687,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html"><span class="type">GDBusMethodInvocation</span></a> *invocation,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Location.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Location.GetLocation"><GTKDOCLINK HREF="GetLocation"><code class="function">GetLocation()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="GetLocation"><code class="function">GetLocation()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_modem_location_complete_get_location()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -727,7 +727,7 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> arg_signal_location,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Location.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Location.Setup"><GTKDOCLINK HREF="Setup"><code class="function">Setup()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="Setup"><code class="function">Setup()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_modem_location_complete_setup()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -770,6 +770,6 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusModemLocationProxy.html b/docs/reference/libmm-glib/html/MmGdbusModemLocationProxy.html
index d67ef31..03a11dd 100644
--- a/docs/reference/libmm-glib/html/MmGdbusModemLocationProxy.html
+++ b/docs/reference/libmm-glib/html/MmGdbusModemLocationProxy.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusModemLocation.html" title="MmGdbusModemLocation">
<link rel="next" href="MmGdbusModemLocationSkeleton.html" title="MmGdbusModemLocationSkeleton">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -414,6 +414,6 @@ See <a class="link" href="MmGdbusModemLocationProxy.html#mm-gdbus-modem-location
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusModemLocationSkeleton.html b/docs/reference/libmm-glib/html/MmGdbusModemLocationSkeleton.html
index dae8b57..81e196b 100644
--- a/docs/reference/libmm-glib/html/MmGdbusModemLocationSkeleton.html
+++ b/docs/reference/libmm-glib/html/MmGdbusModemLocationSkeleton.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusModemLocationProxy.html" title="MmGdbusModemLocationProxy">
<link rel="next" href="MmGdbusModemMessaging.html" title="MmGdbusModemMessaging">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -99,6 +99,6 @@ Creates a skeleton object for the D-Bus interface org.freedesktop.ModemManager1.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusModemMessaging.html b/docs/reference/libmm-glib/html/MmGdbusModemMessaging.html
index 2cb30c4..e67d75f 100644
--- a/docs/reference/libmm-glib/html/MmGdbusModemMessaging.html
+++ b/docs/reference/libmm-glib/html/MmGdbusModemMessaging.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusModemLocationSkeleton.html" title="MmGdbusModemLocationSkeleton">
<link rel="next" href="MmGdbusModemMessagingProxy.html" title="MmGdbusModemMessagingProxy">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -50,6 +50,10 @@
<pre class="synopsis"> <a class="link" href="MmGdbusModemMessaging.html#MmGdbusModemMessaging-struct" title="MmGdbusModemMessaging">MmGdbusModemMessaging</a>;
struct <a class="link" href="MmGdbusModemMessaging.html#MmGdbusModemMessagingIface" title="struct MmGdbusModemMessagingIface">MmGdbusModemMessagingIface</a>;
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *const * <a class="link" href="MmGdbusModemMessaging.html#mm-gdbus-modem-messaging-get-messages" title="mm_gdbus_modem_messaging_get_messages ()">mm_gdbus_modem_messaging_get_messages</a>
+ (<em class="parameter"><code><a class="link" href="MmGdbusModemMessaging.html" title="MmGdbusModemMessaging"><span class="type">MmGdbusModemMessaging</span></a> *object</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> ** <a class="link" href="MmGdbusModemMessaging.html#mm-gdbus-modem-messaging-dup-messages" title="mm_gdbus_modem_messaging_dup_messages ()">mm_gdbus_modem_messaging_dup_messages</a>
+ (<em class="parameter"><code><a class="link" href="MmGdbusModemMessaging.html" title="MmGdbusModemMessaging"><span class="type">MmGdbusModemMessaging</span></a> *object</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * <a class="link" href="MmGdbusModemMessaging.html#mm-gdbus-modem-messaging-get-supported-storages" title="mm_gdbus_modem_messaging_get_supported_storages ()">mm_gdbus_modem_messaging_get_supported_storages</a>
(<em class="parameter"><code><a class="link" href="MmGdbusModemMessaging.html" title="MmGdbusModemMessaging"><span class="type">MmGdbusModemMessaging</span></a> *object</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * <a class="link" href="MmGdbusModemMessaging.html#mm-gdbus-modem-messaging-dup-supported-storages" title="mm_gdbus_modem_messaging_dup_supported_storages ()">mm_gdbus_modem_messaging_dup_supported_storages</a>
@@ -128,6 +132,7 @@ MmGdbusModemMessaging is implemented by
<a name="MmGdbusModemMessaging.properties"></a><h2>Properties</h2>
<pre class="synopsis">
"<a class="link" href="MmGdbusModemMessaging.html#MmGdbusModemMessaging--default-storage" title='The "default-storage" property'>default-storage</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write
+ "<a class="link" href="MmGdbusModemMessaging.html#MmGdbusModemMessaging--messages" title='The "messages" property'>messages</a>" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Boxed-Types.html#GStrv"><span class="type">GStrv</span></a> : Read / Write
"<a class="link" href="MmGdbusModemMessaging.html#MmGdbusModemMessaging--supported-storages" title='The "supported-storages" property'>supported-storages</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write
</pre>
</div>
@@ -180,6 +185,8 @@ Abstract interface type for the D-Bus interface org.freedesktop.ModemManager1.Mo
guint (*get_default_storage) (MmGdbusModemMessaging *object);
+ const gchar *const * (*get_messages) (MmGdbusModemMessaging *object);
+
GVariant * (*get_supported_storages) (MmGdbusModemMessaging *object);
void (*added) (
@@ -222,6 +229,10 @@ Virtual table for the D-Bus interface org.freedesktop.ModemManager1.Modem.Messag
<td>Getter for the <a class="link" href="MmGdbusModemMessaging.html#MmGdbusModemMessaging--default-storage" title='The "default-storage" property'><span class="type">"default-storage"</span></a> property.</td>
</tr>
<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="MmGdbusModemMessagingIface.get-messages"></a>get_messages</code></em> ()</span></p></td>
+<td>Getter for the <a class="link" href="MmGdbusModemMessaging.html#MmGdbusModemMessaging--messages" title='The "messages" property'><span class="type">"messages"</span></a> property.</td>
+</tr>
+<tr>
<td><p><span class="term"><em class="structfield"><code><a name="MmGdbusModemMessagingIface.get-supported-storages"></a>get_supported_storages</code></em> ()</span></p></td>
<td>Getter for the <a class="link" href="MmGdbusModemMessaging.html#MmGdbusModemMessaging--supported-storages" title='The "supported-storages" property'><span class="type">"supported-storages"</span></a> property.</td>
</tr>
@@ -238,11 +249,75 @@ Virtual table for the D-Bus interface org.freedesktop.ModemManager1.Modem.Messag
</div>
<hr>
<div class="refsect2">
+<a name="mm-gdbus-modem-messaging-get-messages"></a><h3>mm_gdbus_modem_messaging_get_messages ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *const * mm_gdbus_modem_messaging_get_messages
+ (<em class="parameter"><code><a class="link" href="MmGdbusModemMessaging.html" title="MmGdbusModemMessaging"><span class="type">MmGdbusModemMessaging</span></a> *object</code></em>);</pre>
+<p>
+Gets the value of the "Messages" D-Bus property.
+</p>
+<p>
+Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
+</p>
+<p>
+</p>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where <em class="parameter"><code>object</code></em> was constructed. Use <a class="link" href="MmGdbusModemMessaging.html#mm-gdbus-modem-messaging-dup-messages" title="mm_gdbus_modem_messaging_dup_messages ()"><code class="function">mm_gdbus_modem_messaging_dup_messages()</code></a> if on another thread.</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemMessaging.html" title="MmGdbusModemMessaging"><span class="type">MmGdbusModemMessaging</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The property value or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the property is not set. Do not free the returned value, it belongs to <em class="parameter"><code>object</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-messaging-dup-messages"></a><h3>mm_gdbus_modem_messaging_dup_messages ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> ** mm_gdbus_modem_messaging_dup_messages
+ (<em class="parameter"><code><a class="link" href="MmGdbusModemMessaging.html" title="MmGdbusModemMessaging"><span class="type">MmGdbusModemMessaging</span></a> *object</code></em>);</pre>
+<p>
+Gets a copy of the "Messages" D-Bus property.
+</p>
+<p>
+Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemMessaging.html" title="MmGdbusModemMessaging"><span class="type">MmGdbusModemMessaging</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The property value or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the property is not set. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-String-Utility-Functions.html#g-strfreev"><code class="function">g_strfreev()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
<a name="mm-gdbus-modem-messaging-get-supported-storages"></a><h3>mm_gdbus_modem_messaging_get_supported_storages ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_modem_messaging_get_supported_storages
(<em class="parameter"><code><a class="link" href="MmGdbusModemMessaging.html" title="MmGdbusModemMessaging"><span class="type">MmGdbusModemMessaging</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Messaging.SupportedStorages">"SupportedStorages"</a> D-Bus property.
+Gets the value of the "SupportedStorages" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -277,7 +352,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_modem_messaging_dup_supported_storages
(<em class="parameter"><code><a class="link" href="MmGdbusModemMessaging.html" title="MmGdbusModemMessaging"><span class="type">MmGdbusModemMessaging</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Messaging.SupportedStorages">"SupportedStorages"</a> D-Bus property.
+Gets a copy of the "SupportedStorages" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -306,7 +381,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> mm_gdbus_modem_messaging_get_default_storage
(<em class="parameter"><code><a class="link" href="MmGdbusModemMessaging.html" title="MmGdbusModemMessaging"><span class="type">MmGdbusModemMessaging</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Messaging.DefaultStorage">"DefaultStorage"</a> D-Bus property.
+Gets the value of the "DefaultStorage" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -338,7 +413,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Messaging.Create"><GTKDOCLINK HREF="Create"><code class="function">Create()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="Create"><code class="function">Create()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusModemMessaging.html#mm-gdbus-modem-messaging-call-create-finish" title="mm_gdbus_modem_messaging_call_create_finish ()"><code class="function">mm_gdbus_modem_messaging_call_create_finish()</code></a> to get the result of the operation.
</p>
@@ -428,7 +503,7 @@ Finishes an operation started with <a class="link" href="MmGdbusModemMessaging.h
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Messaging.Create"><GTKDOCLINK HREF="Create"><code class="function">Create()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="Create"><code class="function">Create()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusModemMessaging.html#mm-gdbus-modem-messaging-call-create" title="mm_gdbus_modem_messaging_call_create ()"><code class="function">mm_gdbus_modem_messaging_call_create()</code></a> for the asynchronous version of this method.
@@ -480,7 +555,7 @@ See <a class="link" href="MmGdbusModemMessaging.html#mm-gdbus-modem-messaging-ca
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Messaging.Delete"><GTKDOCLINK HREF="Delete"><code class="function">Delete()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="Delete"><code class="function">Delete()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusModemMessaging.html#mm-gdbus-modem-messaging-call-delete-finish" title="mm_gdbus_modem_messaging_call_delete_finish ()"><code class="function">mm_gdbus_modem_messaging_call_delete_finish()</code></a> to get the result of the operation.
</p>
@@ -563,7 +638,7 @@ Finishes an operation started with <a class="link" href="MmGdbusModemMessaging.h
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Messaging.Delete"><GTKDOCLINK HREF="Delete"><code class="function">Delete()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="Delete"><code class="function">Delete()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusModemMessaging.html#mm-gdbus-modem-messaging-call-delete" title="mm_gdbus_modem_messaging_call_delete ()"><code class="function">mm_gdbus_modem_messaging_call_delete()</code></a> for the asynchronous version of this method.
@@ -608,7 +683,7 @@ See <a class="link" href="MmGdbusModemMessaging.html#mm-gdbus-modem-messaging-ca
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Messaging.List"><GTKDOCLINK HREF="List"><code class="function">List()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="List"><code class="function">List()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusModemMessaging.html#mm-gdbus-modem-messaging-call-list-finish" title="mm_gdbus_modem_messaging_call_list_finish ()"><code class="function">mm_gdbus_modem_messaging_call_list_finish()</code></a> to get the result of the operation.
</p>
@@ -693,7 +768,7 @@ Finishes an operation started with <a class="link" href="MmGdbusModemMessaging.h
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Messaging.List"><GTKDOCLINK HREF="List"><code class="function">List()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="List"><code class="function">List()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusModemMessaging.html#mm-gdbus-modem-messaging-call-list" title="mm_gdbus_modem_messaging_call_list ()"><code class="function">mm_gdbus_modem_messaging_call_list()</code></a> for the asynchronous version of this method.
@@ -738,7 +813,7 @@ See <a class="link" href="MmGdbusModemMessaging.html#mm-gdbus-modem-messaging-ca
<a name="MmGdbusModemMessaging--default-storage"></a><h3>The <code class="literal">"default-storage"</code> property</h3>
<pre class="programlisting"> "default-storage" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Messaging.DefaultStorage">"DefaultStorage"</a>.
+Represents the D-Bus property "DefaultStorage".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -747,10 +822,21 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
</div>
<hr>
<div class="refsect2">
+<a name="MmGdbusModemMessaging--messages"></a><h3>The <code class="literal">"messages"</code> property</h3>
+<pre class="programlisting"> "messages" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Boxed-Types.html#GStrv"><span class="type">GStrv</span></a> : Read / Write</pre>
+<p>
+Represents the D-Bus property "Messages".
+</p>
+<p>
+Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
+</p>
+</div>
+<hr>
+<div class="refsect2">
<a name="MmGdbusModemMessaging--supported-storages"></a><h3>The <code class="literal">"supported-storages"</code> property</h3>
<pre class="programlisting"> "supported-storages" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Messaging.SupportedStorages">"SupportedStorages"</a>.
+Represents the D-Bus property "SupportedStorages".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -768,7 +854,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> arg_received,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-On the client-side, this signal is emitted whenever the D-Bus signal <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-signal-org-freedesktop-ModemManager1-Modem-Messaging.Added">"Added"</a> is received.
+On the client-side, this signal is emitted whenever the D-Bus signal "Added" is received.
</p>
<p>
On the service-side, this signal can be used with e.g. <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#g-signal-emit-by-name"><code class="function">g_signal_emit_by_name()</code></a> to make the object emit the D-Bus signal.
@@ -805,7 +891,7 @@ On the service-side, this signal can be used with e.g. <a href="http://library.g
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *arg_path,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-On the client-side, this signal is emitted whenever the D-Bus signal <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-signal-org-freedesktop-ModemManager1-Modem-Messaging.Deleted">"Deleted"</a> is received.
+On the client-side, this signal is emitted whenever the D-Bus signal "Deleted" is received.
</p>
<p>
On the service-side, this signal can be used with e.g. <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#g-signal-emit-by-name"><code class="function">g_signal_emit_by_name()</code></a> to make the object emit the D-Bus signal.
@@ -839,7 +925,7 @@ On the service-side, this signal can be used with e.g. <a href="http://library.g
<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *arg_properties,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Messaging.Create"><GTKDOCLINK HREF="Create"><code class="function">Create()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="Create"><code class="function">Create()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_modem_messaging_complete_create()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -882,7 +968,7 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *arg_path,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Messaging.Delete"><GTKDOCLINK HREF="Delete"><code class="function">Delete()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="Delete"><code class="function">Delete()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_modem_messaging_complete_delete()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -924,7 +1010,7 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
<a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html"><span class="type">GDBusMethodInvocation</span></a> *invocation,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Messaging.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Messaging.List"><GTKDOCLINK HREF="List"><code class="function">List()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="List"><code class="function">List()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_modem_messaging_complete_list()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -959,6 +1045,6 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusModemMessagingProxy.html b/docs/reference/libmm-glib/html/MmGdbusModemMessagingProxy.html
index 8246554..394c639 100644
--- a/docs/reference/libmm-glib/html/MmGdbusModemMessagingProxy.html
+++ b/docs/reference/libmm-glib/html/MmGdbusModemMessagingProxy.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusModemMessaging.html" title="MmGdbusModemMessaging">
<link rel="next" href="MmGdbusModemMessagingSkeleton.html" title="MmGdbusModemMessagingSkeleton">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -414,6 +414,6 @@ See <a class="link" href="MmGdbusModemMessagingProxy.html#mm-gdbus-modem-messagi
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusModemMessagingSkeleton.html b/docs/reference/libmm-glib/html/MmGdbusModemMessagingSkeleton.html
index 02f9b23..a404c7e 100644
--- a/docs/reference/libmm-glib/html/MmGdbusModemMessagingSkeleton.html
+++ b/docs/reference/libmm-glib/html/MmGdbusModemMessagingSkeleton.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusModemMessagingProxy.html" title="MmGdbusModemMessagingProxy">
<link rel="next" href="MmGdbusModemTime.html" title="MmGdbusModemTime">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -99,6 +99,6 @@ Creates a skeleton object for the D-Bus interface org.freedesktop.ModemManager1.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusModemOma.html b/docs/reference/libmm-glib/html/MmGdbusModemOma.html
new file mode 100644
index 0000000..3ba3309
--- /dev/null
+++ b/docs/reference/libmm-glib/html/MmGdbusModemOma.html
@@ -0,0 +1,1208 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>MmGdbusModemOma</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="libmm-glib Reference Manual">
+<link rel="up" href="pt02.html" title="Part II. Low level API">
+<link rel="prev" href="MmGdbusModemSignalSkeleton.html" title="MmGdbusModemSignalSkeleton">
+<link rel="next" href="MmGdbusModemOmaProxy.html" title="MmGdbusModemOmaProxy">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="MmGdbusModemSignalSkeleton.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="pt02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libmm-glib Reference Manual</th>
+<td><a accesskey="n" href="MmGdbusModemOmaProxy.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#MmGdbusModemOma.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#MmGdbusModemOma.description" class="shortcut">Description</a>
+  | 
+ <a href="#MmGdbusModemOma.object-hierarchy" class="shortcut">Object Hierarchy</a>
+  | 
+ <a href="#MmGdbusModemOma.prerequisites" class="shortcut">Prerequisites</a>
+  | 
+ <a href="#MmGdbusModemOma.implementations" class="shortcut">Known Implementations</a>
+  | 
+ <a href="#MmGdbusModemOma.properties" class="shortcut">Properties</a>
+  | 
+ <a href="#MmGdbusModemOma.signals" class="shortcut">Signals</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="MmGdbusModemOma"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="MmGdbusModemOma.top_of_page"></a>MmGdbusModemOma</span></h2>
+<p>MmGdbusModemOma — Generated C code for the org.freedesktop.ModemManager1.Modem.Oma D-Bus interface</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="MmGdbusModemOma.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis"> <a class="link" href="MmGdbusModemOma.html#MmGdbusModemOma-struct" title="MmGdbusModemOma">MmGdbusModemOma</a>;
+struct <a class="link" href="MmGdbusModemOma.html#MmGdbusModemOmaIface" title="struct MmGdbusModemOmaIface">MmGdbusModemOmaIface</a>;
+
+
+<span class="returnvalue">void</span> <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-accept-network-initiated-session" title="mm_gdbus_modem_oma_call_accept_network_initiated_session ()">mm_gdbus_modem_oma_call_accept_network_initiated_session</a>
+ (<em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *proxy</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_session_id</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> arg_accept</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-accept-network-initiated-session-finish" title="mm_gdbus_modem_oma_call_accept_network_initiated_session_finish ()">mm_gdbus_modem_oma_call_accept_network_initiated_session_finish</a>
+ (<em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *proxy</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-accept-network-initiated-session-sync" title="mm_gdbus_modem_oma_call_accept_network_initiated_session_sync ()">mm_gdbus_modem_oma_call_accept_network_initiated_session_sync</a>
+ (<em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *proxy</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_session_id</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> arg_accept</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-cancel-session" title="mm_gdbus_modem_oma_call_cancel_session ()">mm_gdbus_modem_oma_call_cancel_session</a>
+ (<em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *proxy</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-cancel-session-finish" title="mm_gdbus_modem_oma_call_cancel_session_finish ()">mm_gdbus_modem_oma_call_cancel_session_finish</a>
+ (<em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *proxy</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-cancel-session-sync" title="mm_gdbus_modem_oma_call_cancel_session_sync ()">mm_gdbus_modem_oma_call_cancel_session_sync</a>
+ (<em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *proxy</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-setup" title="mm_gdbus_modem_oma_call_setup ()">mm_gdbus_modem_oma_call_setup</a> (<em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *proxy</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_features</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-setup-finish" title="mm_gdbus_modem_oma_call_setup_finish ()">mm_gdbus_modem_oma_call_setup_finish</a>
+ (<em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *proxy</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-setup-sync" title="mm_gdbus_modem_oma_call_setup_sync ()">mm_gdbus_modem_oma_call_setup_sync</a> (<em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *proxy</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_features</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-start-client-initiated-session" title="mm_gdbus_modem_oma_call_start_client_initiated_session ()">mm_gdbus_modem_oma_call_start_client_initiated_session</a>
+ (<em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *proxy</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_session_type</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-start-client-initiated-session-finish" title="mm_gdbus_modem_oma_call_start_client_initiated_session_finish ()">mm_gdbus_modem_oma_call_start_client_initiated_session_finish</a>
+ (<em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *proxy</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-start-client-initiated-session-sync" title="mm_gdbus_modem_oma_call_start_client_initiated_session_sync ()">mm_gdbus_modem_oma_call_start_client_initiated_session_sync</a>
+ (<em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *proxy</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_session_type</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-get-features" title="mm_gdbus_modem_oma_get_features ()">mm_gdbus_modem_oma_get_features</a> (<em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *object</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-get-session-state" title="mm_gdbus_modem_oma_get_session_state ()">mm_gdbus_modem_oma_get_session_state</a>
+ (<em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *object</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-get-session-type" title="mm_gdbus_modem_oma_get_session_type ()">mm_gdbus_modem_oma_get_session_type</a> (<em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *object</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-get-pending-network-initiated-sessions" title="mm_gdbus_modem_oma_get_pending_network_initiated_sessions ()">mm_gdbus_modem_oma_get_pending_network_initiated_sessions</a>
+ (<em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *object</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-dup-pending-network-initiated-sessions" title="mm_gdbus_modem_oma_dup_pending_network_initiated_sessions ()">mm_gdbus_modem_oma_dup_pending_network_initiated_sessions</a>
+ (<em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *object</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="MmGdbusModemOma.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+ GInterface
+ +----MmGdbusModemOma
+</pre>
+</div>
+<div class="refsect1">
+<a name="MmGdbusModemOma.prerequisites"></a><h2>Prerequisites</h2>
+<p>
+MmGdbusModemOma requires
+ <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>.</p>
+</div>
+<div class="refsect1">
+<a name="MmGdbusModemOma.implementations"></a><h2>Known Implementations</h2>
+<p>
+MmGdbusModemOma is implemented by
+ <a class="link" href="MMModemOma.html" title="MMModemOma">MMModemOma</a>, <a class="link" href="MmGdbusModemOmaProxy.html" title="MmGdbusModemOmaProxy">MmGdbusModemOmaProxy</a> and <a class="link" href="MmGdbusModemOmaSkeleton.html" title="MmGdbusModemOmaSkeleton">MmGdbusModemOmaSkeleton</a>.</p>
+</div>
+<div class="refsect1">
+<a name="MmGdbusModemOma.properties"></a><h2>Properties</h2>
+<pre class="synopsis">
+ "<a class="link" href="MmGdbusModemOma.html#MmGdbusModemOma--features" title='The "features" property'>features</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write
+ "<a class="link" href="MmGdbusModemOma.html#MmGdbusModemOma--pending-network-initiated-sessions" title='The "pending-network-initiated-sessions" property'>pending-network-initiated-sessions</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write
+ "<a class="link" href="MmGdbusModemOma.html#MmGdbusModemOma--session-state" title='The "session-state" property'>session-state</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write
+ "<a class="link" href="MmGdbusModemOma.html#MmGdbusModemOma--session-type" title='The "session-type" property'>session-type</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write
+</pre>
+</div>
+<div class="refsect1">
+<a name="MmGdbusModemOma.signals"></a><h2>Signals</h2>
+<pre class="synopsis">
+ "<a class="link" href="MmGdbusModemOma.html#MmGdbusModemOma-handle-accept-network-initiated-session" title='The "handle-accept-network-initiated-session" signal'>handle-accept-network-initiated-session</a>" : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
+ "<a class="link" href="MmGdbusModemOma.html#MmGdbusModemOma-handle-cancel-session" title='The "handle-cancel-session" signal'>handle-cancel-session</a>" : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
+ "<a class="link" href="MmGdbusModemOma.html#MmGdbusModemOma-handle-setup" title='The "handle-setup" signal'>handle-setup</a>" : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
+ "<a class="link" href="MmGdbusModemOma.html#MmGdbusModemOma-handle-start-client-initiated-session" title='The "handle-start-client-initiated-session" signal'>handle-start-client-initiated-session</a>" : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
+ "<a class="link" href="MmGdbusModemOma.html#MmGdbusModemOma-session-state-changed" title='The "session-state-changed" signal'>session-state-changed</a>" : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
+</pre>
+</div>
+<div class="refsect1">
+<a name="MmGdbusModemOma.description"></a><h2>Description</h2>
+<p>
+This section contains code for working with the org.freedesktop.ModemManager1.Modem.Oma D-Bus interface in C.
+</p>
+</div>
+<div class="refsect1">
+<a name="MmGdbusModemOma.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="MmGdbusModemOma-struct"></a><h3>MmGdbusModemOma</h3>
+<pre class="programlisting">typedef struct _MmGdbusModemOma MmGdbusModemOma;</pre>
+<p>
+Abstract interface type for the D-Bus interface org.freedesktop.ModemManager1.Modem.Oma.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="MmGdbusModemOmaIface"></a><h3>struct MmGdbusModemOmaIface</h3>
+<pre class="programlisting">struct MmGdbusModemOmaIface {
+ GTypeInterface parent_iface;
+
+
+
+ gboolean (*handle_accept_network_initiated_session) (
+ MmGdbusModemOma *object,
+ GDBusMethodInvocation *invocation,
+ guint arg_session_id,
+ gboolean arg_accept);
+
+ gboolean (*handle_cancel_session) (
+ MmGdbusModemOma *object,
+ GDBusMethodInvocation *invocation);
+
+ gboolean (*handle_setup) (
+ MmGdbusModemOma *object,
+ GDBusMethodInvocation *invocation,
+ guint arg_features);
+
+ gboolean (*handle_start_client_initiated_session) (
+ MmGdbusModemOma *object,
+ GDBusMethodInvocation *invocation,
+ guint arg_session_type);
+
+ guint (*get_features) (MmGdbusModemOma *object);
+
+ GVariant * (*get_pending_network_initiated_sessions) (MmGdbusModemOma *object);
+
+ gint (*get_session_state) (MmGdbusModemOma *object);
+
+ guint (*get_session_type) (MmGdbusModemOma *object);
+
+ void (*session_state_changed) (
+ MmGdbusModemOma *object,
+ gint arg_old_session_state,
+ gint arg_new_session_state,
+ guint arg_session_state_failed_reason);
+};
+</pre>
+<p>
+Virtual table for the D-Bus interface org.freedesktop.ModemManager1.Modem.Oma.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GTypeInterface"><span class="type">GTypeInterface</span></a> <em class="structfield"><code><a name="MmGdbusModemOmaIface.parent-iface"></a>parent_iface</code></em>;</span></p></td>
+<td>The parent interface.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="MmGdbusModemOmaIface.handle-accept-network-initiated-session"></a>handle_accept_network_initiated_session</code></em> ()</span></p></td>
+<td>Handler for the <a class="link" href="MmGdbusModemOma.html#MmGdbusModemOma-handle-accept-network-initiated-session" title='The "handle-accept-network-initiated-session" signal'><span class="type">"handle-accept-network-initiated-session"</span></a> signal.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="MmGdbusModemOmaIface.handle-cancel-session"></a>handle_cancel_session</code></em> ()</span></p></td>
+<td>Handler for the <a class="link" href="MmGdbusModemOma.html#MmGdbusModemOma-handle-cancel-session" title='The "handle-cancel-session" signal'><span class="type">"handle-cancel-session"</span></a> signal.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="MmGdbusModemOmaIface.handle-setup"></a>handle_setup</code></em> ()</span></p></td>
+<td>Handler for the <a class="link" href="MmGdbusModemOma.html#MmGdbusModemOma-handle-setup" title='The "handle-setup" signal'><span class="type">"handle-setup"</span></a> signal.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="MmGdbusModemOmaIface.handle-start-client-initiated-session"></a>handle_start_client_initiated_session</code></em> ()</span></p></td>
+<td>Handler for the <a class="link" href="MmGdbusModemOma.html#MmGdbusModemOma-handle-start-client-initiated-session" title='The "handle-start-client-initiated-session" signal'><span class="type">"handle-start-client-initiated-session"</span></a> signal.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="MmGdbusModemOmaIface.get-features"></a>get_features</code></em> ()</span></p></td>
+<td>Getter for the <a class="link" href="MmGdbusModemOma.html#MmGdbusModemOma--features" title='The "features" property'><span class="type">"features"</span></a> property.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="MmGdbusModemOmaIface.get-pending-network-initiated-sessions"></a>get_pending_network_initiated_sessions</code></em> ()</span></p></td>
+<td>Getter for the <a class="link" href="MmGdbusModemOma.html#MmGdbusModemOma--pending-network-initiated-sessions" title='The "pending-network-initiated-sessions" property'><span class="type">"pending-network-initiated-sessions"</span></a> property.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="MmGdbusModemOmaIface.get-session-state"></a>get_session_state</code></em> ()</span></p></td>
+<td>Getter for the <a class="link" href="MmGdbusModemOma.html#MmGdbusModemOma--session-state" title='The "session-state" property'><span class="type">"session-state"</span></a> property.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="MmGdbusModemOmaIface.get-session-type"></a>get_session_type</code></em> ()</span></p></td>
+<td>Getter for the <a class="link" href="MmGdbusModemOma.html#MmGdbusModemOma--session-type" title='The "session-type" property'><span class="type">"session-type"</span></a> property.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="MmGdbusModemOmaIface.session-state-changed"></a>session_state_changed</code></em> ()</span></p></td>
+<td>Handler for the <a class="link" href="MmGdbusModemOma.html#MmGdbusModemOma-session-state-changed" title='The "session-state-changed" signal'><span class="type">"session-state-changed"</span></a> signal.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-oma-call-accept-network-initiated-session"></a><h3>mm_gdbus_modem_oma_call_accept_network_initiated_session ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> mm_gdbus_modem_oma_call_accept_network_initiated_session
+ (<em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *proxy</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_session_id</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> arg_accept</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>
+Asynchronously invokes the <GTKDOCLINK HREF="AcceptNetworkInitiatedSession"><code class="function">AcceptNetworkInitiatedSession()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
+You can then call <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-accept-network-initiated-session-finish" title="mm_gdbus_modem_oma_call_accept_network_initiated_session_finish ()"><code class="function">mm_gdbus_modem_oma_call_accept_network_initiated_session_finish()</code></a> to get the result of the operation.
+</p>
+<p>
+See <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-accept-network-initiated-session-sync" title="mm_gdbus_modem_oma_call_accept_network_initiated_session_sync ()"><code class="function">mm_gdbus_modem_oma_call_accept_network_initiated_session_sync()</code></a> for the synchronous, blocking version of this method.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemOmaProxy.html" title="MmGdbusModemOmaProxy"><span class="type">MmGdbusModemOmaProxy</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>arg_session_id</code></em> :</span></p></td>
+<td>Argument to pass with the method invocation.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>arg_accept</code></em> :</span></p></td>
+<td>Argument to pass with the method invocation.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> to call when the request is satisfied or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>User data to pass to <em class="parameter"><code>callback</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-oma-call-accept-network-initiated-session-finish"></a><h3>mm_gdbus_modem_oma_call_accept_network_initiated_session_finish ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_gdbus_modem_oma_call_accept_network_initiated_session_finish
+ (<em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *proxy</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-accept-network-initiated-session" title="mm_gdbus_modem_oma_call_accept_network_initiated_session ()"><code class="function">mm_gdbus_modem_oma_call_accept_network_initiated_session()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemOmaProxy.html" title="MmGdbusModemOmaProxy"><span class="type">MmGdbusModemOmaProxy</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>The <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> obtained from the <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> passed to <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-accept-network-initiated-session" title="mm_gdbus_modem_oma_call_accept_network_initiated_session ()"><code class="function">mm_gdbus_modem_oma_call_accept_network_initiated_session()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the call succeded, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if <em class="parameter"><code>error</code></em> is set. <span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-oma-call-accept-network-initiated-session-sync"></a><h3>mm_gdbus_modem_oma_call_accept_network_initiated_session_sync ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_gdbus_modem_oma_call_accept_network_initiated_session_sync
+ (<em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *proxy</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_session_id</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> arg_accept</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Synchronously invokes the <GTKDOCLINK HREF="AcceptNetworkInitiatedSession"><code class="function">AcceptNetworkInitiatedSession()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+</p>
+<p>
+See <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-accept-network-initiated-session" title="mm_gdbus_modem_oma_call_accept_network_initiated_session ()"><code class="function">mm_gdbus_modem_oma_call_accept_network_initiated_session()</code></a> for the asynchronous version of this method.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemOmaProxy.html" title="MmGdbusModemOmaProxy"><span class="type">MmGdbusModemOmaProxy</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>arg_session_id</code></em> :</span></p></td>
+<td>Argument to pass with the method invocation.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>arg_accept</code></em> :</span></p></td>
+<td>Argument to pass with the method invocation.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the call succeded, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if <em class="parameter"><code>error</code></em> is set. <span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-oma-call-cancel-session"></a><h3>mm_gdbus_modem_oma_call_cancel_session ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> mm_gdbus_modem_oma_call_cancel_session
+ (<em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *proxy</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>
+Asynchronously invokes the <GTKDOCLINK HREF="CancelSession"><code class="function">CancelSession()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
+You can then call <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-cancel-session-finish" title="mm_gdbus_modem_oma_call_cancel_session_finish ()"><code class="function">mm_gdbus_modem_oma_call_cancel_session_finish()</code></a> to get the result of the operation.
+</p>
+<p>
+See <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-cancel-session-sync" title="mm_gdbus_modem_oma_call_cancel_session_sync ()"><code class="function">mm_gdbus_modem_oma_call_cancel_session_sync()</code></a> for the synchronous, blocking version of this method.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemOmaProxy.html" title="MmGdbusModemOmaProxy"><span class="type">MmGdbusModemOmaProxy</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> to call when the request is satisfied or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>User data to pass to <em class="parameter"><code>callback</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-oma-call-cancel-session-finish"></a><h3>mm_gdbus_modem_oma_call_cancel_session_finish ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_gdbus_modem_oma_call_cancel_session_finish
+ (<em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *proxy</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-cancel-session" title="mm_gdbus_modem_oma_call_cancel_session ()"><code class="function">mm_gdbus_modem_oma_call_cancel_session()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemOmaProxy.html" title="MmGdbusModemOmaProxy"><span class="type">MmGdbusModemOmaProxy</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>The <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> obtained from the <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> passed to <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-cancel-session" title="mm_gdbus_modem_oma_call_cancel_session ()"><code class="function">mm_gdbus_modem_oma_call_cancel_session()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the call succeded, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if <em class="parameter"><code>error</code></em> is set. <span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-oma-call-cancel-session-sync"></a><h3>mm_gdbus_modem_oma_call_cancel_session_sync ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_gdbus_modem_oma_call_cancel_session_sync
+ (<em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *proxy</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Synchronously invokes the <GTKDOCLINK HREF="CancelSession"><code class="function">CancelSession()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+</p>
+<p>
+See <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-cancel-session" title="mm_gdbus_modem_oma_call_cancel_session ()"><code class="function">mm_gdbus_modem_oma_call_cancel_session()</code></a> for the asynchronous version of this method.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemOmaProxy.html" title="MmGdbusModemOmaProxy"><span class="type">MmGdbusModemOmaProxy</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the call succeded, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if <em class="parameter"><code>error</code></em> is set. <span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-oma-call-setup"></a><h3>mm_gdbus_modem_oma_call_setup ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> mm_gdbus_modem_oma_call_setup (<em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *proxy</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_features</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>
+Asynchronously invokes the <GTKDOCLINK HREF="Setup"><code class="function">Setup()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
+You can then call <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-setup-finish" title="mm_gdbus_modem_oma_call_setup_finish ()"><code class="function">mm_gdbus_modem_oma_call_setup_finish()</code></a> to get the result of the operation.
+</p>
+<p>
+See <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-setup-sync" title="mm_gdbus_modem_oma_call_setup_sync ()"><code class="function">mm_gdbus_modem_oma_call_setup_sync()</code></a> for the synchronous, blocking version of this method.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemOmaProxy.html" title="MmGdbusModemOmaProxy"><span class="type">MmGdbusModemOmaProxy</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>arg_features</code></em> :</span></p></td>
+<td>Argument to pass with the method invocation.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> to call when the request is satisfied or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>User data to pass to <em class="parameter"><code>callback</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-oma-call-setup-finish"></a><h3>mm_gdbus_modem_oma_call_setup_finish ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_gdbus_modem_oma_call_setup_finish
+ (<em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *proxy</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-setup" title="mm_gdbus_modem_oma_call_setup ()"><code class="function">mm_gdbus_modem_oma_call_setup()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemOmaProxy.html" title="MmGdbusModemOmaProxy"><span class="type">MmGdbusModemOmaProxy</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>The <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> obtained from the <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> passed to <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-setup" title="mm_gdbus_modem_oma_call_setup ()"><code class="function">mm_gdbus_modem_oma_call_setup()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the call succeded, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if <em class="parameter"><code>error</code></em> is set. <span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-oma-call-setup-sync"></a><h3>mm_gdbus_modem_oma_call_setup_sync ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_gdbus_modem_oma_call_setup_sync (<em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *proxy</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_features</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Synchronously invokes the <GTKDOCLINK HREF="Setup"><code class="function">Setup()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+</p>
+<p>
+See <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-setup" title="mm_gdbus_modem_oma_call_setup ()"><code class="function">mm_gdbus_modem_oma_call_setup()</code></a> for the asynchronous version of this method.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemOmaProxy.html" title="MmGdbusModemOmaProxy"><span class="type">MmGdbusModemOmaProxy</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>arg_features</code></em> :</span></p></td>
+<td>Argument to pass with the method invocation.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the call succeded, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if <em class="parameter"><code>error</code></em> is set. <span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-oma-call-start-client-initiated-session"></a><h3>mm_gdbus_modem_oma_call_start_client_initiated_session ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> mm_gdbus_modem_oma_call_start_client_initiated_session
+ (<em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *proxy</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_session_type</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>
+Asynchronously invokes the <GTKDOCLINK HREF="StartClientInitiatedSession"><code class="function">StartClientInitiatedSession()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
+You can then call <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-start-client-initiated-session-finish" title="mm_gdbus_modem_oma_call_start_client_initiated_session_finish ()"><code class="function">mm_gdbus_modem_oma_call_start_client_initiated_session_finish()</code></a> to get the result of the operation.
+</p>
+<p>
+See <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-start-client-initiated-session-sync" title="mm_gdbus_modem_oma_call_start_client_initiated_session_sync ()"><code class="function">mm_gdbus_modem_oma_call_start_client_initiated_session_sync()</code></a> for the synchronous, blocking version of this method.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemOmaProxy.html" title="MmGdbusModemOmaProxy"><span class="type">MmGdbusModemOmaProxy</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>arg_session_type</code></em> :</span></p></td>
+<td>Argument to pass with the method invocation.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> to call when the request is satisfied or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>User data to pass to <em class="parameter"><code>callback</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-oma-call-start-client-initiated-session-finish"></a><h3>mm_gdbus_modem_oma_call_start_client_initiated_session_finish ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_gdbus_modem_oma_call_start_client_initiated_session_finish
+ (<em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *proxy</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-start-client-initiated-session" title="mm_gdbus_modem_oma_call_start_client_initiated_session ()"><code class="function">mm_gdbus_modem_oma_call_start_client_initiated_session()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemOmaProxy.html" title="MmGdbusModemOmaProxy"><span class="type">MmGdbusModemOmaProxy</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>The <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> obtained from the <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> passed to <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-start-client-initiated-session" title="mm_gdbus_modem_oma_call_start_client_initiated_session ()"><code class="function">mm_gdbus_modem_oma_call_start_client_initiated_session()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the call succeded, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if <em class="parameter"><code>error</code></em> is set. <span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-oma-call-start-client-initiated-session-sync"></a><h3>mm_gdbus_modem_oma_call_start_client_initiated_session_sync ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_gdbus_modem_oma_call_start_client_initiated_session_sync
+ (<em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *proxy</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_session_type</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Synchronously invokes the <GTKDOCLINK HREF="StartClientInitiatedSession"><code class="function">StartClientInitiatedSession()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+</p>
+<p>
+See <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-start-client-initiated-session" title="mm_gdbus_modem_oma_call_start_client_initiated_session ()"><code class="function">mm_gdbus_modem_oma_call_start_client_initiated_session()</code></a> for the asynchronous version of this method.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemOmaProxy.html" title="MmGdbusModemOmaProxy"><span class="type">MmGdbusModemOmaProxy</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>arg_session_type</code></em> :</span></p></td>
+<td>Argument to pass with the method invocation.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the call succeded, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if <em class="parameter"><code>error</code></em> is set. <span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-oma-get-features"></a><h3>mm_gdbus_modem_oma_get_features ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> mm_gdbus_modem_oma_get_features (<em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *object</code></em>);</pre>
+<p>
+Gets the value of the "Features" D-Bus property.
+</p>
+<p>
+Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The property value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-oma-get-session-state"></a><h3>mm_gdbus_modem_oma_get_session_state ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> mm_gdbus_modem_oma_get_session_state
+ (<em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *object</code></em>);</pre>
+<p>
+Gets the value of the "SessionState" D-Bus property.
+</p>
+<p>
+Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The property value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-oma-get-session-type"></a><h3>mm_gdbus_modem_oma_get_session_type ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> mm_gdbus_modem_oma_get_session_type (<em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *object</code></em>);</pre>
+<p>
+Gets the value of the "SessionType" D-Bus property.
+</p>
+<p>
+Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The property value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-oma-get-pending-network-initiated-sessions"></a><h3>mm_gdbus_modem_oma_get_pending_network_initiated_sessions ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_modem_oma_get_pending_network_initiated_sessions
+ (<em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *object</code></em>);</pre>
+<p>
+Gets the value of the "PendingNetworkInitiatedSessions" D-Bus property.
+</p>
+<p>
+Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
+</p>
+<p>
+</p>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where <em class="parameter"><code>object</code></em> was constructed. Use <a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-dup-pending-network-initiated-sessions" title="mm_gdbus_modem_oma_dup_pending_network_initiated_sessions ()"><code class="function">mm_gdbus_modem_oma_dup_pending_network_initiated_sessions()</code></a> if on another thread.</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The property value or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the property is not set. Do not free the returned value, it belongs to <em class="parameter"><code>object</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-oma-dup-pending-network-initiated-sessions"></a><h3>mm_gdbus_modem_oma_dup_pending_network_initiated_sessions ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_modem_oma_dup_pending_network_initiated_sessions
+ (<em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *object</code></em>);</pre>
+<p>
+Gets a copy of the "PendingNetworkInitiatedSessions" D-Bus property.
+</p>
+<p>
+Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The property value or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the property is not set. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#g-variant-unref"><code class="function">g_variant_unref()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<div class="refsect1">
+<a name="MmGdbusModemOma.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="MmGdbusModemOma--features"></a><h3>The <code class="literal">"features"</code> property</h3>
+<pre class="programlisting"> "features" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
+<p>
+Represents the D-Bus property "Features".
+</p>
+<p>
+Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
+</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="MmGdbusModemOma--pending-network-initiated-sessions"></a><h3>The <code class="literal">"pending-network-initiated-sessions"</code> property</h3>
+<pre class="programlisting"> "pending-network-initiated-sessions" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write</pre>
+<p>
+Represents the D-Bus property "PendingNetworkInitiatedSessions".
+</p>
+<p>
+Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
+</p>
+<p>Allowed values: GVariant&lt;a(uu)&gt;</p>
+<p>Default value: NULL</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="MmGdbusModemOma--session-state"></a><h3>The <code class="literal">"session-state"</code> property</h3>
+<pre class="programlisting"> "session-state" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre>
+<p>
+Represents the D-Bus property "SessionState".
+</p>
+<p>
+Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
+</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="MmGdbusModemOma--session-type"></a><h3>The <code class="literal">"session-type"</code> property</h3>
+<pre class="programlisting"> "session-type" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
+<p>
+Represents the D-Bus property "SessionType".
+</p>
+<p>
+Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
+</p>
+<p>Default value: 0</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="MmGdbusModemOma.signal-details"></a><h2>Signal Details</h2>
+<div class="refsect2">
+<a name="MmGdbusModemOma-handle-accept-network-initiated-session"></a><h3>The <code class="literal">"handle-accept-network-initiated-session"</code> signal</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> user_function (<a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *object,
+ <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html"><span class="type">GDBusMethodInvocation</span></a> *invocation,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_session_id,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> arg_accept,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
+<p>
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="AcceptNetworkInitiatedSession"><code class="function">AcceptNetworkInitiatedSession()</code></GTKDOCLINK> D-Bus method.
+</p>
+<p>
+If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_modem_oma_complete_accept_network_initiated_session()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>invocation</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html"><span class="type">GDBusMethodInvocation</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>arg_session_id</code></em> :</span></p></td>
+<td>Argument passed by remote caller.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>arg_accept</code></em> :</span></p></td>
+<td>Argument passed by remote caller.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the invocation was handled, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> to let other signal handlers run.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="MmGdbusModemOma-handle-cancel-session"></a><h3>The <code class="literal">"handle-cancel-session"</code> signal</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> user_function (<a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *object,
+ <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html"><span class="type">GDBusMethodInvocation</span></a> *invocation,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
+<p>
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="CancelSession"><code class="function">CancelSession()</code></GTKDOCLINK> D-Bus method.
+</p>
+<p>
+If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_modem_oma_complete_cancel_session()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>invocation</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html"><span class="type">GDBusMethodInvocation</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the invocation was handled, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> to let other signal handlers run.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="MmGdbusModemOma-handle-setup"></a><h3>The <code class="literal">"handle-setup"</code> signal</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> user_function (<a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *object,
+ <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html"><span class="type">GDBusMethodInvocation</span></a> *invocation,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_features,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
+<p>
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="Setup"><code class="function">Setup()</code></GTKDOCLINK> D-Bus method.
+</p>
+<p>
+If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_modem_oma_complete_setup()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>invocation</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html"><span class="type">GDBusMethodInvocation</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>arg_features</code></em> :</span></p></td>
+<td>Argument passed by remote caller.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the invocation was handled, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> to let other signal handlers run.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="MmGdbusModemOma-handle-start-client-initiated-session"></a><h3>The <code class="literal">"handle-start-client-initiated-session"</code> signal</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> user_function (<a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *object,
+ <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html"><span class="type">GDBusMethodInvocation</span></a> *invocation,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_session_type,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
+<p>
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="StartClientInitiatedSession"><code class="function">StartClientInitiatedSession()</code></GTKDOCLINK> D-Bus method.
+</p>
+<p>
+If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_modem_oma_complete_start_client_initiated_session()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>invocation</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html"><span class="type">GDBusMethodInvocation</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>arg_session_type</code></em> :</span></p></td>
+<td>Argument passed by remote caller.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the invocation was handled, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> to let other signal handlers run.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="MmGdbusModemOma-session-state-changed"></a><h3>The <code class="literal">"session-state-changed"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *object,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> arg_old_session_state,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> arg_new_session_state,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_session_state_failed_reason,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
+<p>
+On the client-side, this signal is emitted whenever the D-Bus signal "SessionStateChanged" is received.
+</p>
+<p>
+On the service-side, this signal can be used with e.g. <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#g-signal-emit-by-name"><code class="function">g_signal_emit_by_name()</code></a> to make the object emit the D-Bus signal.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>arg_old_session_state</code></em> :</span></p></td>
+<td>Argument.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>arg_new_session_state</code></em> :</span></p></td>
+<td>Argument.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>arg_session_state_failed_reason</code></em> :</span></p></td>
+<td>Argument.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.19</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusModemOmaProxy.html b/docs/reference/libmm-glib/html/MmGdbusModemOmaProxy.html
new file mode 100644
index 0000000..021b94d
--- /dev/null
+++ b/docs/reference/libmm-glib/html/MmGdbusModemOmaProxy.html
@@ -0,0 +1,415 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>MmGdbusModemOmaProxy</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="libmm-glib Reference Manual">
+<link rel="up" href="pt02.html" title="Part II. Low level API">
+<link rel="prev" href="MmGdbusModemOma.html" title="MmGdbusModemOma">
+<link rel="next" href="MmGdbusModemOmaSkeleton.html" title="MmGdbusModemOmaSkeleton">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="MmGdbusModemOma.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="pt02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libmm-glib Reference Manual</th>
+<td><a accesskey="n" href="MmGdbusModemOmaSkeleton.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#MmGdbusModemOmaProxy.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#MmGdbusModemOmaProxy.description" class="shortcut">Description</a>
+  | 
+ <a href="#MmGdbusModemOmaProxy.object-hierarchy" class="shortcut">Object Hierarchy</a>
+  | 
+ <a href="#MmGdbusModemOmaProxy.implemented-interfaces" class="shortcut">Implemented Interfaces</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="MmGdbusModemOmaProxy"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="MmGdbusModemOmaProxy.top_of_page"></a>MmGdbusModemOmaProxy</span></h2>
+<p>MmGdbusModemOmaProxy</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="MmGdbusModemOmaProxy.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">struct <a class="link" href="MmGdbusModemOmaProxy.html#MmGdbusModemOmaProxy-struct" title="struct MmGdbusModemOmaProxy">MmGdbusModemOmaProxy</a>;
+
+<span class="returnvalue">void</span> <a class="link" href="MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new" title="mm_gdbus_modem_oma_proxy_new ()">mm_gdbus_modem_oma_proxy_new</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GDBusConnection.html"><span class="type">GDBusConnection</span></a> *connection</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> flags</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *object_path</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
+<a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="returnvalue">MmGdbusModemOma</span></a> * <a class="link" href="MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new-finish" title="mm_gdbus_modem_oma_proxy_new_finish ()">mm_gdbus_modem_oma_proxy_new_finish</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new-for-bus" title="mm_gdbus_modem_oma_proxy_new_for_bus ()">mm_gdbus_modem_oma_proxy_new_for_bus</a>
+ (<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GDBusConnection.html#GBusType"><span class="type">GBusType</span></a> bus_type</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> flags</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *object_path</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
+<a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="returnvalue">MmGdbusModemOma</span></a> * <a class="link" href="MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new-for-bus-finish" title="mm_gdbus_modem_oma_proxy_new_for_bus_finish ()">mm_gdbus_modem_oma_proxy_new_for_bus_finish</a>
+ (<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+<a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="returnvalue">MmGdbusModemOma</span></a> * <a class="link" href="MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new-for-bus-sync" title="mm_gdbus_modem_oma_proxy_new_for_bus_sync ()">mm_gdbus_modem_oma_proxy_new_for_bus_sync</a>
+ (<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GDBusConnection.html#GBusType"><span class="type">GBusType</span></a> bus_type</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> flags</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *object_path</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+<a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="returnvalue">MmGdbusModemOma</span></a> * <a class="link" href="MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new-sync" title="mm_gdbus_modem_oma_proxy_new_sync ()">mm_gdbus_modem_oma_proxy_new_sync</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GDBusConnection.html"><span class="type">GDBusConnection</span></a> *connection</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> flags</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *object_path</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="MmGdbusModemOmaProxy.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+ <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+ +----<a href="http://library.gnome.org/devel/gio/unstable/GDBusProxy.html">GDBusProxy</a>
+ +----MmGdbusModemOmaProxy
+ +----<a class="link" href="MMModemOma.html" title="MMModemOma">MMModemOma</a>
+</pre>
+</div>
+<div class="refsect1">
+<a name="MmGdbusModemOmaProxy.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
+<p>
+MmGdbusModemOmaProxy implements
+ <a href="http://library.gnome.org/devel/gio/unstable/GDBusInterface.html">GDBusInterface</a>, <a href="http://library.gnome.org/devel/gio/unstable/GInitable.html">GInitable</a>, <a href="http://library.gnome.org/devel/gio/unstable/GAsyncInitable.html">GAsyncInitable</a> and <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma">MmGdbusModemOma</a>.</p>
+</div>
+<div class="refsect1">
+<a name="MmGdbusModemOmaProxy.description"></a><h2>Description</h2>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="MmGdbusModemOmaProxy.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="MmGdbusModemOmaProxy-struct"></a><h3>struct MmGdbusModemOmaProxy</h3>
+<pre class="programlisting">struct MmGdbusModemOmaProxy;</pre>
+<p>
+The <a class="link" href="MmGdbusModemOmaProxy.html" title="MmGdbusModemOmaProxy"><span class="type">MmGdbusModemOmaProxy</span></a> structure contains only private data and should only be accessed using the provided API.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-oma-proxy-new"></a><h3>mm_gdbus_modem_oma_proxy_new ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> mm_gdbus_modem_oma_proxy_new (<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GDBusConnection.html"><span class="type">GDBusConnection</span></a> *connection</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> flags</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *object_path</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>
+Asynchronously creates a proxy for the D-Bus interface org.freedesktop.ModemManager1.Modem.Oma. See <a href="http://library.gnome.org/devel/gio/unstable/GDBusProxy.html#g-dbus-proxy-new"><code class="function">g_dbus_proxy_new()</code></a> for more details.
+</p>
+<p>
+When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
+You can then call <a class="link" href="MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new-finish" title="mm_gdbus_modem_oma_proxy_new_finish ()"><code class="function">mm_gdbus_modem_oma_proxy_new_finish()</code></a> to get the result of the operation.
+</p>
+<p>
+See <a class="link" href="MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new-sync" title="mm_gdbus_modem_oma_proxy_new_sync ()"><code class="function">mm_gdbus_modem_oma_proxy_new_sync()</code></a> for the synchronous, blocking version of this constructor.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GDBusConnection.html"><span class="type">GDBusConnection</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>Flags from the <a href="http://library.gnome.org/devel/gio/unstable/GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> enumeration.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>A bus name (well-known or unique) or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>connection</code></em> is not a message bus connection. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object_path</code></em> :</span></p></td>
+<td>An object path.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> to call when the request is satisfied.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>User data to pass to <em class="parameter"><code>callback</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-oma-proxy-new-finish"></a><h3>mm_gdbus_modem_oma_proxy_new_finish ()</h3>
+<pre class="programlisting"><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="returnvalue">MmGdbusModemOma</span></a> * mm_gdbus_modem_oma_proxy_new_finish (<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <a class="link" href="MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new" title="mm_gdbus_modem_oma_proxy_new ()"><code class="function">mm_gdbus_modem_oma_proxy_new()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>The <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> obtained from the <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> passed to <a class="link" href="MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new" title="mm_gdbus_modem_oma_proxy_new ()"><code class="function">mm_gdbus_modem_oma_proxy_new()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The constructed proxy object or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>error</code></em> is set. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> MmGdbusModemOmaProxy]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-oma-proxy-new-for-bus"></a><h3>mm_gdbus_modem_oma_proxy_new_for_bus ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> mm_gdbus_modem_oma_proxy_new_for_bus
+ (<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GDBusConnection.html#GBusType"><span class="type">GBusType</span></a> bus_type</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> flags</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *object_path</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>
+Like <a class="link" href="MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new" title="mm_gdbus_modem_oma_proxy_new ()"><code class="function">mm_gdbus_modem_oma_proxy_new()</code></a> but takes a <a href="http://library.gnome.org/devel/gio/unstable/GDBusConnection.html#GBusType"><span class="type">GBusType</span></a> instead of a <a href="http://library.gnome.org/devel/gio/unstable/GDBusConnection.html"><span class="type">GDBusConnection</span></a>.
+</p>
+<p>
+When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
+You can then call <a class="link" href="MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new-for-bus-finish" title="mm_gdbus_modem_oma_proxy_new_for_bus_finish ()"><code class="function">mm_gdbus_modem_oma_proxy_new_for_bus_finish()</code></a> to get the result of the operation.
+</p>
+<p>
+See <a class="link" href="MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new-for-bus-sync" title="mm_gdbus_modem_oma_proxy_new_for_bus_sync ()"><code class="function">mm_gdbus_modem_oma_proxy_new_for_bus_sync()</code></a> for the synchronous, blocking version of this constructor.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus_type</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GDBusConnection.html#GBusType"><span class="type">GBusType</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>Flags from the <a href="http://library.gnome.org/devel/gio/unstable/GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> enumeration.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>A bus name (well-known or unique).</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object_path</code></em> :</span></p></td>
+<td>An object path.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> to call when the request is satisfied.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>User data to pass to <em class="parameter"><code>callback</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-oma-proxy-new-for-bus-finish"></a><h3>mm_gdbus_modem_oma_proxy_new_for_bus_finish ()</h3>
+<pre class="programlisting"><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="returnvalue">MmGdbusModemOma</span></a> * mm_gdbus_modem_oma_proxy_new_for_bus_finish
+ (<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <a class="link" href="MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new-for-bus" title="mm_gdbus_modem_oma_proxy_new_for_bus ()"><code class="function">mm_gdbus_modem_oma_proxy_new_for_bus()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>The <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> obtained from the <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> passed to <a class="link" href="MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new-for-bus" title="mm_gdbus_modem_oma_proxy_new_for_bus ()"><code class="function">mm_gdbus_modem_oma_proxy_new_for_bus()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The constructed proxy object or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>error</code></em> is set. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> MmGdbusModemOmaProxy]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-oma-proxy-new-for-bus-sync"></a><h3>mm_gdbus_modem_oma_proxy_new_for_bus_sync ()</h3>
+<pre class="programlisting"><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="returnvalue">MmGdbusModemOma</span></a> * mm_gdbus_modem_oma_proxy_new_for_bus_sync
+ (<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GDBusConnection.html#GBusType"><span class="type">GBusType</span></a> bus_type</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> flags</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *object_path</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Like <a class="link" href="MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new-sync" title="mm_gdbus_modem_oma_proxy_new_sync ()"><code class="function">mm_gdbus_modem_oma_proxy_new_sync()</code></a> but takes a <a href="http://library.gnome.org/devel/gio/unstable/GDBusConnection.html#GBusType"><span class="type">GBusType</span></a> instead of a <a href="http://library.gnome.org/devel/gio/unstable/GDBusConnection.html"><span class="type">GDBusConnection</span></a>.
+</p>
+<p>
+The calling thread is blocked until a reply is received.
+</p>
+<p>
+See <a class="link" href="MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new-for-bus" title="mm_gdbus_modem_oma_proxy_new_for_bus ()"><code class="function">mm_gdbus_modem_oma_proxy_new_for_bus()</code></a> for the asynchronous version of this constructor.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus_type</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GDBusConnection.html#GBusType"><span class="type">GBusType</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>Flags from the <a href="http://library.gnome.org/devel/gio/unstable/GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> enumeration.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>A bus name (well-known or unique).</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object_path</code></em> :</span></p></td>
+<td>An object path.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The constructed proxy object or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>error</code></em> is set. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> MmGdbusModemOmaProxy]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-oma-proxy-new-sync"></a><h3>mm_gdbus_modem_oma_proxy_new_sync ()</h3>
+<pre class="programlisting"><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="returnvalue">MmGdbusModemOma</span></a> * mm_gdbus_modem_oma_proxy_new_sync (<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GDBusConnection.html"><span class="type">GDBusConnection</span></a> *connection</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> flags</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *object_path</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Synchronously creates a proxy for the D-Bus interface org.freedesktop.ModemManager1.Modem.Oma. See <a href="http://library.gnome.org/devel/gio/unstable/GDBusProxy.html#g-dbus-proxy-new-sync"><code class="function">g_dbus_proxy_new_sync()</code></a> for more details.
+</p>
+<p>
+The calling thread is blocked until a reply is received.
+</p>
+<p>
+See <a class="link" href="MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new" title="mm_gdbus_modem_oma_proxy_new ()"><code class="function">mm_gdbus_modem_oma_proxy_new()</code></a> for the asynchronous version of this constructor.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GDBusConnection.html"><span class="type">GDBusConnection</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>Flags from the <a href="http://library.gnome.org/devel/gio/unstable/GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> enumeration.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>A bus name (well-known or unique) or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>connection</code></em> is not a message bus connection. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object_path</code></em> :</span></p></td>
+<td>An object path.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The constructed proxy object or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>error</code></em> is set. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> MmGdbusModemOmaProxy]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.19</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusModemOmaSkeleton.html b/docs/reference/libmm-glib/html/MmGdbusModemOmaSkeleton.html
new file mode 100644
index 0000000..a8b46c9
--- /dev/null
+++ b/docs/reference/libmm-glib/html/MmGdbusModemOmaSkeleton.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>MmGdbusModemOmaSkeleton</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="libmm-glib Reference Manual">
+<link rel="up" href="pt02.html" title="Part II. Low level API">
+<link rel="prev" href="MmGdbusModemOmaProxy.html" title="MmGdbusModemOmaProxy">
+<link rel="next" href="MmGdbusModemSimple.html" title="MmGdbusModemSimple">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="MmGdbusModemOmaProxy.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="pt02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libmm-glib Reference Manual</th>
+<td><a accesskey="n" href="MmGdbusModemSimple.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#MmGdbusModemOmaSkeleton.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#MmGdbusModemOmaSkeleton.description" class="shortcut">Description</a>
+  | 
+ <a href="#MmGdbusModemOmaSkeleton.object-hierarchy" class="shortcut">Object Hierarchy</a>
+  | 
+ <a href="#MmGdbusModemOmaSkeleton.implemented-interfaces" class="shortcut">Implemented Interfaces</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="MmGdbusModemOmaSkeleton"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="MmGdbusModemOmaSkeleton.top_of_page"></a>MmGdbusModemOmaSkeleton</span></h2>
+<p>MmGdbusModemOmaSkeleton</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="MmGdbusModemOmaSkeleton.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">struct <a class="link" href="MmGdbusModemOmaSkeleton.html#MmGdbusModemOmaSkeleton-struct" title="struct MmGdbusModemOmaSkeleton">MmGdbusModemOmaSkeleton</a>;
+
+<a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="returnvalue">MmGdbusModemOma</span></a> * <a class="link" href="MmGdbusModemOmaSkeleton.html#mm-gdbus-modem-oma-skeleton-new" title="mm_gdbus_modem_oma_skeleton_new ()">mm_gdbus_modem_oma_skeleton_new</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="MmGdbusModemOmaSkeleton.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+ <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+ +----<a href="http://library.gnome.org/devel/gio/unstable/GDBusInterfaceSkeleton.html">GDBusInterfaceSkeleton</a>
+ +----MmGdbusModemOmaSkeleton
+</pre>
+</div>
+<div class="refsect1">
+<a name="MmGdbusModemOmaSkeleton.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
+<p>
+MmGdbusModemOmaSkeleton implements
+ <a href="http://library.gnome.org/devel/gio/unstable/GDBusInterface.html">GDBusInterface</a> and <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma">MmGdbusModemOma</a>.</p>
+</div>
+<div class="refsect1">
+<a name="MmGdbusModemOmaSkeleton.description"></a><h2>Description</h2>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="MmGdbusModemOmaSkeleton.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="MmGdbusModemOmaSkeleton-struct"></a><h3>struct MmGdbusModemOmaSkeleton</h3>
+<pre class="programlisting">struct MmGdbusModemOmaSkeleton;</pre>
+<p>
+The <a class="link" href="MmGdbusModemOmaSkeleton.html" title="MmGdbusModemOmaSkeleton"><span class="type">MmGdbusModemOmaSkeleton</span></a> structure contains only private data and should only be accessed using the provided API.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-oma-skeleton-new"></a><h3>mm_gdbus_modem_oma_skeleton_new ()</h3>
+<pre class="programlisting"><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="returnvalue">MmGdbusModemOma</span></a> * mm_gdbus_modem_oma_skeleton_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Creates a skeleton object for the D-Bus interface org.freedesktop.ModemManager1.Modem.Oma.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The skeleton object. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> MmGdbusModemOmaSkeleton]</span>
+</td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.19</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusModemProxy.html b/docs/reference/libmm-glib/html/MmGdbusModemProxy.html
index 694cf40..0464e46 100644
--- a/docs/reference/libmm-glib/html/MmGdbusModemProxy.html
+++ b/docs/reference/libmm-glib/html/MmGdbusModemProxy.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusModem.html" title="MmGdbusModem">
<link rel="next" href="MmGdbusModemSkeleton.html" title="MmGdbusModemSkeleton">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -408,6 +408,6 @@ See <a class="link" href="MmGdbusModemProxy.html#mm-gdbus-modem-proxy-new" title
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusModemSignal.html b/docs/reference/libmm-glib/html/MmGdbusModemSignal.html
new file mode 100644
index 0000000..13441d4
--- /dev/null
+++ b/docs/reference/libmm-glib/html/MmGdbusModemSignal.html
@@ -0,0 +1,797 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>MmGdbusModemSignal</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="libmm-glib Reference Manual">
+<link rel="up" href="pt02.html" title="Part II. Low level API">
+<link rel="prev" href="MmGdbusModemFirmwareSkeleton.html" title="MmGdbusModemFirmwareSkeleton">
+<link rel="next" href="MmGdbusModemSignalProxy.html" title="MmGdbusModemSignalProxy">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="MmGdbusModemFirmwareSkeleton.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="pt02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libmm-glib Reference Manual</th>
+<td><a accesskey="n" href="MmGdbusModemSignalProxy.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#MmGdbusModemSignal.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#MmGdbusModemSignal.description" class="shortcut">Description</a>
+  | 
+ <a href="#MmGdbusModemSignal.object-hierarchy" class="shortcut">Object Hierarchy</a>
+  | 
+ <a href="#MmGdbusModemSignal.prerequisites" class="shortcut">Prerequisites</a>
+  | 
+ <a href="#MmGdbusModemSignal.implementations" class="shortcut">Known Implementations</a>
+  | 
+ <a href="#MmGdbusModemSignal.properties" class="shortcut">Properties</a>
+  | 
+ <a href="#MmGdbusModemSignal.signals" class="shortcut">Signals</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="MmGdbusModemSignal"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="MmGdbusModemSignal.top_of_page"></a>MmGdbusModemSignal</span></h2>
+<p>MmGdbusModemSignal — Generated C code for the org.freedesktop.ModemManager1.Modem.Signal D-Bus interface</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="MmGdbusModemSignal.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis"> <a class="link" href="MmGdbusModemSignal.html#MmGdbusModemSignal-struct" title="MmGdbusModemSignal">MmGdbusModemSignal</a>;
+struct <a class="link" href="MmGdbusModemSignal.html#MmGdbusModemSignalIface" title="struct MmGdbusModemSignalIface">MmGdbusModemSignalIface</a>;
+
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-get-rate" title="mm_gdbus_modem_signal_get_rate ()">mm_gdbus_modem_signal_get_rate</a> (<em class="parameter"><code><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> *object</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * <a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-get-cdma" title="mm_gdbus_modem_signal_get_cdma ()">mm_gdbus_modem_signal_get_cdma</a> (<em class="parameter"><code><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> *object</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * <a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-get-evdo" title="mm_gdbus_modem_signal_get_evdo ()">mm_gdbus_modem_signal_get_evdo</a> (<em class="parameter"><code><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> *object</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * <a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-get-gsm" title="mm_gdbus_modem_signal_get_gsm ()">mm_gdbus_modem_signal_get_gsm</a> (<em class="parameter"><code><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> *object</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * <a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-get-umts" title="mm_gdbus_modem_signal_get_umts ()">mm_gdbus_modem_signal_get_umts</a> (<em class="parameter"><code><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> *object</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * <a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-get-lte" title="mm_gdbus_modem_signal_get_lte ()">mm_gdbus_modem_signal_get_lte</a> (<em class="parameter"><code><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> *object</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * <a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-dup-cdma" title="mm_gdbus_modem_signal_dup_cdma ()">mm_gdbus_modem_signal_dup_cdma</a> (<em class="parameter"><code><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> *object</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * <a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-dup-evdo" title="mm_gdbus_modem_signal_dup_evdo ()">mm_gdbus_modem_signal_dup_evdo</a> (<em class="parameter"><code><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> *object</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * <a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-dup-gsm" title="mm_gdbus_modem_signal_dup_gsm ()">mm_gdbus_modem_signal_dup_gsm</a> (<em class="parameter"><code><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> *object</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * <a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-dup-umts" title="mm_gdbus_modem_signal_dup_umts ()">mm_gdbus_modem_signal_dup_umts</a> (<em class="parameter"><code><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> *object</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * <a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-dup-lte" title="mm_gdbus_modem_signal_dup_lte ()">mm_gdbus_modem_signal_dup_lte</a> (<em class="parameter"><code><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> *object</code></em>);
+
+<span class="returnvalue">void</span> <a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-call-setup" title="mm_gdbus_modem_signal_call_setup ()">mm_gdbus_modem_signal_call_setup</a> (<em class="parameter"><code><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> *proxy</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_rate</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-call-setup-finish" title="mm_gdbus_modem_signal_call_setup_finish ()">mm_gdbus_modem_signal_call_setup_finish</a>
+ (<em class="parameter"><code><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> *proxy</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-call-setup-sync" title="mm_gdbus_modem_signal_call_setup_sync ()">mm_gdbus_modem_signal_call_setup_sync</a>
+ (<em class="parameter"><code><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> *proxy</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_rate</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="MmGdbusModemSignal.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+ GInterface
+ +----MmGdbusModemSignal
+</pre>
+</div>
+<div class="refsect1">
+<a name="MmGdbusModemSignal.prerequisites"></a><h2>Prerequisites</h2>
+<p>
+MmGdbusModemSignal requires
+ <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>.</p>
+</div>
+<div class="refsect1">
+<a name="MmGdbusModemSignal.implementations"></a><h2>Known Implementations</h2>
+<p>
+MmGdbusModemSignal is implemented by
+ <a class="link" href="MMModemSignal.html" title="MMModemSignal">MMModemSignal</a>, <a class="link" href="MmGdbusModemSignalProxy.html" title="MmGdbusModemSignalProxy">MmGdbusModemSignalProxy</a> and <a class="link" href="MmGdbusModemSignalSkeleton.html" title="MmGdbusModemSignalSkeleton">MmGdbusModemSignalSkeleton</a>.</p>
+</div>
+<div class="refsect1">
+<a name="MmGdbusModemSignal.properties"></a><h2>Properties</h2>
+<pre class="synopsis">
+ "<a class="link" href="MmGdbusModemSignal.html#MmGdbusModemSignal--cdma" title='The "cdma" property'>cdma</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write
+ "<a class="link" href="MmGdbusModemSignal.html#MmGdbusModemSignal--evdo" title='The "evdo" property'>evdo</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write
+ "<a class="link" href="MmGdbusModemSignal.html#MmGdbusModemSignal--gsm" title='The "gsm" property'>gsm</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write
+ "<a class="link" href="MmGdbusModemSignal.html#MmGdbusModemSignal--lte" title='The "lte" property'>lte</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write
+ "<a class="link" href="MmGdbusModemSignal.html#MmGdbusModemSignal--rate" title='The "rate" property'>rate</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write
+ "<a class="link" href="MmGdbusModemSignal.html#MmGdbusModemSignal--umts" title='The "umts" property'>umts</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write
+</pre>
+</div>
+<div class="refsect1">
+<a name="MmGdbusModemSignal.signals"></a><h2>Signals</h2>
+<pre class="synopsis">
+ "<a class="link" href="MmGdbusModemSignal.html#MmGdbusModemSignal-handle-setup" title='The "handle-setup" signal'>handle-setup</a>" : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
+</pre>
+</div>
+<div class="refsect1">
+<a name="MmGdbusModemSignal.description"></a><h2>Description</h2>
+<p>
+This section contains code for working with the org.freedesktop.ModemManager1.Modem.Signal D-Bus interface in C.
+</p>
+</div>
+<div class="refsect1">
+<a name="MmGdbusModemSignal.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="MmGdbusModemSignal-struct"></a><h3>MmGdbusModemSignal</h3>
+<pre class="programlisting">typedef struct _MmGdbusModemSignal MmGdbusModemSignal;</pre>
+<p>
+Abstract interface type for the D-Bus interface org.freedesktop.ModemManager1.Modem.Signal.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="MmGdbusModemSignalIface"></a><h3>struct MmGdbusModemSignalIface</h3>
+<pre class="programlisting">struct MmGdbusModemSignalIface {
+ GTypeInterface parent_iface;
+
+
+ gboolean (*handle_setup) (
+ MmGdbusModemSignal *object,
+ GDBusMethodInvocation *invocation,
+ guint arg_rate);
+
+ GVariant * (*get_cdma) (MmGdbusModemSignal *object);
+
+ GVariant * (*get_evdo) (MmGdbusModemSignal *object);
+
+ GVariant * (*get_gsm) (MmGdbusModemSignal *object);
+
+ GVariant * (*get_lte) (MmGdbusModemSignal *object);
+
+ guint (*get_rate) (MmGdbusModemSignal *object);
+
+ GVariant * (*get_umts) (MmGdbusModemSignal *object);
+};
+</pre>
+<p>
+Virtual table for the D-Bus interface org.freedesktop.ModemManager1.Modem.Signal.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GTypeInterface"><span class="type">GTypeInterface</span></a> <em class="structfield"><code><a name="MmGdbusModemSignalIface.parent-iface"></a>parent_iface</code></em>;</span></p></td>
+<td>The parent interface.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="MmGdbusModemSignalIface.handle-setup"></a>handle_setup</code></em> ()</span></p></td>
+<td>Handler for the <a class="link" href="MmGdbusModemSignal.html#MmGdbusModemSignal-handle-setup" title='The "handle-setup" signal'><span class="type">"handle-setup"</span></a> signal.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="MmGdbusModemSignalIface.get-cdma"></a>get_cdma</code></em> ()</span></p></td>
+<td>Getter for the <a class="link" href="MmGdbusModemSignal.html#MmGdbusModemSignal--cdma" title='The "cdma" property'><span class="type">"cdma"</span></a> property.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="MmGdbusModemSignalIface.get-evdo"></a>get_evdo</code></em> ()</span></p></td>
+<td>Getter for the <a class="link" href="MmGdbusModemSignal.html#MmGdbusModemSignal--evdo" title='The "evdo" property'><span class="type">"evdo"</span></a> property.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="MmGdbusModemSignalIface.get-gsm"></a>get_gsm</code></em> ()</span></p></td>
+<td>Getter for the <a class="link" href="MmGdbusModemSignal.html#MmGdbusModemSignal--gsm" title='The "gsm" property'><span class="type">"gsm"</span></a> property.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="MmGdbusModemSignalIface.get-lte"></a>get_lte</code></em> ()</span></p></td>
+<td>Getter for the <a class="link" href="MmGdbusModemSignal.html#MmGdbusModemSignal--lte" title='The "lte" property'><span class="type">"lte"</span></a> property.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="MmGdbusModemSignalIface.get-rate"></a>get_rate</code></em> ()</span></p></td>
+<td>Getter for the <a class="link" href="MmGdbusModemSignal.html#MmGdbusModemSignal--rate" title='The "rate" property'><span class="type">"rate"</span></a> property.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="MmGdbusModemSignalIface.get-umts"></a>get_umts</code></em> ()</span></p></td>
+<td>Getter for the <a class="link" href="MmGdbusModemSignal.html#MmGdbusModemSignal--umts" title='The "umts" property'><span class="type">"umts"</span></a> property.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-signal-get-rate"></a><h3>mm_gdbus_modem_signal_get_rate ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> mm_gdbus_modem_signal_get_rate (<em class="parameter"><code><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> *object</code></em>);</pre>
+<p>
+Gets the value of the "Rate" D-Bus property.
+</p>
+<p>
+Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The property value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-signal-get-cdma"></a><h3>mm_gdbus_modem_signal_get_cdma ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_modem_signal_get_cdma (<em class="parameter"><code><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> *object</code></em>);</pre>
+<p>
+Gets the value of the "Cdma" D-Bus property.
+</p>
+<p>
+Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
+</p>
+<p>
+</p>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where <em class="parameter"><code>object</code></em> was constructed. Use <a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-dup-cdma" title="mm_gdbus_modem_signal_dup_cdma ()"><code class="function">mm_gdbus_modem_signal_dup_cdma()</code></a> if on another thread.</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The property value or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the property is not set. Do not free the returned value, it belongs to <em class="parameter"><code>object</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-signal-get-evdo"></a><h3>mm_gdbus_modem_signal_get_evdo ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_modem_signal_get_evdo (<em class="parameter"><code><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> *object</code></em>);</pre>
+<p>
+Gets the value of the "Evdo" D-Bus property.
+</p>
+<p>
+Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
+</p>
+<p>
+</p>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where <em class="parameter"><code>object</code></em> was constructed. Use <a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-dup-evdo" title="mm_gdbus_modem_signal_dup_evdo ()"><code class="function">mm_gdbus_modem_signal_dup_evdo()</code></a> if on another thread.</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The property value or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the property is not set. Do not free the returned value, it belongs to <em class="parameter"><code>object</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-signal-get-gsm"></a><h3>mm_gdbus_modem_signal_get_gsm ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_modem_signal_get_gsm (<em class="parameter"><code><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> *object</code></em>);</pre>
+<p>
+Gets the value of the "Gsm" D-Bus property.
+</p>
+<p>
+Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
+</p>
+<p>
+</p>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where <em class="parameter"><code>object</code></em> was constructed. Use <a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-dup-gsm" title="mm_gdbus_modem_signal_dup_gsm ()"><code class="function">mm_gdbus_modem_signal_dup_gsm()</code></a> if on another thread.</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The property value or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the property is not set. Do not free the returned value, it belongs to <em class="parameter"><code>object</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-signal-get-umts"></a><h3>mm_gdbus_modem_signal_get_umts ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_modem_signal_get_umts (<em class="parameter"><code><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> *object</code></em>);</pre>
+<p>
+Gets the value of the "Umts" D-Bus property.
+</p>
+<p>
+Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
+</p>
+<p>
+</p>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where <em class="parameter"><code>object</code></em> was constructed. Use <a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-dup-umts" title="mm_gdbus_modem_signal_dup_umts ()"><code class="function">mm_gdbus_modem_signal_dup_umts()</code></a> if on another thread.</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The property value or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the property is not set. Do not free the returned value, it belongs to <em class="parameter"><code>object</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-signal-get-lte"></a><h3>mm_gdbus_modem_signal_get_lte ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_modem_signal_get_lte (<em class="parameter"><code><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> *object</code></em>);</pre>
+<p>
+Gets the value of the "Lte" D-Bus property.
+</p>
+<p>
+Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
+</p>
+<p>
+</p>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where <em class="parameter"><code>object</code></em> was constructed. Use <a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-dup-lte" title="mm_gdbus_modem_signal_dup_lte ()"><code class="function">mm_gdbus_modem_signal_dup_lte()</code></a> if on another thread.</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The property value or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the property is not set. Do not free the returned value, it belongs to <em class="parameter"><code>object</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-signal-dup-cdma"></a><h3>mm_gdbus_modem_signal_dup_cdma ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_modem_signal_dup_cdma (<em class="parameter"><code><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> *object</code></em>);</pre>
+<p>
+Gets a copy of the "Cdma" D-Bus property.
+</p>
+<p>
+Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The property value or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the property is not set. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#g-variant-unref"><code class="function">g_variant_unref()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-signal-dup-evdo"></a><h3>mm_gdbus_modem_signal_dup_evdo ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_modem_signal_dup_evdo (<em class="parameter"><code><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> *object</code></em>);</pre>
+<p>
+Gets a copy of the "Evdo" D-Bus property.
+</p>
+<p>
+Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The property value or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the property is not set. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#g-variant-unref"><code class="function">g_variant_unref()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-signal-dup-gsm"></a><h3>mm_gdbus_modem_signal_dup_gsm ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_modem_signal_dup_gsm (<em class="parameter"><code><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> *object</code></em>);</pre>
+<p>
+Gets a copy of the "Gsm" D-Bus property.
+</p>
+<p>
+Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The property value or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the property is not set. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#g-variant-unref"><code class="function">g_variant_unref()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-signal-dup-umts"></a><h3>mm_gdbus_modem_signal_dup_umts ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_modem_signal_dup_umts (<em class="parameter"><code><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> *object</code></em>);</pre>
+<p>
+Gets a copy of the "Umts" D-Bus property.
+</p>
+<p>
+Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The property value or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the property is not set. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#g-variant-unref"><code class="function">g_variant_unref()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-signal-dup-lte"></a><h3>mm_gdbus_modem_signal_dup_lte ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_modem_signal_dup_lte (<em class="parameter"><code><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> *object</code></em>);</pre>
+<p>
+Gets a copy of the "Lte" D-Bus property.
+</p>
+<p>
+Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The property value or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the property is not set. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#g-variant-unref"><code class="function">g_variant_unref()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-signal-call-setup"></a><h3>mm_gdbus_modem_signal_call_setup ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> mm_gdbus_modem_signal_call_setup (<em class="parameter"><code><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> *proxy</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_rate</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>
+Asynchronously invokes the <GTKDOCLINK HREF="Setup"><code class="function">Setup()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
+You can then call <a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-call-setup-finish" title="mm_gdbus_modem_signal_call_setup_finish ()"><code class="function">mm_gdbus_modem_signal_call_setup_finish()</code></a> to get the result of the operation.
+</p>
+<p>
+See <a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-call-setup-sync" title="mm_gdbus_modem_signal_call_setup_sync ()"><code class="function">mm_gdbus_modem_signal_call_setup_sync()</code></a> for the synchronous, blocking version of this method.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemSignalProxy.html" title="MmGdbusModemSignalProxy"><span class="type">MmGdbusModemSignalProxy</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>arg_rate</code></em> :</span></p></td>
+<td>Argument to pass with the method invocation.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> to call when the request is satisfied or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>User data to pass to <em class="parameter"><code>callback</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-signal-call-setup-finish"></a><h3>mm_gdbus_modem_signal_call_setup_finish ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_gdbus_modem_signal_call_setup_finish
+ (<em class="parameter"><code><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> *proxy</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-call-setup" title="mm_gdbus_modem_signal_call_setup ()"><code class="function">mm_gdbus_modem_signal_call_setup()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemSignalProxy.html" title="MmGdbusModemSignalProxy"><span class="type">MmGdbusModemSignalProxy</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>The <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> obtained from the <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> passed to <a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-call-setup" title="mm_gdbus_modem_signal_call_setup ()"><code class="function">mm_gdbus_modem_signal_call_setup()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the call succeded, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if <em class="parameter"><code>error</code></em> is set. <span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-signal-call-setup-sync"></a><h3>mm_gdbus_modem_signal_call_setup_sync ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_gdbus_modem_signal_call_setup_sync
+ (<em class="parameter"><code><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> *proxy</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_rate</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Synchronously invokes the <GTKDOCLINK HREF="Setup"><code class="function">Setup()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+</p>
+<p>
+See <a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-call-setup" title="mm_gdbus_modem_signal_call_setup ()"><code class="function">mm_gdbus_modem_signal_call_setup()</code></a> for the asynchronous version of this method.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemSignalProxy.html" title="MmGdbusModemSignalProxy"><span class="type">MmGdbusModemSignalProxy</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>arg_rate</code></em> :</span></p></td>
+<td>Argument to pass with the method invocation.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the call succeded, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if <em class="parameter"><code>error</code></em> is set. <span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<div class="refsect1">
+<a name="MmGdbusModemSignal.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="MmGdbusModemSignal--cdma"></a><h3>The <code class="literal">"cdma"</code> property</h3>
+<pre class="programlisting"> "cdma" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write</pre>
+<p>
+Represents the D-Bus property "Cdma".
+</p>
+<p>
+Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
+</p>
+<p>Allowed values: GVariant&lt;a{sv}&gt;</p>
+<p>Default value: NULL</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="MmGdbusModemSignal--evdo"></a><h3>The <code class="literal">"evdo"</code> property</h3>
+<pre class="programlisting"> "evdo" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write</pre>
+<p>
+Represents the D-Bus property "Evdo".
+</p>
+<p>
+Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
+</p>
+<p>Allowed values: GVariant&lt;a{sv}&gt;</p>
+<p>Default value: NULL</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="MmGdbusModemSignal--gsm"></a><h3>The <code class="literal">"gsm"</code> property</h3>
+<pre class="programlisting"> "gsm" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write</pre>
+<p>
+Represents the D-Bus property "Gsm".
+</p>
+<p>
+Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
+</p>
+<p>Allowed values: GVariant&lt;a{sv}&gt;</p>
+<p>Default value: NULL</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="MmGdbusModemSignal--lte"></a><h3>The <code class="literal">"lte"</code> property</h3>
+<pre class="programlisting"> "lte" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write</pre>
+<p>
+Represents the D-Bus property "Lte".
+</p>
+<p>
+Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
+</p>
+<p>Allowed values: GVariant&lt;a{sv}&gt;</p>
+<p>Default value: NULL</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="MmGdbusModemSignal--rate"></a><h3>The <code class="literal">"rate"</code> property</h3>
+<pre class="programlisting"> "rate" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
+<p>
+Represents the D-Bus property "Rate".
+</p>
+<p>
+Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
+</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="MmGdbusModemSignal--umts"></a><h3>The <code class="literal">"umts"</code> property</h3>
+<pre class="programlisting"> "umts" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write</pre>
+<p>
+Represents the D-Bus property "Umts".
+</p>
+<p>
+Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
+</p>
+<p>Allowed values: GVariant&lt;a{sv}&gt;</p>
+<p>Default value: NULL</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="MmGdbusModemSignal.signal-details"></a><h2>Signal Details</h2>
+<div class="refsect2">
+<a name="MmGdbusModemSignal-handle-setup"></a><h3>The <code class="literal">"handle-setup"</code> signal</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> user_function (<a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> *object,
+ <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html"><span class="type">GDBusMethodInvocation</span></a> *invocation,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_rate,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
+<p>
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="Setup"><code class="function">Setup()</code></GTKDOCLINK> D-Bus method.
+</p>
+<p>
+If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_modem_signal_complete_setup()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>invocation</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html"><span class="type">GDBusMethodInvocation</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>arg_rate</code></em> :</span></p></td>
+<td>Argument passed by remote caller.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the invocation was handled, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> to let other signal handlers run.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.19</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusModemSignalProxy.html b/docs/reference/libmm-glib/html/MmGdbusModemSignalProxy.html
new file mode 100644
index 0000000..7192048
--- /dev/null
+++ b/docs/reference/libmm-glib/html/MmGdbusModemSignalProxy.html
@@ -0,0 +1,419 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>MmGdbusModemSignalProxy</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="libmm-glib Reference Manual">
+<link rel="up" href="pt02.html" title="Part II. Low level API">
+<link rel="prev" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal">
+<link rel="next" href="MmGdbusModemSignalSkeleton.html" title="MmGdbusModemSignalSkeleton">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="MmGdbusModemSignal.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="pt02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libmm-glib Reference Manual</th>
+<td><a accesskey="n" href="MmGdbusModemSignalSkeleton.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#MmGdbusModemSignalProxy.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#MmGdbusModemSignalProxy.description" class="shortcut">Description</a>
+  | 
+ <a href="#MmGdbusModemSignalProxy.object-hierarchy" class="shortcut">Object Hierarchy</a>
+  | 
+ <a href="#MmGdbusModemSignalProxy.implemented-interfaces" class="shortcut">Implemented Interfaces</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="MmGdbusModemSignalProxy"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="MmGdbusModemSignalProxy.top_of_page"></a>MmGdbusModemSignalProxy</span></h2>
+<p>MmGdbusModemSignalProxy</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="MmGdbusModemSignalProxy.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">struct <a class="link" href="MmGdbusModemSignalProxy.html#MmGdbusModemSignalProxy-struct" title="struct MmGdbusModemSignalProxy">MmGdbusModemSignalProxy</a>;
+
+<span class="returnvalue">void</span> <a class="link" href="MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new" title="mm_gdbus_modem_signal_proxy_new ()">mm_gdbus_modem_signal_proxy_new</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GDBusConnection.html"><span class="type">GDBusConnection</span></a> *connection</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> flags</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *object_path</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
+<a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="returnvalue">MmGdbusModemSignal</span></a> * <a class="link" href="MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new-finish" title="mm_gdbus_modem_signal_proxy_new_finish ()">mm_gdbus_modem_signal_proxy_new_finish</a>
+ (<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new-for-bus" title="mm_gdbus_modem_signal_proxy_new_for_bus ()">mm_gdbus_modem_signal_proxy_new_for_bus</a>
+ (<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GDBusConnection.html#GBusType"><span class="type">GBusType</span></a> bus_type</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> flags</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *object_path</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
+<a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="returnvalue">MmGdbusModemSignal</span></a> * <a class="link" href="MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new-for-bus-finish" title="mm_gdbus_modem_signal_proxy_new_for_bus_finish ()">mm_gdbus_modem_signal_proxy_new_for_bus_finish</a>
+ (<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+<a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="returnvalue">MmGdbusModemSignal</span></a> * <a class="link" href="MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new-for-bus-sync" title="mm_gdbus_modem_signal_proxy_new_for_bus_sync ()">mm_gdbus_modem_signal_proxy_new_for_bus_sync</a>
+ (<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GDBusConnection.html#GBusType"><span class="type">GBusType</span></a> bus_type</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> flags</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *object_path</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+<a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="returnvalue">MmGdbusModemSignal</span></a> * <a class="link" href="MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new-sync" title="mm_gdbus_modem_signal_proxy_new_sync ()">mm_gdbus_modem_signal_proxy_new_sync</a>
+ (<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GDBusConnection.html"><span class="type">GDBusConnection</span></a> *connection</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> flags</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *object_path</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="MmGdbusModemSignalProxy.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+ <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+ +----<a href="http://library.gnome.org/devel/gio/unstable/GDBusProxy.html">GDBusProxy</a>
+ +----MmGdbusModemSignalProxy
+ +----<a class="link" href="MMModemSignal.html" title="MMModemSignal">MMModemSignal</a>
+</pre>
+</div>
+<div class="refsect1">
+<a name="MmGdbusModemSignalProxy.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
+<p>
+MmGdbusModemSignalProxy implements
+ <a href="http://library.gnome.org/devel/gio/unstable/GDBusInterface.html">GDBusInterface</a>, <a href="http://library.gnome.org/devel/gio/unstable/GInitable.html">GInitable</a>, <a href="http://library.gnome.org/devel/gio/unstable/GAsyncInitable.html">GAsyncInitable</a> and <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal">MmGdbusModemSignal</a>.</p>
+</div>
+<div class="refsect1">
+<a name="MmGdbusModemSignalProxy.description"></a><h2>Description</h2>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="MmGdbusModemSignalProxy.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="MmGdbusModemSignalProxy-struct"></a><h3>struct MmGdbusModemSignalProxy</h3>
+<pre class="programlisting">struct MmGdbusModemSignalProxy;</pre>
+<p>
+The <a class="link" href="MmGdbusModemSignalProxy.html" title="MmGdbusModemSignalProxy"><span class="type">MmGdbusModemSignalProxy</span></a> structure contains only private data and should only be accessed using the provided API.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-signal-proxy-new"></a><h3>mm_gdbus_modem_signal_proxy_new ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> mm_gdbus_modem_signal_proxy_new (<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GDBusConnection.html"><span class="type">GDBusConnection</span></a> *connection</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> flags</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *object_path</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>
+Asynchronously creates a proxy for the D-Bus interface org.freedesktop.ModemManager1.Modem.Signal. See <a href="http://library.gnome.org/devel/gio/unstable/GDBusProxy.html#g-dbus-proxy-new"><code class="function">g_dbus_proxy_new()</code></a> for more details.
+</p>
+<p>
+When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
+You can then call <a class="link" href="MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new-finish" title="mm_gdbus_modem_signal_proxy_new_finish ()"><code class="function">mm_gdbus_modem_signal_proxy_new_finish()</code></a> to get the result of the operation.
+</p>
+<p>
+See <a class="link" href="MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new-sync" title="mm_gdbus_modem_signal_proxy_new_sync ()"><code class="function">mm_gdbus_modem_signal_proxy_new_sync()</code></a> for the synchronous, blocking version of this constructor.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GDBusConnection.html"><span class="type">GDBusConnection</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>Flags from the <a href="http://library.gnome.org/devel/gio/unstable/GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> enumeration.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>A bus name (well-known or unique) or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>connection</code></em> is not a message bus connection. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object_path</code></em> :</span></p></td>
+<td>An object path.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> to call when the request is satisfied.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>User data to pass to <em class="parameter"><code>callback</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-signal-proxy-new-finish"></a><h3>mm_gdbus_modem_signal_proxy_new_finish ()</h3>
+<pre class="programlisting"><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="returnvalue">MmGdbusModemSignal</span></a> * mm_gdbus_modem_signal_proxy_new_finish
+ (<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <a class="link" href="MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new" title="mm_gdbus_modem_signal_proxy_new ()"><code class="function">mm_gdbus_modem_signal_proxy_new()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>The <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> obtained from the <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> passed to <a class="link" href="MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new" title="mm_gdbus_modem_signal_proxy_new ()"><code class="function">mm_gdbus_modem_signal_proxy_new()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The constructed proxy object or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>error</code></em> is set. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> MmGdbusModemSignalProxy]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-signal-proxy-new-for-bus"></a><h3>mm_gdbus_modem_signal_proxy_new_for_bus ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> mm_gdbus_modem_signal_proxy_new_for_bus
+ (<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GDBusConnection.html#GBusType"><span class="type">GBusType</span></a> bus_type</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> flags</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *object_path</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>
+Like <a class="link" href="MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new" title="mm_gdbus_modem_signal_proxy_new ()"><code class="function">mm_gdbus_modem_signal_proxy_new()</code></a> but takes a <a href="http://library.gnome.org/devel/gio/unstable/GDBusConnection.html#GBusType"><span class="type">GBusType</span></a> instead of a <a href="http://library.gnome.org/devel/gio/unstable/GDBusConnection.html"><span class="type">GDBusConnection</span></a>.
+</p>
+<p>
+When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
+You can then call <a class="link" href="MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new-for-bus-finish" title="mm_gdbus_modem_signal_proxy_new_for_bus_finish ()"><code class="function">mm_gdbus_modem_signal_proxy_new_for_bus_finish()</code></a> to get the result of the operation.
+</p>
+<p>
+See <a class="link" href="MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new-for-bus-sync" title="mm_gdbus_modem_signal_proxy_new_for_bus_sync ()"><code class="function">mm_gdbus_modem_signal_proxy_new_for_bus_sync()</code></a> for the synchronous, blocking version of this constructor.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus_type</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GDBusConnection.html#GBusType"><span class="type">GBusType</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>Flags from the <a href="http://library.gnome.org/devel/gio/unstable/GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> enumeration.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>A bus name (well-known or unique).</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object_path</code></em> :</span></p></td>
+<td>An object path.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> to call when the request is satisfied.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>User data to pass to <em class="parameter"><code>callback</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-signal-proxy-new-for-bus-finish"></a><h3>mm_gdbus_modem_signal_proxy_new_for_bus_finish ()</h3>
+<pre class="programlisting"><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="returnvalue">MmGdbusModemSignal</span></a> * mm_gdbus_modem_signal_proxy_new_for_bus_finish
+ (<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <a class="link" href="MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new-for-bus" title="mm_gdbus_modem_signal_proxy_new_for_bus ()"><code class="function">mm_gdbus_modem_signal_proxy_new_for_bus()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>The <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> obtained from the <a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> passed to <a class="link" href="MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new-for-bus" title="mm_gdbus_modem_signal_proxy_new_for_bus ()"><code class="function">mm_gdbus_modem_signal_proxy_new_for_bus()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The constructed proxy object or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>error</code></em> is set. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> MmGdbusModemSignalProxy]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-signal-proxy-new-for-bus-sync"></a><h3>mm_gdbus_modem_signal_proxy_new_for_bus_sync ()</h3>
+<pre class="programlisting"><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="returnvalue">MmGdbusModemSignal</span></a> * mm_gdbus_modem_signal_proxy_new_for_bus_sync
+ (<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GDBusConnection.html#GBusType"><span class="type">GBusType</span></a> bus_type</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> flags</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *object_path</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Like <a class="link" href="MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new-sync" title="mm_gdbus_modem_signal_proxy_new_sync ()"><code class="function">mm_gdbus_modem_signal_proxy_new_sync()</code></a> but takes a <a href="http://library.gnome.org/devel/gio/unstable/GDBusConnection.html#GBusType"><span class="type">GBusType</span></a> instead of a <a href="http://library.gnome.org/devel/gio/unstable/GDBusConnection.html"><span class="type">GDBusConnection</span></a>.
+</p>
+<p>
+The calling thread is blocked until a reply is received.
+</p>
+<p>
+See <a class="link" href="MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new-for-bus" title="mm_gdbus_modem_signal_proxy_new_for_bus ()"><code class="function">mm_gdbus_modem_signal_proxy_new_for_bus()</code></a> for the asynchronous version of this constructor.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus_type</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GDBusConnection.html#GBusType"><span class="type">GBusType</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>Flags from the <a href="http://library.gnome.org/devel/gio/unstable/GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> enumeration.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>A bus name (well-known or unique).</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object_path</code></em> :</span></p></td>
+<td>An object path.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The constructed proxy object or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>error</code></em> is set. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> MmGdbusModemSignalProxy]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-signal-proxy-new-sync"></a><h3>mm_gdbus_modem_signal_proxy_new_sync ()</h3>
+<pre class="programlisting"><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="returnvalue">MmGdbusModemSignal</span></a> * mm_gdbus_modem_signal_proxy_new_sync
+ (<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GDBusConnection.html"><span class="type">GDBusConnection</span></a> *connection</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> flags</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *object_path</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>
+Synchronously creates a proxy for the D-Bus interface org.freedesktop.ModemManager1.Modem.Signal. See <a href="http://library.gnome.org/devel/gio/unstable/GDBusProxy.html#g-dbus-proxy-new-sync"><code class="function">g_dbus_proxy_new_sync()</code></a> for more details.
+</p>
+<p>
+The calling thread is blocked until a reply is received.
+</p>
+<p>
+See <a class="link" href="MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new" title="mm_gdbus_modem_signal_proxy_new ()"><code class="function">mm_gdbus_modem_signal_proxy_new()</code></a> for the asynchronous version of this constructor.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GDBusConnection.html"><span class="type">GDBusConnection</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>Flags from the <a href="http://library.gnome.org/devel/gio/unstable/GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> enumeration.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>A bus name (well-known or unique) or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>connection</code></em> is not a message bus connection. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object_path</code></em> :</span></p></td>
+<td>An object path.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The constructed proxy object or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>error</code></em> is set. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> MmGdbusModemSignalProxy]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.19</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusModemSignalSkeleton.html b/docs/reference/libmm-glib/html/MmGdbusModemSignalSkeleton.html
new file mode 100644
index 0000000..ed3d5c4
--- /dev/null
+++ b/docs/reference/libmm-glib/html/MmGdbusModemSignalSkeleton.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>MmGdbusModemSignalSkeleton</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="libmm-glib Reference Manual">
+<link rel="up" href="pt02.html" title="Part II. Low level API">
+<link rel="prev" href="MmGdbusModemSignalProxy.html" title="MmGdbusModemSignalProxy">
+<link rel="next" href="MmGdbusModemOma.html" title="MmGdbusModemOma">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="MmGdbusModemSignalProxy.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="pt02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libmm-glib Reference Manual</th>
+<td><a accesskey="n" href="MmGdbusModemOma.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#MmGdbusModemSignalSkeleton.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#MmGdbusModemSignalSkeleton.description" class="shortcut">Description</a>
+  | 
+ <a href="#MmGdbusModemSignalSkeleton.object-hierarchy" class="shortcut">Object Hierarchy</a>
+  | 
+ <a href="#MmGdbusModemSignalSkeleton.implemented-interfaces" class="shortcut">Implemented Interfaces</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="MmGdbusModemSignalSkeleton"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="MmGdbusModemSignalSkeleton.top_of_page"></a>MmGdbusModemSignalSkeleton</span></h2>
+<p>MmGdbusModemSignalSkeleton</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="MmGdbusModemSignalSkeleton.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">struct <a class="link" href="MmGdbusModemSignalSkeleton.html#MmGdbusModemSignalSkeleton-struct" title="struct MmGdbusModemSignalSkeleton">MmGdbusModemSignalSkeleton</a>;
+
+<a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="returnvalue">MmGdbusModemSignal</span></a> * <a class="link" href="MmGdbusModemSignalSkeleton.html#mm-gdbus-modem-signal-skeleton-new" title="mm_gdbus_modem_signal_skeleton_new ()">mm_gdbus_modem_signal_skeleton_new</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="MmGdbusModemSignalSkeleton.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+ <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+ +----<a href="http://library.gnome.org/devel/gio/unstable/GDBusInterfaceSkeleton.html">GDBusInterfaceSkeleton</a>
+ +----MmGdbusModemSignalSkeleton
+</pre>
+</div>
+<div class="refsect1">
+<a name="MmGdbusModemSignalSkeleton.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
+<p>
+MmGdbusModemSignalSkeleton implements
+ <a href="http://library.gnome.org/devel/gio/unstable/GDBusInterface.html">GDBusInterface</a> and <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal">MmGdbusModemSignal</a>.</p>
+</div>
+<div class="refsect1">
+<a name="MmGdbusModemSignalSkeleton.description"></a><h2>Description</h2>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="MmGdbusModemSignalSkeleton.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="MmGdbusModemSignalSkeleton-struct"></a><h3>struct MmGdbusModemSignalSkeleton</h3>
+<pre class="programlisting">struct MmGdbusModemSignalSkeleton;</pre>
+<p>
+The <a class="link" href="MmGdbusModemSignalSkeleton.html" title="MmGdbusModemSignalSkeleton"><span class="type">MmGdbusModemSignalSkeleton</span></a> structure contains only private data and should only be accessed using the provided API.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-modem-signal-skeleton-new"></a><h3>mm_gdbus_modem_signal_skeleton_new ()</h3>
+<pre class="programlisting"><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="returnvalue">MmGdbusModemSignal</span></a> * mm_gdbus_modem_signal_skeleton_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Creates a skeleton object for the D-Bus interface org.freedesktop.ModemManager1.Modem.Signal.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The skeleton object. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> MmGdbusModemSignalSkeleton]</span>
+</td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.19</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusModemSimple.html b/docs/reference/libmm-glib/html/MmGdbusModemSimple.html
index 52a5c09..b2a791f 100644
--- a/docs/reference/libmm-glib/html/MmGdbusModemSimple.html
+++ b/docs/reference/libmm-glib/html/MmGdbusModemSimple.html
@@ -6,15 +6,15 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="libmm-glib Reference Manual">
<link rel="up" href="pt02.html" title="Part II. Low level API">
-<link rel="prev" href="MmGdbusModemFirmwareSkeleton.html" title="MmGdbusModemFirmwareSkeleton">
+<link rel="prev" href="MmGdbusModemOmaSkeleton.html" title="MmGdbusModemOmaSkeleton">
<link rel="next" href="MmGdbusModemSimpleProxy.html" title="MmGdbusModemSimpleProxy">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
-<td><a accesskey="p" href="MmGdbusModemFirmwareSkeleton.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="MmGdbusModemOmaSkeleton.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="pt02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">libmm-glib Reference Manual</th>
@@ -196,7 +196,7 @@ Virtual table for the D-Bus interface org.freedesktop.ModemManager1.Modem.Simple
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Simple.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Simple.Connect"><GTKDOCLINK HREF="Connect"><code class="function">Connect()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="Connect"><code class="function">Connect()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusModemSimple.html#mm-gdbus-modem-simple-call-connect-finish" title="mm_gdbus_modem_simple_call_connect_finish ()"><code class="function">mm_gdbus_modem_simple_call_connect_finish()</code></a> to get the result of the operation.
</p>
@@ -286,7 +286,7 @@ Finishes an operation started with <a class="link" href="MmGdbusModemSimple.html
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Simple.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Simple.Connect"><GTKDOCLINK HREF="Connect"><code class="function">Connect()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="Connect"><code class="function">Connect()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusModemSimple.html#mm-gdbus-modem-simple-call-connect" title="mm_gdbus_modem_simple_call_connect ()"><code class="function">mm_gdbus_modem_simple_call_connect()</code></a> for the asynchronous version of this method.
@@ -338,7 +338,7 @@ See <a class="link" href="MmGdbusModemSimple.html#mm-gdbus-modem-simple-call-con
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Simple.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Simple.Disconnect"><GTKDOCLINK HREF="Disconnect"><code class="function">Disconnect()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="Disconnect"><code class="function">Disconnect()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusModemSimple.html#mm-gdbus-modem-simple-call-disconnect-finish" title="mm_gdbus_modem_simple_call_disconnect_finish ()"><code class="function">mm_gdbus_modem_simple_call_disconnect_finish()</code></a> to get the result of the operation.
</p>
@@ -421,7 +421,7 @@ Finishes an operation started with <a class="link" href="MmGdbusModemSimple.html
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Simple.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Simple.Disconnect"><GTKDOCLINK HREF="Disconnect"><code class="function">Disconnect()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="Disconnect"><code class="function">Disconnect()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusModemSimple.html#mm-gdbus-modem-simple-call-disconnect" title="mm_gdbus_modem_simple_call_disconnect ()"><code class="function">mm_gdbus_modem_simple_call_disconnect()</code></a> for the asynchronous version of this method.
@@ -467,7 +467,7 @@ See <a class="link" href="MmGdbusModemSimple.html#mm-gdbus-modem-simple-call-dis
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Simple.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Simple.GetStatus"><GTKDOCLINK HREF="GetStatus"><code class="function">GetStatus()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="GetStatus"><code class="function">GetStatus()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusModemSimple.html#mm-gdbus-modem-simple-call-get-status-finish" title="mm_gdbus_modem_simple_call_get_status_finish ()"><code class="function">mm_gdbus_modem_simple_call_get_status_finish()</code></a> to get the result of the operation.
</p>
@@ -552,7 +552,7 @@ Finishes an operation started with <a class="link" href="MmGdbusModemSimple.html
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Simple.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Simple.GetStatus"><GTKDOCLINK HREF="GetStatus"><code class="function">GetStatus()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="GetStatus"><code class="function">GetStatus()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusModemSimple.html#mm-gdbus-modem-simple-call-get-status" title="mm_gdbus_modem_simple_call_get_status ()"><code class="function">mm_gdbus_modem_simple_call_get_status()</code></a> for the asynchronous version of this method.
@@ -600,7 +600,7 @@ See <a class="link" href="MmGdbusModemSimple.html#mm-gdbus-modem-simple-call-get
<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *arg_properties,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Simple.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Simple.Connect"><GTKDOCLINK HREF="Connect"><code class="function">Connect()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="Connect"><code class="function">Connect()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_modem_simple_complete_connect()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -643,7 +643,7 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *arg_bearer,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Simple.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Simple.Disconnect"><GTKDOCLINK HREF="Disconnect"><code class="function">Disconnect()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="Disconnect"><code class="function">Disconnect()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_modem_simple_complete_disconnect()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -685,7 +685,7 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
<a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html"><span class="type">GDBusMethodInvocation</span></a> *invocation,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Simple.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Simple.GetStatus"><GTKDOCLINK HREF="GetStatus"><code class="function">GetStatus()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="GetStatus"><code class="function">GetStatus()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_modem_simple_complete_get_status()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -720,6 +720,6 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusModemSimpleProxy.html b/docs/reference/libmm-glib/html/MmGdbusModemSimpleProxy.html
index aad87b9..a650e08 100644
--- a/docs/reference/libmm-glib/html/MmGdbusModemSimpleProxy.html
+++ b/docs/reference/libmm-glib/html/MmGdbusModemSimpleProxy.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusModemSimple.html" title="MmGdbusModemSimple">
<link rel="next" href="MmGdbusModemSimpleSkeleton.html" title="MmGdbusModemSimpleSkeleton">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -414,6 +414,6 @@ See <a class="link" href="MmGdbusModemSimpleProxy.html#mm-gdbus-modem-simple-pro
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusModemSimpleSkeleton.html b/docs/reference/libmm-glib/html/MmGdbusModemSimpleSkeleton.html
index d16c0b4..4a1484b 100644
--- a/docs/reference/libmm-glib/html/MmGdbusModemSimpleSkeleton.html
+++ b/docs/reference/libmm-glib/html/MmGdbusModemSimpleSkeleton.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusModemSimpleProxy.html" title="MmGdbusModemSimpleProxy">
<link rel="next" href="MmGdbusBearer.html" title="MmGdbusBearer">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -97,6 +97,6 @@ Creates a skeleton object for the D-Bus interface org.freedesktop.ModemManager1.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusModemSkeleton.html b/docs/reference/libmm-glib/html/MmGdbusModemSkeleton.html
index 3767fe2..79e138f 100644
--- a/docs/reference/libmm-glib/html/MmGdbusModemSkeleton.html
+++ b/docs/reference/libmm-glib/html/MmGdbusModemSkeleton.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusModemProxy.html" title="MmGdbusModemProxy">
<link rel="next" href="MmGdbusModem3gpp.html" title="MmGdbusModem3gpp">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -97,6 +97,6 @@ Creates a skeleton object for the D-Bus interface org.freedesktop.ModemManager1.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusModemTime.html b/docs/reference/libmm-glib/html/MmGdbusModemTime.html
index 33fb97e..00029db 100644
--- a/docs/reference/libmm-glib/html/MmGdbusModemTime.html
+++ b/docs/reference/libmm-glib/html/MmGdbusModemTime.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusModemMessagingSkeleton.html" title="MmGdbusModemMessagingSkeleton">
<link rel="next" href="MmGdbusModemTimeProxy.html" title="MmGdbusModemTimeProxy">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -172,7 +172,7 @@ Virtual table for the D-Bus interface org.freedesktop.ModemManager1.Modem.Time.
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_modem_time_get_network_timezone
(<em class="parameter"><code><a class="link" href="MmGdbusModemTime.html" title="MmGdbusModemTime"><span class="type">MmGdbusModemTime</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Time.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Time.NetworkTimezone">"NetworkTimezone"</a> D-Bus property.
+Gets the value of the "NetworkTimezone" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -207,7 +207,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_modem_time_dup_network_timezone
(<em class="parameter"><code><a class="link" href="MmGdbusModemTime.html" title="MmGdbusModemTime"><span class="type">MmGdbusModemTime</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Time.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Time.NetworkTimezone">"NetworkTimezone"</a> D-Bus property.
+Gets a copy of the "NetworkTimezone" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -239,7 +239,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Time.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Time.GetNetworkTime"><GTKDOCLINK HREF="GetNetworkTime"><code class="function">GetNetworkTime()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="GetNetworkTime"><code class="function">GetNetworkTime()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusModemTime.html#mm-gdbus-modem-time-call-get-network-time-finish" title="mm_gdbus_modem_time_call_get_network_time_finish ()"><code class="function">mm_gdbus_modem_time_call_get_network_time_finish()</code></a> to get the result of the operation.
</p>
@@ -324,7 +324,7 @@ Finishes an operation started with <a class="link" href="MmGdbusModemTime.html#m
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Time.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Time.GetNetworkTime"><GTKDOCLINK HREF="GetNetworkTime"><code class="function">GetNetworkTime()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="GetNetworkTime"><code class="function">GetNetworkTime()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusModemTime.html#mm-gdbus-modem-time-call-get-network-time" title="mm_gdbus_modem_time_call_get_network_time ()"><code class="function">mm_gdbus_modem_time_call_get_network_time()</code></a> for the asynchronous version of this method.
@@ -369,7 +369,7 @@ See <a class="link" href="MmGdbusModemTime.html#mm-gdbus-modem-time-call-get-net
<a name="MmGdbusModemTime--network-timezone"></a><h3>The <code class="literal">"network-timezone"</code> property</h3>
<pre class="programlisting"> "network-timezone" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Time.html#gdbus-property-org-freedesktop-ModemManager1-Modem-Time.NetworkTimezone">"NetworkTimezone"</a>.
+Represents the D-Bus property "NetworkTimezone".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -386,7 +386,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html"><span class="type">GDBusMethodInvocation</span></a> *invocation,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Time.html#gdbus-method-org-freedesktop-ModemManager1-Modem-Time.GetNetworkTime"><GTKDOCLINK HREF="GetNetworkTime"><code class="function">GetNetworkTime()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="GetNetworkTime"><code class="function">GetNetworkTime()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_modem_time_complete_get_network_time()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -424,7 +424,7 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *arg_time,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-On the client-side, this signal is emitted whenever the D-Bus signal <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Time.html#gdbus-signal-org-freedesktop-ModemManager1-Modem-Time.NetworkTimeChanged">"NetworkTimeChanged"</a> is received.
+On the client-side, this signal is emitted whenever the D-Bus signal "NetworkTimeChanged" is received.
</p>
<p>
On the service-side, this signal can be used with e.g. <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#g-signal-emit-by-name"><code class="function">g_signal_emit_by_name()</code></a> to make the object emit the D-Bus signal.
@@ -454,6 +454,6 @@ On the service-side, this signal can be used with e.g. <a href="http://library.g
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusModemTimeProxy.html b/docs/reference/libmm-glib/html/MmGdbusModemTimeProxy.html
index 711685c..7fa843b 100644
--- a/docs/reference/libmm-glib/html/MmGdbusModemTimeProxy.html
+++ b/docs/reference/libmm-glib/html/MmGdbusModemTimeProxy.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusModemTime.html" title="MmGdbusModemTime">
<link rel="next" href="MmGdbusModemTimeSkeleton.html" title="MmGdbusModemTimeSkeleton">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -412,6 +412,6 @@ See <a class="link" href="MmGdbusModemTimeProxy.html#mm-gdbus-modem-time-proxy-n
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusModemTimeSkeleton.html b/docs/reference/libmm-glib/html/MmGdbusModemTimeSkeleton.html
index 1733847..75175f9 100644
--- a/docs/reference/libmm-glib/html/MmGdbusModemTimeSkeleton.html
+++ b/docs/reference/libmm-glib/html/MmGdbusModemTimeSkeleton.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusModemTimeProxy.html" title="MmGdbusModemTimeProxy">
<link rel="next" href="MmGdbusModemFirmware.html" title="MmGdbusModemFirmware">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -97,6 +97,6 @@ Creates a skeleton object for the D-Bus interface org.freedesktop.ModemManager1.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusObject.html b/docs/reference/libmm-glib/html/MmGdbusObject.html
index 3511415..e691110 100644
--- a/docs/reference/libmm-glib/html/MmGdbusObject.html
+++ b/docs/reference/libmm-glib/html/MmGdbusObject.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusObjectManagerClient.html" title="MmGdbusObjectManagerClient">
<link rel="next" href="MmGdbusObjectProxy.html" title="MmGdbusObjectProxy">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -72,8 +72,12 @@ struct <a class="link" href="MmGdbusObject.html#MmGdbusObjectIface"
(<em class="parameter"><code><a class="link" href="MmGdbusObject.html" title="MmGdbusObject"><span class="type">MmGdbusObject</span></a> *object</code></em>);
<a class="link" href="MmGdbusModemFirmware.html" title="MmGdbusModemFirmware"><span class="returnvalue">MmGdbusModemFirmware</span></a> * <a class="link" href="MmGdbusObject.html#mm-gdbus-object-get-modem-firmware" title="mm_gdbus_object_get_modem_firmware ()">mm_gdbus_object_get_modem_firmware</a>
(<em class="parameter"><code><a class="link" href="MmGdbusObject.html" title="MmGdbusObject"><span class="type">MmGdbusObject</span></a> *object</code></em>);
+<a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="returnvalue">MmGdbusModemOma</span></a> * <a class="link" href="MmGdbusObject.html#mm-gdbus-object-peek-modem-oma" title="mm_gdbus_object_peek_modem_oma ()">mm_gdbus_object_peek_modem_oma</a> (<em class="parameter"><code><a class="link" href="MmGdbusObject.html" title="MmGdbusObject"><span class="type">MmGdbusObject</span></a> *object</code></em>);
+<a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="returnvalue">MmGdbusModemOma</span></a> * <a class="link" href="MmGdbusObject.html#mm-gdbus-object-get-modem-oma" title="mm_gdbus_object_get_modem_oma ()">mm_gdbus_object_get_modem_oma</a> (<em class="parameter"><code><a class="link" href="MmGdbusObject.html" title="MmGdbusObject"><span class="type">MmGdbusObject</span></a> *object</code></em>);
<a class="link" href="MmGdbusModemSimple.html" title="MmGdbusModemSimple"><span class="returnvalue">MmGdbusModemSimple</span></a> * <a class="link" href="MmGdbusObject.html#mm-gdbus-object-peek-modem-simple" title="mm_gdbus_object_peek_modem_simple ()">mm_gdbus_object_peek_modem_simple</a> (<em class="parameter"><code><a class="link" href="MmGdbusObject.html" title="MmGdbusObject"><span class="type">MmGdbusObject</span></a> *object</code></em>);
<a class="link" href="MmGdbusModemSimple.html" title="MmGdbusModemSimple"><span class="returnvalue">MmGdbusModemSimple</span></a> * <a class="link" href="MmGdbusObject.html#mm-gdbus-object-get-modem-simple" title="mm_gdbus_object_get_modem_simple ()">mm_gdbus_object_get_modem_simple</a> (<em class="parameter"><code><a class="link" href="MmGdbusObject.html" title="MmGdbusObject"><span class="type">MmGdbusObject</span></a> *object</code></em>);
+<a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="returnvalue">MmGdbusModemSignal</span></a> * <a class="link" href="MmGdbusObject.html#mm-gdbus-object-peek-modem-signal" title="mm_gdbus_object_peek_modem_signal ()">mm_gdbus_object_peek_modem_signal</a> (<em class="parameter"><code><a class="link" href="MmGdbusObject.html" title="MmGdbusObject"><span class="type">MmGdbusObject</span></a> *object</code></em>);
+<a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="returnvalue">MmGdbusModemSignal</span></a> * <a class="link" href="MmGdbusObject.html#mm-gdbus-object-get-modem-signal" title="mm_gdbus_object_get_modem_signal ()">mm_gdbus_object_get_modem_signal</a> (<em class="parameter"><code><a class="link" href="MmGdbusObject.html" title="MmGdbusObject"><span class="type">MmGdbusObject</span></a> *object</code></em>);
</pre>
</div>
<div class="refsect1">
@@ -103,6 +107,8 @@ MmGdbusObject is implemented by
"<a class="link" href="MmGdbusObject.html#MmGdbusObject--modem-firmware" title='The "modem-firmware" property'>modem-firmware</a>" <a class="link" href="MmGdbusModemFirmware.html" title="MmGdbusModemFirmware"><span class="type">MmGdbusModemFirmware</span></a>* : Read / Write
"<a class="link" href="MmGdbusObject.html#MmGdbusObject--modem-location" title='The "modem-location" property'>modem-location</a>" <a class="link" href="MmGdbusModemLocation.html" title="MmGdbusModemLocation"><span class="type">MmGdbusModemLocation</span></a>* : Read / Write
"<a class="link" href="MmGdbusObject.html#MmGdbusObject--modem-messaging" title='The "modem-messaging" property'>modem-messaging</a>" <a class="link" href="MmGdbusModemMessaging.html" title="MmGdbusModemMessaging"><span class="type">MmGdbusModemMessaging</span></a>* : Read / Write
+ "<a class="link" href="MmGdbusObject.html#MmGdbusObject--modem-oma" title='The "modem-oma" property'>modem-oma</a>" <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a>* : Read / Write
+ "<a class="link" href="MmGdbusObject.html#MmGdbusObject--modem-signal" title='The "modem-signal" property'>modem-signal</a>" <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a>* : Read / Write
"<a class="link" href="MmGdbusObject.html#MmGdbusObject--modem-simple" title='The "modem-simple" property'>modem-simple</a>" <a class="link" href="MmGdbusModemSimple.html" title="MmGdbusModemSimple"><span class="type">MmGdbusModemSimple</span></a>* : Read / Write
"<a class="link" href="MmGdbusObject.html#MmGdbusObject--modem-time" title='The "modem-time" property'>modem-time</a>" <a class="link" href="MmGdbusModemTime.html" title="MmGdbusModemTime"><span class="type">MmGdbusModemTime</span></a>* : Read / Write
"<a class="link" href="MmGdbusObject.html#MmGdbusObject--modem3gpp" title='The "modem3gpp" property'>modem3gpp</a>" <a class="link" href="MmGdbusModem3gpp.html" title="MmGdbusModem3gpp"><span class="type">MmGdbusModem3gpp</span></a>* : Read / Write
@@ -603,6 +609,62 @@ Gets the <a class="link" href="MmGdbusModemFirmware.html" title="MmGdbusModemFir
</div>
<hr>
<div class="refsect2">
+<a name="mm-gdbus-object-peek-modem-oma"></a><h3>mm_gdbus_object_peek_modem_oma ()</h3>
+<pre class="programlisting"><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="returnvalue">MmGdbusModemOma</span></a> * mm_gdbus_object_peek_modem_oma (<em class="parameter"><code><a class="link" href="MmGdbusObject.html" title="MmGdbusObject"><span class="type">MmGdbusObject</span></a> *object</code></em>);</pre>
+<p>
+Like <a class="link" href="MmGdbusObject.html#mm-gdbus-object-get-modem-oma" title="mm_gdbus_object_get_modem_oma ()"><code class="function">mm_gdbus_object_get_modem_oma()</code></a> but doesn't increase the reference count on the returned object.
+</p>
+<p>
+</p>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>It is not safe to use the returned object if you are on another thread than the one where the <a href="http://library.gnome.org/devel/gio/unstable/GDBusObjectManagerClient.html"><span class="type">GDBusObjectManagerClient</span></a> or <a href="http://library.gnome.org/devel/gio/unstable/GDBusObjectManagerServer.html"><span class="type">GDBusObjectManagerServer</span></a> for <em class="parameter"><code>object</code></em> is running.</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusObject.html" title="MmGdbusObject"><span class="type">MmGdbusObject</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>object</code></em> does not implement the interface. Do not free the returned object, it is owned by <em class="parameter"><code>object</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-object-get-modem-oma"></a><h3>mm_gdbus_object_get_modem_oma ()</h3>
+<pre class="programlisting"><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="returnvalue">MmGdbusModemOma</span></a> * mm_gdbus_object_get_modem_oma (<em class="parameter"><code><a class="link" href="MmGdbusObject.html" title="MmGdbusObject"><span class="type">MmGdbusObject</span></a> *object</code></em>);</pre>
+<p>
+Gets the <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> instance for the D-Bus interface org.freedesktop.ModemManager1.Modem.Oma on <em class="parameter"><code>object</code></em>, if any.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusObject.html" title="MmGdbusObject"><span class="type">MmGdbusObject</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> that must be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>object</code></em> does not implement the interface. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
<a name="mm-gdbus-object-peek-modem-simple"></a><h3>mm_gdbus_object_peek_modem_simple ()</h3>
<pre class="programlisting"><a class="link" href="MmGdbusModemSimple.html" title="MmGdbusModemSimple"><span class="returnvalue">MmGdbusModemSimple</span></a> * mm_gdbus_object_peek_modem_simple (<em class="parameter"><code><a class="link" href="MmGdbusObject.html" title="MmGdbusObject"><span class="type">MmGdbusObject</span></a> *object</code></em>);</pre>
<p>
@@ -657,6 +719,62 @@ Gets the <a class="link" href="MmGdbusModemSimple.html" title="MmGdbusModemSimpl
</tbody>
</table></div>
</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-object-peek-modem-signal"></a><h3>mm_gdbus_object_peek_modem_signal ()</h3>
+<pre class="programlisting"><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="returnvalue">MmGdbusModemSignal</span></a> * mm_gdbus_object_peek_modem_signal (<em class="parameter"><code><a class="link" href="MmGdbusObject.html" title="MmGdbusObject"><span class="type">MmGdbusObject</span></a> *object</code></em>);</pre>
+<p>
+Like <a class="link" href="MmGdbusObject.html#mm-gdbus-object-get-modem-signal" title="mm_gdbus_object_get_modem_signal ()"><code class="function">mm_gdbus_object_get_modem_signal()</code></a> but doesn't increase the reference count on the returned object.
+</p>
+<p>
+</p>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>It is not safe to use the returned object if you are on another thread than the one where the <a href="http://library.gnome.org/devel/gio/unstable/GDBusObjectManagerClient.html"><span class="type">GDBusObjectManagerClient</span></a> or <a href="http://library.gnome.org/devel/gio/unstable/GDBusObjectManagerServer.html"><span class="type">GDBusObjectManagerServer</span></a> for <em class="parameter"><code>object</code></em> is running.</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusObject.html" title="MmGdbusObject"><span class="type">MmGdbusObject</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>object</code></em> does not implement the interface. Do not free the returned object, it is owned by <em class="parameter"><code>object</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-object-get-modem-signal"></a><h3>mm_gdbus_object_get_modem_signal ()</h3>
+<pre class="programlisting"><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="returnvalue">MmGdbusModemSignal</span></a> * mm_gdbus_object_get_modem_signal (<em class="parameter"><code><a class="link" href="MmGdbusObject.html" title="MmGdbusObject"><span class="type">MmGdbusObject</span></a> *object</code></em>);</pre>
+<p>
+Gets the <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> instance for the D-Bus interface org.freedesktop.ModemManager1.Modem.Signal on <em class="parameter"><code>object</code></em>, if any.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusObject.html" title="MmGdbusObject"><span class="type">MmGdbusObject</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> that must be freed with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>object</code></em> does not implement the interface. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
</div>
<div class="refsect1">
<a name="MmGdbusObject.property-details"></a><h2>Property Details</h2>
@@ -716,6 +834,28 @@ Connect to the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-
</div>
<hr>
<div class="refsect2">
+<a name="MmGdbusObject--modem-oma"></a><h3>The <code class="literal">"modem-oma"</code> property</h3>
+<pre class="programlisting"> "modem-oma" <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a>* : Read / Write</pre>
+<p>
+The <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> instance corresponding to the D-Bus interface org.freedesktop.ModemManager1.Modem.Oma, if any.
+</p>
+<p>
+Connect to the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject-notify"><span class="type">"notify"</span></a> signal to get informed of property changes.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="MmGdbusObject--modem-signal"></a><h3>The <code class="literal">"modem-signal"</code> property</h3>
+<pre class="programlisting"> "modem-signal" <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a>* : Read / Write</pre>
+<p>
+The <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> instance corresponding to the D-Bus interface org.freedesktop.ModemManager1.Modem.Signal, if any.
+</p>
+<p>
+Connect to the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject-notify"><span class="type">"notify"</span></a> signal to get informed of property changes.
+</p>
+</div>
+<hr>
+<div class="refsect2">
<a name="MmGdbusObject--modem-simple"></a><h3>The <code class="literal">"modem-simple"</code> property</h3>
<pre class="programlisting"> "modem-simple" <a class="link" href="MmGdbusModemSimple.html" title="MmGdbusModemSimple"><span class="type">MmGdbusModemSimple</span></a>* : Read / Write</pre>
<p>
@@ -762,6 +902,6 @@ Connect to the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusObjectManagerClient.html b/docs/reference/libmm-glib/html/MmGdbusObjectManagerClient.html
index 11e9ee7..2eaec8e 100644
--- a/docs/reference/libmm-glib/html/MmGdbusObjectManagerClient.html
+++ b/docs/reference/libmm-glib/html/MmGdbusObjectManagerClient.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusOrgFreedesktopModemManager1Skeleton.html" title="MmGdbusOrgFreedesktopModemManager1Skeleton">
<link rel="next" href="MmGdbusObject.html" title="MmGdbusObject">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -462,6 +462,6 @@ A <a href="http://library.gnome.org/devel/gio/unstable/GDBusObjectManagerClient.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusObjectProxy.html b/docs/reference/libmm-glib/html/MmGdbusObjectProxy.html
index 5e6dc63..99f837b 100644
--- a/docs/reference/libmm-glib/html/MmGdbusObjectProxy.html
+++ b/docs/reference/libmm-glib/html/MmGdbusObjectProxy.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusObject.html" title="MmGdbusObject">
<link rel="next" href="MmGdbusObjectSkeleton.html" title="MmGdbusObjectSkeleton">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -110,6 +110,6 @@ Creates a new proxy object.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusObjectSkeleton.html b/docs/reference/libmm-glib/html/MmGdbusObjectSkeleton.html
index 8097235..ace87a2 100644
--- a/docs/reference/libmm-glib/html/MmGdbusObjectSkeleton.html
+++ b/docs/reference/libmm-glib/html/MmGdbusObjectSkeleton.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusObjectProxy.html" title="MmGdbusObjectProxy">
<link rel="next" href="MmGdbusModem.html" title="MmGdbusModem">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -59,6 +59,9 @@
<span class="returnvalue">void</span> <a class="link" href="MmGdbusObjectSkeleton.html#mm-gdbus-object-skeleton-set-modem-firmware" title="mm_gdbus_object_skeleton_set_modem_firmware ()">mm_gdbus_object_skeleton_set_modem_firmware</a>
(<em class="parameter"><code><a class="link" href="MmGdbusObjectSkeleton.html" title="MmGdbusObjectSkeleton"><span class="type">MmGdbusObjectSkeleton</span></a> *object</code></em>,
<em class="parameter"><code><a class="link" href="MmGdbusModemFirmware.html" title="MmGdbusModemFirmware"><span class="type">MmGdbusModemFirmware</span></a> *interface_</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="MmGdbusObjectSkeleton.html#mm-gdbus-object-skeleton-set-modem-oma" title="mm_gdbus_object_skeleton_set_modem_oma ()">mm_gdbus_object_skeleton_set_modem_oma</a>
+ (<em class="parameter"><code><a class="link" href="MmGdbusObjectSkeleton.html" title="MmGdbusObjectSkeleton"><span class="type">MmGdbusObjectSkeleton</span></a> *object</code></em>,
+ <em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *interface_</code></em>);
<span class="returnvalue">void</span> <a class="link" href="MmGdbusObjectSkeleton.html#mm-gdbus-object-skeleton-set-modem-location" title="mm_gdbus_object_skeleton_set_modem_location ()">mm_gdbus_object_skeleton_set_modem_location</a>
(<em class="parameter"><code><a class="link" href="MmGdbusObjectSkeleton.html" title="MmGdbusObjectSkeleton"><span class="type">MmGdbusObjectSkeleton</span></a> *object</code></em>,
<em class="parameter"><code><a class="link" href="MmGdbusModemLocation.html" title="MmGdbusModemLocation"><span class="type">MmGdbusModemLocation</span></a> *interface_</code></em>);
@@ -71,6 +74,9 @@
<span class="returnvalue">void</span> <a class="link" href="MmGdbusObjectSkeleton.html#mm-gdbus-object-skeleton-set-modem-time" title="mm_gdbus_object_skeleton_set_modem_time ()">mm_gdbus_object_skeleton_set_modem_time</a>
(<em class="parameter"><code><a class="link" href="MmGdbusObjectSkeleton.html" title="MmGdbusObjectSkeleton"><span class="type">MmGdbusObjectSkeleton</span></a> *object</code></em>,
<em class="parameter"><code><a class="link" href="MmGdbusModemTime.html" title="MmGdbusModemTime"><span class="type">MmGdbusModemTime</span></a> *interface_</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="MmGdbusObjectSkeleton.html#mm-gdbus-object-skeleton-set-modem-signal" title="mm_gdbus_object_skeleton_set_modem_signal ()">mm_gdbus_object_skeleton_set_modem_signal</a>
+ (<em class="parameter"><code><a class="link" href="MmGdbusObjectSkeleton.html" title="MmGdbusObjectSkeleton"><span class="type">MmGdbusObjectSkeleton</span></a> *object</code></em>,
+ <em class="parameter"><code><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> *interface_</code></em>);
</pre>
</div>
<div class="refsect1">
@@ -262,6 +268,33 @@ Sets the <a class="link" href="MmGdbusModemFirmware.html" title="MmGdbusModemFir
</div>
<hr>
<div class="refsect2">
+<a name="mm-gdbus-object-skeleton-set-modem-oma"></a><h3>mm_gdbus_object_skeleton_set_modem_oma ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> mm_gdbus_object_skeleton_set_modem_oma
+ (<em class="parameter"><code><a class="link" href="MmGdbusObjectSkeleton.html" title="MmGdbusObjectSkeleton"><span class="type">MmGdbusObjectSkeleton</span></a> *object</code></em>,
+ <em class="parameter"><code><a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> *interface_</code></em>);</pre>
+<p>
+Sets the <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> instance for the D-Bus interface org.freedesktop.ModemManager1.Modem.Oma on <em class="parameter"><code>object</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusObjectSkeleton.html" title="MmGdbusObjectSkeleton"><span class="type">MmGdbusObjectSkeleton</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>interface_</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma"><span class="type">MmGdbusModemOma</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to clear the interface. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
<a name="mm-gdbus-object-skeleton-set-modem-location"></a><h3>mm_gdbus_object_skeleton_set_modem_location ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> mm_gdbus_object_skeleton_set_modem_location
(<em class="parameter"><code><a class="link" href="MmGdbusObjectSkeleton.html" title="MmGdbusObjectSkeleton"><span class="type">MmGdbusObjectSkeleton</span></a> *object</code></em>,
@@ -368,10 +401,37 @@ Sets the <a class="link" href="MmGdbusModemTime.html" title="MmGdbusModemTime"><
</tbody>
</table></div>
</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-object-skeleton-set-modem-signal"></a><h3>mm_gdbus_object_skeleton_set_modem_signal ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> mm_gdbus_object_skeleton_set_modem_signal
+ (<em class="parameter"><code><a class="link" href="MmGdbusObjectSkeleton.html" title="MmGdbusObjectSkeleton"><span class="type">MmGdbusObjectSkeleton</span></a> *object</code></em>,
+ <em class="parameter"><code><a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> *interface_</code></em>);</pre>
+<p>
+Sets the <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> instance for the D-Bus interface org.freedesktop.ModemManager1.Modem.Signal on <em class="parameter"><code>object</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusObjectSkeleton.html" title="MmGdbusObjectSkeleton"><span class="type">MmGdbusObjectSkeleton</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>interface_</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal"><span class="type">MmGdbusModemSignal</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to clear the interface. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusOrgFreedesktopModemManager1.html b/docs/reference/libmm-glib/html/MmGdbusOrgFreedesktopModemManager1.html
index 2fcc13e..1ec2914 100644
--- a/docs/reference/libmm-glib/html/MmGdbusOrgFreedesktopModemManager1.html
+++ b/docs/reference/libmm-glib/html/MmGdbusOrgFreedesktopModemManager1.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="pt02.html" title="Part II. Low level API">
<link rel="next" href="MmGdbusOrgFreedesktopModemManager1Proxy.html" title="MmGdbusOrgFreedesktopModemManager1Proxy">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -168,7 +168,7 @@ Virtual table for the D-Bus interface org.freedesktop.ModemManager1.
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.html#gdbus-method-org-freedesktop-ModemManager1.ScanDevices"><GTKDOCLINK HREF="ScanDevices"><code class="function">ScanDevices()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="ScanDevices"><code class="function">ScanDevices()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusOrgFreedesktopModemManager1.html#mm-gdbus-org-freedesktop-modem-manager1-call-scan-devices-finish" title="mm_gdbus_org_freedesktop_modem_manager1_call_scan_devices_finish ()"><code class="function">mm_gdbus_org_freedesktop_modem_manager1_call_scan_devices_finish()</code></a> to get the result of the operation.
</p>
@@ -246,7 +246,7 @@ Finishes an operation started with <a class="link" href="MmGdbusOrgFreedesktopMo
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.html#gdbus-method-org-freedesktop-ModemManager1.ScanDevices"><GTKDOCLINK HREF="ScanDevices"><code class="function">ScanDevices()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="ScanDevices"><code class="function">ScanDevices()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusOrgFreedesktopModemManager1.html#mm-gdbus-org-freedesktop-modem-manager1-call-scan-devices" title="mm_gdbus_org_freedesktop_modem_manager1_call_scan_devices ()"><code class="function">mm_gdbus_org_freedesktop_modem_manager1_call_scan_devices()</code></a> for the asynchronous version of this method.
@@ -289,7 +289,7 @@ See <a class="link" href="MmGdbusOrgFreedesktopModemManager1.html#mm-gdbus-org-f
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.html#gdbus-method-org-freedesktop-ModemManager1.SetLogging"><GTKDOCLINK HREF="SetLogging"><code class="function">SetLogging()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="SetLogging"><code class="function">SetLogging()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusOrgFreedesktopModemManager1.html#mm-gdbus-org-freedesktop-modem-manager1-call-set-logging-finish" title="mm_gdbus_org_freedesktop_modem_manager1_call_set_logging_finish ()"><code class="function">mm_gdbus_org_freedesktop_modem_manager1_call_set_logging_finish()</code></a> to get the result of the operation.
</p>
@@ -372,7 +372,7 @@ Finishes an operation started with <a class="link" href="MmGdbusOrgFreedesktopMo
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.html#gdbus-method-org-freedesktop-ModemManager1.SetLogging"><GTKDOCLINK HREF="SetLogging"><code class="function">SetLogging()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="SetLogging"><code class="function">SetLogging()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusOrgFreedesktopModemManager1.html#mm-gdbus-org-freedesktop-modem-manager1-call-set-logging" title="mm_gdbus_org_freedesktop_modem_manager1_call_set_logging ()"><code class="function">mm_gdbus_org_freedesktop_modem_manager1_call_set_logging()</code></a> for the asynchronous version of this method.
@@ -418,7 +418,7 @@ See <a class="link" href="MmGdbusOrgFreedesktopModemManager1.html#mm-gdbus-org-f
<a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html"><span class="type">GDBusMethodInvocation</span></a> *invocation,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.html#gdbus-method-org-freedesktop-ModemManager1.ScanDevices"><GTKDOCLINK HREF="ScanDevices"><code class="function">ScanDevices()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="ScanDevices"><code class="function">ScanDevices()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_org_freedesktop_modem_manager1_complete_scan_devices()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -457,7 +457,7 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *arg_level,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.html#gdbus-method-org-freedesktop-ModemManager1.SetLogging"><GTKDOCLINK HREF="SetLogging"><code class="function">SetLogging()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="SetLogging"><code class="function">SetLogging()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_org_freedesktop_modem_manager1_complete_set_logging()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -496,6 +496,6 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusOrgFreedesktopModemManager1Proxy.html b/docs/reference/libmm-glib/html/MmGdbusOrgFreedesktopModemManager1Proxy.html
index 8f14688..ce98ebd 100644
--- a/docs/reference/libmm-glib/html/MmGdbusOrgFreedesktopModemManager1Proxy.html
+++ b/docs/reference/libmm-glib/html/MmGdbusOrgFreedesktopModemManager1Proxy.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusOrgFreedesktopModemManager1.html" title="MmGdbusOrgFreedesktopModemManager1">
<link rel="next" href="MmGdbusOrgFreedesktopModemManager1Skeleton.html" title="MmGdbusOrgFreedesktopModemManager1Skeleton">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -415,6 +415,6 @@ See <a class="link" href="MmGdbusOrgFreedesktopModemManager1Proxy.html#mm-gdbus-
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusOrgFreedesktopModemManager1Skeleton.html b/docs/reference/libmm-glib/html/MmGdbusOrgFreedesktopModemManager1Skeleton.html
index 37509ec..7ee1c01 100644
--- a/docs/reference/libmm-glib/html/MmGdbusOrgFreedesktopModemManager1Skeleton.html
+++ b/docs/reference/libmm-glib/html/MmGdbusOrgFreedesktopModemManager1Skeleton.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusOrgFreedesktopModemManager1Proxy.html" title="MmGdbusOrgFreedesktopModemManager1Proxy">
<link rel="next" href="MmGdbusObjectManagerClient.html" title="MmGdbusObjectManagerClient">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -99,6 +99,6 @@ Creates a skeleton object for the D-Bus interface org.freedesktop.ModemManager1.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusSim.html b/docs/reference/libmm-glib/html/MmGdbusSim.html
index c851ac4..0cfea1a 100644
--- a/docs/reference/libmm-glib/html/MmGdbusSim.html
+++ b/docs/reference/libmm-glib/html/MmGdbusSim.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusBearerSkeleton.html" title="MmGdbusBearerSkeleton">
<link rel="next" href="MmGdbusSimProxy.html" title="MmGdbusSimProxy">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -261,7 +261,7 @@ Virtual table for the D-Bus interface org.freedesktop.ModemManager1.Sim.
<a name="mm-gdbus-sim-get-imsi"></a><h3>mm_gdbus_sim_get_imsi ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_sim_get_imsi (<em class="parameter"><code><a class="link" href="MmGdbusSim.html" title="MmGdbusSim"><span class="type">MmGdbusSim</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sim.html#gdbus-property-org-freedesktop-ModemManager1-Sim.Imsi">"Imsi"</a> D-Bus property.
+Gets the value of the "Imsi" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -295,7 +295,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-sim-dup-imsi"></a><h3>mm_gdbus_sim_dup_imsi ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_sim_dup_imsi (<em class="parameter"><code><a class="link" href="MmGdbusSim.html" title="MmGdbusSim"><span class="type">MmGdbusSim</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sim.html#gdbus-property-org-freedesktop-ModemManager1-Sim.Imsi">"Imsi"</a> D-Bus property.
+Gets a copy of the "Imsi" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -323,7 +323,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-sim-get-sim-identifier"></a><h3>mm_gdbus_sim_get_sim_identifier ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_sim_get_sim_identifier (<em class="parameter"><code><a class="link" href="MmGdbusSim.html" title="MmGdbusSim"><span class="type">MmGdbusSim</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sim.html#gdbus-property-org-freedesktop-ModemManager1-Sim.SimIdentifier">"SimIdentifier"</a> D-Bus property.
+Gets the value of the "SimIdentifier" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -357,7 +357,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-sim-dup-sim-identifier"></a><h3>mm_gdbus_sim_dup_sim_identifier ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_sim_dup_sim_identifier (<em class="parameter"><code><a class="link" href="MmGdbusSim.html" title="MmGdbusSim"><span class="type">MmGdbusSim</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sim.html#gdbus-property-org-freedesktop-ModemManager1-Sim.SimIdentifier">"SimIdentifier"</a> D-Bus property.
+Gets a copy of the "SimIdentifier" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -386,7 +386,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_sim_get_operator_identifier
(<em class="parameter"><code><a class="link" href="MmGdbusSim.html" title="MmGdbusSim"><span class="type">MmGdbusSim</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sim.html#gdbus-property-org-freedesktop-ModemManager1-Sim.OperatorIdentifier">"OperatorIdentifier"</a> D-Bus property.
+Gets the value of the "OperatorIdentifier" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -421,7 +421,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_sim_dup_operator_identifier
(<em class="parameter"><code><a class="link" href="MmGdbusSim.html" title="MmGdbusSim"><span class="type">MmGdbusSim</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sim.html#gdbus-property-org-freedesktop-ModemManager1-Sim.OperatorIdentifier">"OperatorIdentifier"</a> D-Bus property.
+Gets a copy of the "OperatorIdentifier" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -449,7 +449,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-sim-get-operator-name"></a><h3>mm_gdbus_sim_get_operator_name ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_sim_get_operator_name (<em class="parameter"><code><a class="link" href="MmGdbusSim.html" title="MmGdbusSim"><span class="type">MmGdbusSim</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sim.html#gdbus-property-org-freedesktop-ModemManager1-Sim.OperatorName">"OperatorName"</a> D-Bus property.
+Gets the value of the "OperatorName" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -483,7 +483,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-sim-dup-operator-name"></a><h3>mm_gdbus_sim_dup_operator_name ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_sim_dup_operator_name (<em class="parameter"><code><a class="link" href="MmGdbusSim.html" title="MmGdbusSim"><span class="type">MmGdbusSim</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sim.html#gdbus-property-org-freedesktop-ModemManager1-Sim.OperatorName">"OperatorName"</a> D-Bus property.
+Gets a copy of the "OperatorName" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -515,7 +515,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sim.html#gdbus-method-org-freedesktop-ModemManager1-Sim.SendPin"><GTKDOCLINK HREF="SendPin"><code class="function">SendPin()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="SendPin"><code class="function">SendPin()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusSim.html#mm-gdbus-sim-call-send-pin-finish" title="mm_gdbus_sim_call_send_pin_finish ()"><code class="function">mm_gdbus_sim_call_send_pin_finish()</code></a> to get the result of the operation.
</p>
@@ -596,7 +596,7 @@ Finishes an operation started with <a class="link" href="MmGdbusSim.html#mm-gdbu
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sim.html#gdbus-method-org-freedesktop-ModemManager1-Sim.SendPin"><GTKDOCLINK HREF="SendPin"><code class="function">SendPin()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="SendPin"><code class="function">SendPin()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusSim.html#mm-gdbus-sim-call-send-pin" title="mm_gdbus_sim_call_send_pin ()"><code class="function">mm_gdbus_sim_call_send_pin()</code></a> for the asynchronous version of this method.
@@ -643,7 +643,7 @@ See <a class="link" href="MmGdbusSim.html#mm-gdbus-sim-call-send-pin" title="mm_
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sim.html#gdbus-method-org-freedesktop-ModemManager1-Sim.SendPuk"><GTKDOCLINK HREF="SendPuk"><code class="function">SendPuk()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="SendPuk"><code class="function">SendPuk()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusSim.html#mm-gdbus-sim-call-send-puk-finish" title="mm_gdbus_sim_call_send_puk_finish ()"><code class="function">mm_gdbus_sim_call_send_puk_finish()</code></a> to get the result of the operation.
</p>
@@ -729,7 +729,7 @@ Finishes an operation started with <a class="link" href="MmGdbusSim.html#mm-gdbu
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sim.html#gdbus-method-org-freedesktop-ModemManager1-Sim.SendPuk"><GTKDOCLINK HREF="SendPuk"><code class="function">SendPuk()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="SendPuk"><code class="function">SendPuk()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusSim.html#mm-gdbus-sim-call-send-puk" title="mm_gdbus_sim_call_send_puk ()"><code class="function">mm_gdbus_sim_call_send_puk()</code></a> for the asynchronous version of this method.
@@ -780,7 +780,7 @@ See <a class="link" href="MmGdbusSim.html#mm-gdbus-sim-call-send-puk" title="mm_
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sim.html#gdbus-method-org-freedesktop-ModemManager1-Sim.EnablePin"><GTKDOCLINK HREF="EnablePin"><code class="function">EnablePin()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="EnablePin"><code class="function">EnablePin()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusSim.html#mm-gdbus-sim-call-enable-pin-finish" title="mm_gdbus_sim_call_enable_pin_finish ()"><code class="function">mm_gdbus_sim_call_enable_pin_finish()</code></a> to get the result of the operation.
</p>
@@ -866,7 +866,7 @@ Finishes an operation started with <a class="link" href="MmGdbusSim.html#mm-gdbu
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sim.html#gdbus-method-org-freedesktop-ModemManager1-Sim.EnablePin"><GTKDOCLINK HREF="EnablePin"><code class="function">EnablePin()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="EnablePin"><code class="function">EnablePin()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusSim.html#mm-gdbus-sim-call-enable-pin" title="mm_gdbus_sim_call_enable_pin ()"><code class="function">mm_gdbus_sim_call_enable_pin()</code></a> for the asynchronous version of this method.
@@ -917,7 +917,7 @@ See <a class="link" href="MmGdbusSim.html#mm-gdbus-sim-call-enable-pin" title="m
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sim.html#gdbus-method-org-freedesktop-ModemManager1-Sim.ChangePin"><GTKDOCLINK HREF="ChangePin"><code class="function">ChangePin()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="ChangePin"><code class="function">ChangePin()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusSim.html#mm-gdbus-sim-call-change-pin-finish" title="mm_gdbus_sim_call_change_pin_finish ()"><code class="function">mm_gdbus_sim_call_change_pin_finish()</code></a> to get the result of the operation.
</p>
@@ -1003,7 +1003,7 @@ Finishes an operation started with <a class="link" href="MmGdbusSim.html#mm-gdbu
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sim.html#gdbus-method-org-freedesktop-ModemManager1-Sim.ChangePin"><GTKDOCLINK HREF="ChangePin"><code class="function">ChangePin()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="ChangePin"><code class="function">ChangePin()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusSim.html#mm-gdbus-sim-call-change-pin" title="mm_gdbus_sim_call_change_pin ()"><code class="function">mm_gdbus_sim_call_change_pin()</code></a> for the asynchronous version of this method.
@@ -1051,7 +1051,7 @@ See <a class="link" href="MmGdbusSim.html#mm-gdbus-sim-call-change-pin" title="m
<a name="MmGdbusSim--imsi"></a><h3>The <code class="literal">"imsi"</code> property</h3>
<pre class="programlisting"> "imsi" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sim.html#gdbus-property-org-freedesktop-ModemManager1-Sim.Imsi">"Imsi"</a>.
+Represents the D-Bus property "Imsi".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -1063,7 +1063,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusSim--operator-identifier"></a><h3>The <code class="literal">"operator-identifier"</code> property</h3>
<pre class="programlisting"> "operator-identifier" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sim.html#gdbus-property-org-freedesktop-ModemManager1-Sim.OperatorIdentifier">"OperatorIdentifier"</a>.
+Represents the D-Bus property "OperatorIdentifier".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -1075,7 +1075,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusSim--operator-name"></a><h3>The <code class="literal">"operator-name"</code> property</h3>
<pre class="programlisting"> "operator-name" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sim.html#gdbus-property-org-freedesktop-ModemManager1-Sim.OperatorName">"OperatorName"</a>.
+Represents the D-Bus property "OperatorName".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -1087,7 +1087,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusSim--sim-identifier"></a><h3>The <code class="literal">"sim-identifier"</code> property</h3>
<pre class="programlisting"> "sim-identifier" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sim.html#gdbus-property-org-freedesktop-ModemManager1-Sim.SimIdentifier">"SimIdentifier"</a>.
+Represents the D-Bus property "SimIdentifier".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -1105,7 +1105,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *arg_new_pin,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sim.html#gdbus-method-org-freedesktop-ModemManager1-Sim.ChangePin"><GTKDOCLINK HREF="ChangePin"><code class="function">ChangePin()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="ChangePin"><code class="function">ChangePin()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_sim_complete_change_pin()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -1153,7 +1153,7 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> arg_enabled,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sim.html#gdbus-method-org-freedesktop-ModemManager1-Sim.EnablePin"><GTKDOCLINK HREF="EnablePin"><code class="function">EnablePin()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="EnablePin"><code class="function">EnablePin()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_sim_complete_enable_pin()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -1200,7 +1200,7 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *arg_pin,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sim.html#gdbus-method-org-freedesktop-ModemManager1-Sim.SendPin"><GTKDOCLINK HREF="SendPin"><code class="function">SendPin()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="SendPin"><code class="function">SendPin()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_sim_complete_send_pin()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -1244,7 +1244,7 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *arg_pin,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sim.html#gdbus-method-org-freedesktop-ModemManager1-Sim.SendPuk"><GTKDOCLINK HREF="SendPuk"><code class="function">SendPuk()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="SendPuk"><code class="function">SendPuk()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_sim_complete_send_puk()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -1287,6 +1287,6 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusSimProxy.html b/docs/reference/libmm-glib/html/MmGdbusSimProxy.html
index 4f5dc02..26581bd 100644
--- a/docs/reference/libmm-glib/html/MmGdbusSimProxy.html
+++ b/docs/reference/libmm-glib/html/MmGdbusSimProxy.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusSim.html" title="MmGdbusSim">
<link rel="next" href="MmGdbusSimSkeleton.html" title="MmGdbusSimSkeleton">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -406,6 +406,6 @@ See <a class="link" href="MmGdbusSimProxy.html#mm-gdbus-sim-proxy-new" title="mm
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusSimSkeleton.html b/docs/reference/libmm-glib/html/MmGdbusSimSkeleton.html
index 8b04827..6808fc2 100644
--- a/docs/reference/libmm-glib/html/MmGdbusSimSkeleton.html
+++ b/docs/reference/libmm-glib/html/MmGdbusSimSkeleton.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusSimProxy.html" title="MmGdbusSimProxy">
<link rel="next" href="MmGdbusSms.html" title="MmGdbusSms">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -97,6 +97,6 @@ Creates a skeleton object for the D-Bus interface org.freedesktop.ModemManager1.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusSms.html b/docs/reference/libmm-glib/html/MmGdbusSms.html
index a8f5146..6f545f8 100644
--- a/docs/reference/libmm-glib/html/MmGdbusSms.html
+++ b/docs/reference/libmm-glib/html/MmGdbusSms.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusSimSkeleton.html" title="MmGdbusSimSkeleton">
<link rel="next" href="MmGdbusSmsProxy.html" title="MmGdbusSmsProxy">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -65,6 +65,8 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * <a class="link" href="MmGdbusSms.html#mm-gdbus-sms-get-validity" title="mm_gdbus_sms_get_validity ()">mm_gdbus_sms_get_validity</a> (<em class="parameter"><code><a class="link" href="MmGdbusSms.html" title="MmGdbusSms"><span class="type">MmGdbusSms</span></a> *object</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * <a class="link" href="MmGdbusSms.html#mm-gdbus-sms-dup-validity" title="mm_gdbus_sms_dup_validity ()">mm_gdbus_sms_dup_validity</a> (<em class="parameter"><code><a class="link" href="MmGdbusSms.html" title="MmGdbusSms"><span class="type">MmGdbusSms</span></a> *object</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> <a class="link" href="MmGdbusSms.html#mm-gdbus-sms-get-class" title="mm_gdbus_sms_get_class ()">mm_gdbus_sms_get_class</a> (<em class="parameter"><code><a class="link" href="MmGdbusSms.html" title="MmGdbusSms"><span class="type">MmGdbusSms</span></a> *object</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="MmGdbusSms.html#mm-gdbus-sms-get-teleservice-id" title="mm_gdbus_sms_get_teleservice_id ()">mm_gdbus_sms_get_teleservice_id</a> (<em class="parameter"><code><a class="link" href="MmGdbusSms.html" title="MmGdbusSms"><span class="type">MmGdbusSms</span></a> *object</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="MmGdbusSms.html#mm-gdbus-sms-get-service-category" title="mm_gdbus_sms_get_service_category ()">mm_gdbus_sms_get_service_category</a> (<em class="parameter"><code><a class="link" href="MmGdbusSms.html" title="MmGdbusSms"><span class="type">MmGdbusSms</span></a> *object</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MmGdbusSms.html#mm-gdbus-sms-get-timestamp" title="mm_gdbus_sms_get_timestamp ()">mm_gdbus_sms_get_timestamp</a> (<em class="parameter"><code><a class="link" href="MmGdbusSms.html" title="MmGdbusSms"><span class="type">MmGdbusSms</span></a> *object</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MmGdbusSms.html#mm-gdbus-sms-dup-timestamp" title="mm_gdbus_sms_dup_timestamp ()">mm_gdbus_sms_dup_timestamp</a> (<em class="parameter"><code><a class="link" href="MmGdbusSms.html" title="MmGdbusSms"><span class="type">MmGdbusSms</span></a> *object</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="MmGdbusSms.html#mm-gdbus-sms-get-discharge-timestamp" title="mm_gdbus_sms_get_discharge_timestamp ()">mm_gdbus_sms_get_discharge_timestamp</a>
@@ -129,9 +131,11 @@ MmGdbusSms is implemented by
"<a class="link" href="MmGdbusSms.html#MmGdbusSms--message-reference" title='The "message-reference" property'>message-reference</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write
"<a class="link" href="MmGdbusSms.html#MmGdbusSms--number" title='The "number" property'>number</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write
"<a class="link" href="MmGdbusSms.html#MmGdbusSms--pdu-type" title='The "pdu-type" property'>pdu-type</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write
+ "<a class="link" href="MmGdbusSms.html#MmGdbusSms--service-category" title='The "service-category" property'>service-category</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write
"<a class="link" href="MmGdbusSms.html#MmGdbusSms--smsc" title='The "smsc" property'>smsc</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write
"<a class="link" href="MmGdbusSms.html#MmGdbusSms--state" title='The "state" property'>state</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write
"<a class="link" href="MmGdbusSms.html#MmGdbusSms--storage" title='The "storage" property'>storage</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write
+ "<a class="link" href="MmGdbusSms.html#MmGdbusSms--teleservice-id" title='The "teleservice-id" property'>teleservice-id</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write
"<a class="link" href="MmGdbusSms.html#MmGdbusSms--text" title='The "text" property'>text</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write
"<a class="link" href="MmGdbusSms.html#MmGdbusSms--timestamp" title='The "timestamp" property'>timestamp</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write
"<a class="link" href="MmGdbusSms.html#MmGdbusSms--validity" title='The "validity" property'>validity</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write
@@ -191,12 +195,16 @@ Abstract interface type for the D-Bus interface org.freedesktop.ModemManager1.Sm
guint (*get_pdu_type) (MmGdbusSms *object);
+ guint (*get_service_category) (MmGdbusSms *object);
+
const gchar * (*get_smsc) (MmGdbusSms *object);
guint (*get_state) (MmGdbusSms *object);
guint (*get_storage) (MmGdbusSms *object);
+ guint (*get_teleservice_id) (MmGdbusSms *object);
+
const gchar * (*get_text) (MmGdbusSms *object);
const gchar * (*get_timestamp) (MmGdbusSms *object);
@@ -258,6 +266,10 @@ Virtual table for the D-Bus interface org.freedesktop.ModemManager1.Sms.
<td>Getter for the <a class="link" href="MmGdbusSms.html#MmGdbusSms--pdu-type" title='The "pdu-type" property'><span class="type">"pdu-type"</span></a> property.</td>
</tr>
<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="MmGdbusSmsIface.get-service-category"></a>get_service_category</code></em> ()</span></p></td>
+<td>Getter for the <a class="link" href="MmGdbusSms.html#MmGdbusSms--service-category" title='The "service-category" property'><span class="type">"service-category"</span></a> property.</td>
+</tr>
+<tr>
<td><p><span class="term"><em class="structfield"><code><a name="MmGdbusSmsIface.get-smsc"></a>get_smsc</code></em> ()</span></p></td>
<td>Getter for the <a class="link" href="MmGdbusSms.html#MmGdbusSms--smsc" title='The "smsc" property'><span class="type">"smsc"</span></a> property.</td>
</tr>
@@ -270,6 +282,10 @@ Virtual table for the D-Bus interface org.freedesktop.ModemManager1.Sms.
<td>Getter for the <a class="link" href="MmGdbusSms.html#MmGdbusSms--storage" title='The "storage" property'><span class="type">"storage"</span></a> property.</td>
</tr>
<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="MmGdbusSmsIface.get-teleservice-id"></a>get_teleservice_id</code></em> ()</span></p></td>
+<td>Getter for the <a class="link" href="MmGdbusSms.html#MmGdbusSms--teleservice-id" title='The "teleservice-id" property'><span class="type">"teleservice-id"</span></a> property.</td>
+</tr>
+<tr>
<td><p><span class="term"><em class="structfield"><code><a name="MmGdbusSmsIface.get-text"></a>get_text</code></em> ()</span></p></td>
<td>Getter for the <a class="link" href="MmGdbusSms.html#MmGdbusSms--text" title='The "text" property'><span class="type">"text"</span></a> property.</td>
</tr>
@@ -289,7 +305,7 @@ Virtual table for the D-Bus interface org.freedesktop.ModemManager1.Sms.
<a name="mm-gdbus-sms-get-state"></a><h3>mm_gdbus_sms_get_state ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> mm_gdbus_sms_get_state (<em class="parameter"><code><a class="link" href="MmGdbusSms.html" title="MmGdbusSms"><span class="type">MmGdbusSms</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.State">"State"</a> D-Bus property.
+Gets the value of the "State" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -316,7 +332,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-sms-get-pdu-type"></a><h3>mm_gdbus_sms_get_pdu_type ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> mm_gdbus_sms_get_pdu_type (<em class="parameter"><code><a class="link" href="MmGdbusSms.html" title="MmGdbusSms"><span class="type">MmGdbusSms</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.PduType">"PduType"</a> D-Bus property.
+Gets the value of the "PduType" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -343,7 +359,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-sms-get-message-reference"></a><h3>mm_gdbus_sms_get_message_reference ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> mm_gdbus_sms_get_message_reference (<em class="parameter"><code><a class="link" href="MmGdbusSms.html" title="MmGdbusSms"><span class="type">MmGdbusSms</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.MessageReference">"MessageReference"</a> D-Bus property.
+Gets the value of the "MessageReference" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -370,7 +386,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-sms-get-storage"></a><h3>mm_gdbus_sms_get_storage ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> mm_gdbus_sms_get_storage (<em class="parameter"><code><a class="link" href="MmGdbusSms.html" title="MmGdbusSms"><span class="type">MmGdbusSms</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.Storage">"Storage"</a> D-Bus property.
+Gets the value of the "Storage" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -397,7 +413,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-sms-get-text"></a><h3>mm_gdbus_sms_get_text ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_sms_get_text (<em class="parameter"><code><a class="link" href="MmGdbusSms.html" title="MmGdbusSms"><span class="type">MmGdbusSms</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.Text">"Text"</a> D-Bus property.
+Gets the value of the "Text" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -431,7 +447,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-sms-dup-text"></a><h3>mm_gdbus_sms_dup_text ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_sms_dup_text (<em class="parameter"><code><a class="link" href="MmGdbusSms.html" title="MmGdbusSms"><span class="type">MmGdbusSms</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.Text">"Text"</a> D-Bus property.
+Gets a copy of the "Text" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -459,7 +475,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-sms-get-data"></a><h3>mm_gdbus_sms_get_data ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_sms_get_data (<em class="parameter"><code><a class="link" href="MmGdbusSms.html" title="MmGdbusSms"><span class="type">MmGdbusSms</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.Data">"Data"</a> D-Bus property.
+Gets the value of the "Data" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -493,7 +509,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-sms-dup-data"></a><h3>mm_gdbus_sms_dup_data ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_sms_dup_data (<em class="parameter"><code><a class="link" href="MmGdbusSms.html" title="MmGdbusSms"><span class="type">MmGdbusSms</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.Data">"Data"</a> D-Bus property.
+Gets a copy of the "Data" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -521,7 +537,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-sms-get-number"></a><h3>mm_gdbus_sms_get_number ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_sms_get_number (<em class="parameter"><code><a class="link" href="MmGdbusSms.html" title="MmGdbusSms"><span class="type">MmGdbusSms</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.Number">"Number"</a> D-Bus property.
+Gets the value of the "Number" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -555,7 +571,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-sms-dup-number"></a><h3>mm_gdbus_sms_dup_number ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_sms_dup_number (<em class="parameter"><code><a class="link" href="MmGdbusSms.html" title="MmGdbusSms"><span class="type">MmGdbusSms</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.Number">"Number"</a> D-Bus property.
+Gets a copy of the "Number" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -583,7 +599,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-sms-get-smsc"></a><h3>mm_gdbus_sms_get_smsc ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_sms_get_smsc (<em class="parameter"><code><a class="link" href="MmGdbusSms.html" title="MmGdbusSms"><span class="type">MmGdbusSms</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.SMSC">"SMSC"</a> D-Bus property.
+Gets the value of the "SMSC" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -617,7 +633,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-sms-dup-smsc"></a><h3>mm_gdbus_sms_dup_smsc ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_sms_dup_smsc (<em class="parameter"><code><a class="link" href="MmGdbusSms.html" title="MmGdbusSms"><span class="type">MmGdbusSms</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.SMSC">"SMSC"</a> D-Bus property.
+Gets a copy of the "SMSC" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -645,7 +661,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-sms-get-validity"></a><h3>mm_gdbus_sms_get_validity ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_sms_get_validity (<em class="parameter"><code><a class="link" href="MmGdbusSms.html" title="MmGdbusSms"><span class="type">MmGdbusSms</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.Validity">"Validity"</a> D-Bus property.
+Gets the value of the "Validity" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -679,7 +695,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-sms-dup-validity"></a><h3>mm_gdbus_sms_dup_validity ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * mm_gdbus_sms_dup_validity (<em class="parameter"><code><a class="link" href="MmGdbusSms.html" title="MmGdbusSms"><span class="type">MmGdbusSms</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.Validity">"Validity"</a> D-Bus property.
+Gets a copy of the "Validity" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -707,7 +723,61 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-sms-get-class"></a><h3>mm_gdbus_sms_get_class ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> mm_gdbus_sms_get_class (<em class="parameter"><code><a class="link" href="MmGdbusSms.html" title="MmGdbusSms"><span class="type">MmGdbusSms</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.Class">"Class"</a> D-Bus property.
+Gets the value of the "Class" D-Bus property.
+</p>
+<p>
+Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusSms.html" title="MmGdbusSms"><span class="type">MmGdbusSms</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The property value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-sms-get-teleservice-id"></a><h3>mm_gdbus_sms_get_teleservice_id ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> mm_gdbus_sms_get_teleservice_id (<em class="parameter"><code><a class="link" href="MmGdbusSms.html" title="MmGdbusSms"><span class="type">MmGdbusSms</span></a> *object</code></em>);</pre>
+<p>
+Gets the value of the "TeleserviceId" D-Bus property.
+</p>
+<p>
+Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>A <a class="link" href="MmGdbusSms.html" title="MmGdbusSms"><span class="type">MmGdbusSms</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The property value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-gdbus-sms-get-service-category"></a><h3>mm_gdbus_sms_get_service_category ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> mm_gdbus_sms_get_service_category (<em class="parameter"><code><a class="link" href="MmGdbusSms.html" title="MmGdbusSms"><span class="type">MmGdbusSms</span></a> *object</code></em>);</pre>
+<p>
+Gets the value of the "ServiceCategory" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -734,7 +804,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-sms-get-timestamp"></a><h3>mm_gdbus_sms_get_timestamp ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_sms_get_timestamp (<em class="parameter"><code><a class="link" href="MmGdbusSms.html" title="MmGdbusSms"><span class="type">MmGdbusSms</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.Timestamp">"Timestamp"</a> D-Bus property.
+Gets the value of the "Timestamp" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -768,7 +838,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-sms-dup-timestamp"></a><h3>mm_gdbus_sms_dup_timestamp ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_sms_dup_timestamp (<em class="parameter"><code><a class="link" href="MmGdbusSms.html" title="MmGdbusSms"><span class="type">MmGdbusSms</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.Timestamp">"Timestamp"</a> D-Bus property.
+Gets a copy of the "Timestamp" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -797,7 +867,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_sms_get_discharge_timestamp
(<em class="parameter"><code><a class="link" href="MmGdbusSms.html" title="MmGdbusSms"><span class="type">MmGdbusSms</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.DischargeTimestamp">"DischargeTimestamp"</a> D-Bus property.
+Gets the value of the "DischargeTimestamp" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -832,7 +902,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_gdbus_sms_dup_discharge_timestamp
(<em class="parameter"><code><a class="link" href="MmGdbusSms.html" title="MmGdbusSms"><span class="type">MmGdbusSms</span></a> *object</code></em>);</pre>
<p>
-Gets a copy of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.DischargeTimestamp">"DischargeTimestamp"</a> D-Bus property.
+Gets a copy of the "DischargeTimestamp" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -861,7 +931,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> mm_gdbus_sms_get_delivery_report_request
(<em class="parameter"><code><a class="link" href="MmGdbusSms.html" title="MmGdbusSms"><span class="type">MmGdbusSms</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.DeliveryReportRequest">"DeliveryReportRequest"</a> D-Bus property.
+Gets the value of the "DeliveryReportRequest" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -888,7 +958,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<a name="mm-gdbus-sms-get-delivery-state"></a><h3>mm_gdbus_sms_get_delivery_state ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> mm_gdbus_sms_get_delivery_state (<em class="parameter"><code><a class="link" href="MmGdbusSms.html" title="MmGdbusSms"><span class="type">MmGdbusSms</span></a> *object</code></em>);</pre>
<p>
-Gets the value of the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.DeliveryState">"DeliveryState"</a> D-Bus property.
+Gets the value of the "DeliveryState" D-Bus property.
</p>
<p>
Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
@@ -918,7 +988,7 @@ Since this D-Bus property is readable, it is meaningful to use this function on
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-method-org-freedesktop-ModemManager1-Sms.Send"><GTKDOCLINK HREF="Send"><code class="function">Send()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="Send"><code class="function">Send()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusSms.html#mm-gdbus-sms-call-send-finish" title="mm_gdbus_sms_call_send_finish ()"><code class="function">mm_gdbus_sms_call_send_finish()</code></a> to get the result of the operation.
</p>
@@ -994,7 +1064,7 @@ Finishes an operation started with <a class="link" href="MmGdbusSms.html#mm-gdbu
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-method-org-freedesktop-ModemManager1-Sms.Send"><GTKDOCLINK HREF="Send"><code class="function">Send()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="Send"><code class="function">Send()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusSms.html#mm-gdbus-sms-call-send" title="mm_gdbus_sms_call_send ()"><code class="function">mm_gdbus_sms_call_send()</code></a> for the asynchronous version of this method.
@@ -1036,7 +1106,7 @@ See <a class="link" href="MmGdbusSms.html#mm-gdbus-sms-call-send" title="mm_gdbu
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
-Asynchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-method-org-freedesktop-ModemManager1-Sms.Store"><GTKDOCLINK HREF="Store"><code class="function">Store()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
+Asynchronously invokes the <GTKDOCLINK HREF="Store"><code class="function">Store()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>.
When the operation is finished, <em class="parameter"><code>callback</code></em> will be invoked in the <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a> of the thread you are calling this method from.
You can then call <a class="link" href="MmGdbusSms.html#mm-gdbus-sms-call-store-finish" title="mm_gdbus_sms_call_store_finish ()"><code class="function">mm_gdbus_sms_call_store_finish()</code></a> to get the result of the operation.
</p>
@@ -1117,7 +1187,7 @@ Finishes an operation started with <a class="link" href="MmGdbusSms.html#mm-gdbu
<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
-Synchronously invokes the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-method-org-freedesktop-ModemManager1-Sms.Store"><GTKDOCLINK HREF="Store"><code class="function">Store()</code></a></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
+Synchronously invokes the <GTKDOCLINK HREF="Store"><code class="function">Store()</code></GTKDOCLINK> D-Bus method on <em class="parameter"><code>proxy</code></em>. The calling thread is blocked until a reply is received.
</p>
<p>
See <a class="link" href="MmGdbusSms.html#mm-gdbus-sms-call-store" title="mm_gdbus_sms_call_store ()"><code class="function">mm_gdbus_sms_call_store()</code></a> for the asynchronous version of this method.
@@ -1161,7 +1231,7 @@ See <a class="link" href="MmGdbusSms.html#mm-gdbus-sms-call-store" title="mm_gdb
<a name="MmGdbusSms--class"></a><h3>The <code class="literal">"class"</code> property</h3>
<pre class="programlisting"> "class" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.Class">"Class"</a>.
+Represents the D-Bus property "Class".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -1173,7 +1243,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusSms--data"></a><h3>The <code class="literal">"data"</code> property</h3>
<pre class="programlisting"> "data" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.Data">"Data"</a>.
+Represents the D-Bus property "Data".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -1186,7 +1256,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusSms--delivery-report-request"></a><h3>The <code class="literal">"delivery-report-request"</code> property</h3>
<pre class="programlisting"> "delivery-report-request" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.DeliveryReportRequest">"DeliveryReportRequest"</a>.
+Represents the D-Bus property "DeliveryReportRequest".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -1198,7 +1268,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusSms--delivery-state"></a><h3>The <code class="literal">"delivery-state"</code> property</h3>
<pre class="programlisting"> "delivery-state" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.DeliveryState">"DeliveryState"</a>.
+Represents the D-Bus property "DeliveryState".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -1210,7 +1280,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusSms--discharge-timestamp"></a><h3>The <code class="literal">"discharge-timestamp"</code> property</h3>
<pre class="programlisting"> "discharge-timestamp" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.DischargeTimestamp">"DischargeTimestamp"</a>.
+Represents the D-Bus property "DischargeTimestamp".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -1222,7 +1292,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusSms--message-reference"></a><h3>The <code class="literal">"message-reference"</code> property</h3>
<pre class="programlisting"> "message-reference" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.MessageReference">"MessageReference"</a>.
+Represents the D-Bus property "MessageReference".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -1234,7 +1304,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusSms--number"></a><h3>The <code class="literal">"number"</code> property</h3>
<pre class="programlisting"> "number" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.Number">"Number"</a>.
+Represents the D-Bus property "Number".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -1246,7 +1316,19 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusSms--pdu-type"></a><h3>The <code class="literal">"pdu-type"</code> property</h3>
<pre class="programlisting"> "pdu-type" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.PduType">"PduType"</a>.
+Represents the D-Bus property "PduType".
+</p>
+<p>
+Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
+</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="MmGdbusSms--service-category"></a><h3>The <code class="literal">"service-category"</code> property</h3>
+<pre class="programlisting"> "service-category" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
+<p>
+Represents the D-Bus property "ServiceCategory".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -1258,7 +1340,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusSms--smsc"></a><h3>The <code class="literal">"smsc"</code> property</h3>
<pre class="programlisting"> "smsc" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.SMSC">"SMSC"</a>.
+Represents the D-Bus property "SMSC".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -1270,7 +1352,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusSms--state"></a><h3>The <code class="literal">"state"</code> property</h3>
<pre class="programlisting"> "state" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.State">"State"</a>.
+Represents the D-Bus property "State".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -1282,7 +1364,19 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusSms--storage"></a><h3>The <code class="literal">"storage"</code> property</h3>
<pre class="programlisting"> "storage" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.Storage">"Storage"</a>.
+Represents the D-Bus property "Storage".
+</p>
+<p>
+Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
+</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="MmGdbusSms--teleservice-id"></a><h3>The <code class="literal">"teleservice-id"</code> property</h3>
+<pre class="programlisting"> "teleservice-id" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
+<p>
+Represents the D-Bus property "TeleserviceId".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -1294,7 +1388,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusSms--text"></a><h3>The <code class="literal">"text"</code> property</h3>
<pre class="programlisting"> "text" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.Text">"Text"</a>.
+Represents the D-Bus property "Text".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -1306,7 +1400,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusSms--timestamp"></a><h3>The <code class="literal">"timestamp"</code> property</h3>
<pre class="programlisting"> "timestamp" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.Timestamp">"Timestamp"</a>.
+Represents the D-Bus property "Timestamp".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -1318,7 +1412,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a name="MmGdbusSms--validity"></a><h3>The <code class="literal">"validity"</code> property</h3>
<pre class="programlisting"> "validity" <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* : Read / Write</pre>
<p>
-Represents the D-Bus property <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-property-org-freedesktop-ModemManager1-Sms.Validity">"Validity"</a>.
+Represents the D-Bus property "Validity".
</p>
<p>
Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
@@ -1335,7 +1429,7 @@ Since the D-Bus property for this <a href="http://library.gnome.org/devel/gobjec
<a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html"><span class="type">GDBusMethodInvocation</span></a> *invocation,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-method-org-freedesktop-ModemManager1-Sms.Send"><GTKDOCLINK HREF="Send"><code class="function">Send()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="Send"><code class="function">Send()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_sms_complete_send()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -1374,7 +1468,7 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_storage,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal emitted when a remote caller is invoking the <a href="/usr/share/gtk-doc/html/ModemManager/gdbus-org.freedesktop.ModemManager1.Sms.html#gdbus-method-org-freedesktop-ModemManager1-Sms.Store"><GTKDOCLINK HREF="Store"><code class="function">Store()</code></a></GTKDOCLINK> D-Bus method.
+Signal emitted when a remote caller is invoking the <GTKDOCLINK HREF="Store"><code class="function">Store()</code></GTKDOCLINK> D-Bus method.
</p>
<p>
If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it means the signal handler will handle the invocation (e.g. take a reference to <em class="parameter"><code>invocation</code></em> and eventually call <code class="function">mm_gdbus_sms_complete_store()</code> or e.g. <a href="http://library.gnome.org/devel/gio/unstable/GDBusMethodInvocation.html#g-dbus-method-invocation-return-error"><code class="function">g_dbus_method_invocation_return_error()</code></a> on it) and no order signal handlers will run. If no signal handler handles the invocation, the <a href="http://library.gnome.org/devel/gio/unstable/gio-GDBusError.html#G-DBUS-ERROR-UNKNOWN-METHOD:CAPS"><code class="literal">G_DBUS_ERROR_UNKNOWN_METHOD</code></a> error is returned.
@@ -1413,6 +1507,6 @@ If a signal handler returns <a href="http://library.gnome.org/devel/glib/unstabl
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusSmsProxy.html b/docs/reference/libmm-glib/html/MmGdbusSmsProxy.html
index f313e2f..01ef6f3 100644
--- a/docs/reference/libmm-glib/html/MmGdbusSmsProxy.html
+++ b/docs/reference/libmm-glib/html/MmGdbusSmsProxy.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusSms.html" title="MmGdbusSms">
<link rel="next" href="MmGdbusSmsSkeleton.html" title="MmGdbusSmsSkeleton">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -406,6 +406,6 @@ See <a class="link" href="MmGdbusSmsProxy.html#mm-gdbus-sms-proxy-new" title="mm
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/MmGdbusSmsSkeleton.html b/docs/reference/libmm-glib/html/MmGdbusSmsSkeleton.html
index 540ec15..57da3e0 100644
--- a/docs/reference/libmm-glib/html/MmGdbusSmsSkeleton.html
+++ b/docs/reference/libmm-glib/html/MmGdbusSmsSkeleton.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt02.html" title="Part II. Low level API">
<link rel="prev" href="MmGdbusSmsProxy.html" title="MmGdbusSmsProxy">
<link rel="next" href="object-tree.html" title="Object Hierarchy">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -97,6 +97,6 @@ Creates a skeleton object for the D-Bus interface org.freedesktop.ModemManager1.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/annotation-glossary.html b/docs/reference/libmm-glib/html/annotation-glossary.html
index fe2a08d..503f50c 100644
--- a/docs/reference/libmm-glib/html/annotation-glossary.html
+++ b/docs/reference/libmm-glib/html/annotation-glossary.html
@@ -7,7 +7,7 @@
<link rel="home" href="index.html" title="libmm-glib Reference Manual">
<link rel="up" href="index.html" title="libmm-glib Reference Manual">
<link rel="prev" href="deprecated-api-index.html" title="Index of deprecated API">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,50 +20,63 @@
<td> </td>
</tr>
<tr><td colspan="5" class="shortcuts">
-<a class="shortcut" href="#glsO">O</a>
+<a class="shortcut" href="#glsA">A</a>
 | 
- <a class="shortcut" href="#glsA">A</a>
+ <a class="shortcut" href="#glsS">S</a>
 | 
- <a class="shortcut" href="#glsT">T</a>
+ <a class="shortcut" href="#glsE">E</a>
 | 
<a class="shortcut" href="#glsA">A</a>
 | 
- <a class="shortcut" href="#glsE">E</a>
+ <a class="shortcut" href="#glsT">T</a>
 | 
<a class="shortcut" href="#glsS">S</a>
 | 
<a class="shortcut" href="#glsT">T</a>
+  | 
+ <a class="shortcut" href="#glsO">O</a>
+  | 
+ <a class="shortcut" href="#glsT">T</a>
+  | 
+ <a class="shortcut" href="#glsC">C</a>
</td></tr>
</table>
<div class="glossary">
<div class="titlepage"><div><div><h1 class="title">
<a name="annotation-glossary"></a>Annotation Glossary</h1></div></div></div>
-<a name="glsO"></a><h3 class="title">O</h3>
-<dt><span class="glossterm"><a name="annotation-glossterm-out"></a>out</span></dt>
-<dd class="glossdef"><p>Parameter for returning results. Default is <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>.</p></dd>
-<a name="glsA"></a><h3 class="title">A</h3>
-<dt><span class="glossterm"><a name="annotation-glossterm-allow-none"></a>allow-none</span></dt>
-<dd class="glossdef"><p>NULL is ok, both for passing and for returning.</p></dd>
-<a name="glsT"></a><h3 class="title">T</h3>
-<dt><span class="glossterm"><a name="annotation-glossterm-transfer%20none"></a>transfer none</span></dt>
-<dd class="glossdef"><p>Don't free data after the code is done.</p></dd>
<a name="glsA"></a><h3 class="title">A</h3>
<dt><span class="glossterm"><a name="annotation-glossterm-array"></a>array</span></dt>
<dd class="glossdef"><p>Parameter points to an array of items.</p></dd>
+<a name="glsS"></a><h3 class="title">S</h3>
+<dt><span class="glossterm"><a name="annotation-glossterm-skip"></a>skip</span></dt>
+<dd class="glossdef"><p>Exposed in C code, not necessarily available in other languages.</p></dd>
<a name="glsE"></a><h3 class="title">E</h3>
<dt><span class="glossterm"><a name="annotation-glossterm-element-type"></a>element-type</span></dt>
<dd class="glossdef"><p>Generics and defining elements of containers and arrays.</p></dd>
+<a name="glsA"></a><h3 class="title">A</h3>
+<dt><span class="glossterm"><a name="annotation-glossterm-allow-none"></a>allow-none</span></dt>
+<dd class="glossdef"><p>NULL is ok, both for passing and for returning.</p></dd>
+<a name="glsT"></a><h3 class="title">T</h3>
+<dt><span class="glossterm"><a name="annotation-glossterm-transfer%20none"></a>transfer none</span></dt>
+<dd class="glossdef"><p>Don't free data after the code is done.</p></dd>
<a name="glsS"></a><h3 class="title">S</h3>
-<dt><span class="glossterm"><a name="annotation-glossterm-skip"></a>skip</span></dt>
-<dd class="glossdef"><p>Exposed in C code, not necessarily available in other languages.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-scope%20call"></a>scope call</span></dt>
+<dd class="glossdef"><p>The callback is valid only during the call to the method.</p></dd>
<a name="glsT"></a><h3 class="title">T</h3>
-<dt><span class="glossterm"><a name="annotation-glossterm-transfer%20full"></a>transfer full</span></dt>
-<dd class="glossdef"><p>Free data after the code is done.</p></dd>
<dt><span class="glossterm"><a name="annotation-glossterm-type"></a>type</span></dt>
<dd class="glossdef"><p>Override the parsed C type with given type.</p></dd>
+<a name="glsO"></a><h3 class="title">O</h3>
+<dt><span class="glossterm"><a name="annotation-glossterm-out"></a>out</span></dt>
+<dd class="glossdef"><p>Parameter for returning results. Default is <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>.</p></dd>
+<a name="glsT"></a><h3 class="title">T</h3>
+<dt><span class="glossterm"><a name="annotation-glossterm-transfer%20full"></a>transfer full</span></dt>
+<dd class="glossdef"><p>Free data after the code is done.</p></dd>
+<a name="glsC"></a><h3 class="title">C</h3>
+<dt><span class="glossterm"><a name="annotation-glossterm-closure"></a>closure</span></dt>
+<dd class="glossdef"><p>This parameter is a 'user_data', for callbacks; many bindings can pass NULL here.</p></dd>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/api-index-full.html b/docs/reference/libmm-glib/html/api-index-full.html
index dc54521..a37664b 100644
--- a/docs/reference/libmm-glib/html/api-index-full.html
+++ b/docs/reference/libmm-glib/html/api-index-full.html
@@ -8,7 +8,7 @@
<link rel="up" href="index.html" title="libmm-glib Reference Manual">
<link rel="prev" href="object-tree.html" title="Object Hierarchy">
<link rel="next" href="deprecated-api-index.html" title="Index of deprecated API">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -23,6 +23,8 @@
<tr><td colspan="5" class="shortcuts">
<a class="shortcut" href="#idxB">B</a>
 | 
+ <a class="shortcut" href="#idxC">C</a>
+  | 
<a class="shortcut" href="#idxF">F</a>
 | 
<a class="shortcut" href="#idxG">G</a>
@@ -232,6 +234,83 @@
<a class="link" href="MMBearerProperties.html#mm-bearer-properties-set-user" title="mm_bearer_properties_set_user ()">mm_bearer_properties_set_user</a>, function in <a class="link" href="MMBearerProperties.html" title="MMBearerProperties">MMBearerProperties</a>
</dt>
<dd></dd>
+<a name="idxC"></a><h3 class="title">C</h3>
+<dt>
+<a class="link" href="MMCdmaManualActivationProperties.html#MMCdmaManualActivationProperties-struct" title="struct MMCdmaManualActivationProperties">MMCdmaManualActivationProperties</a>, struct in <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties">MMCdmaManualActivationProperties</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-get-mdn" title="mm_cdma_manual_activation_properties_get_mdn ()">mm_cdma_manual_activation_properties_get_mdn</a>, function in <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties">MMCdmaManualActivationProperties</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-get-min" title="mm_cdma_manual_activation_properties_get_min ()">mm_cdma_manual_activation_properties_get_min</a>, function in <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties">MMCdmaManualActivationProperties</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-get-mn-aaa-key" title="mm_cdma_manual_activation_properties_get_mn_aaa_key ()">mm_cdma_manual_activation_properties_get_mn_aaa_key</a>, function in <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties">MMCdmaManualActivationProperties</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-get-mn-ha-key" title="mm_cdma_manual_activation_properties_get_mn_ha_key ()">mm_cdma_manual_activation_properties_get_mn_ha_key</a>, function in <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties">MMCdmaManualActivationProperties</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-get-prl" title="mm_cdma_manual_activation_properties_get_prl ()">mm_cdma_manual_activation_properties_get_prl</a>, function in <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties">MMCdmaManualActivationProperties</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-get-prl-bytearray" title="mm_cdma_manual_activation_properties_get_prl_bytearray ()">mm_cdma_manual_activation_properties_get_prl_bytearray</a>, function in <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties">MMCdmaManualActivationProperties</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-get-sid" title="mm_cdma_manual_activation_properties_get_sid ()">mm_cdma_manual_activation_properties_get_sid</a>, function in <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties">MMCdmaManualActivationProperties</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-get-spc" title="mm_cdma_manual_activation_properties_get_spc ()">mm_cdma_manual_activation_properties_get_spc</a>, function in <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties">MMCdmaManualActivationProperties</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-new" title="mm_cdma_manual_activation_properties_new ()">mm_cdma_manual_activation_properties_new</a>, function in <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties">MMCdmaManualActivationProperties</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-peek-prl-bytearray" title="mm_cdma_manual_activation_properties_peek_prl_bytearray ()">mm_cdma_manual_activation_properties_peek_prl_bytearray</a>, function in <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties">MMCdmaManualActivationProperties</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-set-mdn" title="mm_cdma_manual_activation_properties_set_mdn ()">mm_cdma_manual_activation_properties_set_mdn</a>, function in <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties">MMCdmaManualActivationProperties</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-set-min" title="mm_cdma_manual_activation_properties_set_min ()">mm_cdma_manual_activation_properties_set_min</a>, function in <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties">MMCdmaManualActivationProperties</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-set-mn-aaa-key" title="mm_cdma_manual_activation_properties_set_mn_aaa_key ()">mm_cdma_manual_activation_properties_set_mn_aaa_key</a>, function in <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties">MMCdmaManualActivationProperties</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-set-mn-ha-key" title="mm_cdma_manual_activation_properties_set_mn_ha_key ()">mm_cdma_manual_activation_properties_set_mn_ha_key</a>, function in <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties">MMCdmaManualActivationProperties</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-set-prl" title="mm_cdma_manual_activation_properties_set_prl ()">mm_cdma_manual_activation_properties_set_prl</a>, function in <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties">MMCdmaManualActivationProperties</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-set-prl-bytearray" title="mm_cdma_manual_activation_properties_set_prl_bytearray ()">mm_cdma_manual_activation_properties_set_prl_bytearray</a>, function in <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties">MMCdmaManualActivationProperties</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-set-sid" title="mm_cdma_manual_activation_properties_set_sid ()">mm_cdma_manual_activation_properties_set_sid</a>, function in <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties">MMCdmaManualActivationProperties</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-set-spc" title="mm_cdma_manual_activation_properties_set_spc ()">mm_cdma_manual_activation_properties_set_spc</a>, function in <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties">MMCdmaManualActivationProperties</a>
+</dt>
+<dd></dd>
<a name="idxF"></a><h3 class="title">F</h3>
<dt>
<a class="link" href="MMFirmwareProperties.html#MMFirmwareProperties-struct" title="struct MMFirmwareProperties">MMFirmwareProperties</a>, struct in <a class="link" href="MMFirmwareProperties.html" title="MMFirmwareProperties">MMFirmwareProperties</a>
@@ -359,6 +438,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="MmGdbusModem3gpp.html#MmGdbusModem3gpp--subscription-state" title='The "subscription-state" property'>MmGdbusModem3gpp:subscription-state</a>, object property in <a class="link" href="MmGdbusModem3gpp.html" title="MmGdbusModem3gpp">MmGdbusModem3gpp</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MmGdbusModem3gpp.html#MmGdbusModem3gppIface" title="struct MmGdbusModem3gppIface">MmGdbusModem3gppIface</a>, struct in <a class="link" href="MmGdbusModem3gpp.html" title="MmGdbusModem3gpp">MmGdbusModem3gpp</a>
</dt>
<dd></dd>
@@ -463,6 +546,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="MmGdbusModem.html#MmGdbusModem--bearers" title='The "bearers" property'>MmGdbusModem:bearers</a>, object property in <a class="link" href="MmGdbusModem.html" title="MmGdbusModem">MmGdbusModem</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MmGdbusModem.html#MmGdbusModem--current-bands" title='The "current-bands" property'>MmGdbusModem:current-bands</a>, object property in <a class="link" href="MmGdbusModem.html" title="MmGdbusModem">MmGdbusModem</a>
</dt>
<dd></dd>
@@ -723,6 +810,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="MmGdbusModemMessaging.html#MmGdbusModemMessaging--messages" title='The "messages" property'>MmGdbusModemMessaging:messages</a>, object property in <a class="link" href="MmGdbusModemMessaging.html" title="MmGdbusModemMessaging">MmGdbusModemMessaging</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MmGdbusModemMessaging.html#MmGdbusModemMessaging--supported-storages" title='The "supported-storages" property'>MmGdbusModemMessaging:supported-storages</a>, object property in <a class="link" href="MmGdbusModemMessaging.html" title="MmGdbusModemMessaging">MmGdbusModemMessaging</a>
</dt>
<dd></dd>
@@ -739,10 +830,106 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="MmGdbusModemOma.html#MmGdbusModemOma-struct" title="MmGdbusModemOma">MmGdbusModemOma</a>, struct in <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma">MmGdbusModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOma.html#MmGdbusModemOma-handle-accept-network-initiated-session" title='The "handle-accept-network-initiated-session" signal'>MmGdbusModemOma::handle-accept-network-initiated-session</a>, object signal in <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma">MmGdbusModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOma.html#MmGdbusModemOma-handle-cancel-session" title='The "handle-cancel-session" signal'>MmGdbusModemOma::handle-cancel-session</a>, object signal in <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma">MmGdbusModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOma.html#MmGdbusModemOma-handle-setup" title='The "handle-setup" signal'>MmGdbusModemOma::handle-setup</a>, object signal in <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma">MmGdbusModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOma.html#MmGdbusModemOma-handle-start-client-initiated-session" title='The "handle-start-client-initiated-session" signal'>MmGdbusModemOma::handle-start-client-initiated-session</a>, object signal in <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma">MmGdbusModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOma.html#MmGdbusModemOma-session-state-changed" title='The "session-state-changed" signal'>MmGdbusModemOma::session-state-changed</a>, object signal in <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma">MmGdbusModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOma.html#MmGdbusModemOma--features" title='The "features" property'>MmGdbusModemOma:features</a>, object property in <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma">MmGdbusModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOma.html#MmGdbusModemOma--pending-network-initiated-sessions" title='The "pending-network-initiated-sessions" property'>MmGdbusModemOma:pending-network-initiated-sessions</a>, object property in <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma">MmGdbusModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOma.html#MmGdbusModemOma--session-state" title='The "session-state" property'>MmGdbusModemOma:session-state</a>, object property in <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma">MmGdbusModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOma.html#MmGdbusModemOma--session-type" title='The "session-type" property'>MmGdbusModemOma:session-type</a>, object property in <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma">MmGdbusModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOma.html#MmGdbusModemOmaIface" title="struct MmGdbusModemOmaIface">MmGdbusModemOmaIface</a>, struct in <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma">MmGdbusModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOmaProxy.html#MmGdbusModemOmaProxy-struct" title="struct MmGdbusModemOmaProxy">MmGdbusModemOmaProxy</a>, struct in <a class="link" href="MmGdbusModemOmaProxy.html" title="MmGdbusModemOmaProxy">MmGdbusModemOmaProxy</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOmaSkeleton.html#MmGdbusModemOmaSkeleton-struct" title="struct MmGdbusModemOmaSkeleton">MmGdbusModemOmaSkeleton</a>, struct in <a class="link" href="MmGdbusModemOmaSkeleton.html" title="MmGdbusModemOmaSkeleton">MmGdbusModemOmaSkeleton</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MmGdbusModemProxy.html#MmGdbusModemProxy-struct" title="struct MmGdbusModemProxy">MmGdbusModemProxy</a>, struct in <a class="link" href="MmGdbusModemProxy.html" title="MmGdbusModemProxy">MmGdbusModemProxy</a>
</dt>
<dd></dd>
<dt>
+<a class="link" href="MmGdbusModemSignal.html#MmGdbusModemSignal-struct" title="MmGdbusModemSignal">MmGdbusModemSignal</a>, struct in <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal">MmGdbusModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemSignal.html#MmGdbusModemSignal-handle-setup" title='The "handle-setup" signal'>MmGdbusModemSignal::handle-setup</a>, object signal in <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal">MmGdbusModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemSignal.html#MmGdbusModemSignal--cdma" title='The "cdma" property'>MmGdbusModemSignal:cdma</a>, object property in <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal">MmGdbusModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemSignal.html#MmGdbusModemSignal--evdo" title='The "evdo" property'>MmGdbusModemSignal:evdo</a>, object property in <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal">MmGdbusModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemSignal.html#MmGdbusModemSignal--gsm" title='The "gsm" property'>MmGdbusModemSignal:gsm</a>, object property in <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal">MmGdbusModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemSignal.html#MmGdbusModemSignal--lte" title='The "lte" property'>MmGdbusModemSignal:lte</a>, object property in <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal">MmGdbusModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemSignal.html#MmGdbusModemSignal--rate" title='The "rate" property'>MmGdbusModemSignal:rate</a>, object property in <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal">MmGdbusModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemSignal.html#MmGdbusModemSignal--umts" title='The "umts" property'>MmGdbusModemSignal:umts</a>, object property in <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal">MmGdbusModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemSignal.html#MmGdbusModemSignalIface" title="struct MmGdbusModemSignalIface">MmGdbusModemSignalIface</a>, struct in <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal">MmGdbusModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemSignalProxy.html#MmGdbusModemSignalProxy-struct" title="struct MmGdbusModemSignalProxy">MmGdbusModemSignalProxy</a>, struct in <a class="link" href="MmGdbusModemSignalProxy.html" title="MmGdbusModemSignalProxy">MmGdbusModemSignalProxy</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemSignalSkeleton.html#MmGdbusModemSignalSkeleton-struct" title="struct MmGdbusModemSignalSkeleton">MmGdbusModemSignalSkeleton</a>, struct in <a class="link" href="MmGdbusModemSignalSkeleton.html" title="MmGdbusModemSignalSkeleton">MmGdbusModemSignalSkeleton</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MmGdbusModemSimple.html#MmGdbusModemSimple-struct" title="MmGdbusModemSimple">MmGdbusModemSimple</a>, struct in <a class="link" href="MmGdbusModemSimple.html" title="MmGdbusModemSimple">MmGdbusModemSimple</a>
</dt>
<dd></dd>
@@ -827,6 +1014,14 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="MmGdbusObject.html#MmGdbusObject--modem-oma" title='The "modem-oma" property'>MmGdbusObject:modem-oma</a>, object property in <a class="link" href="MmGdbusObject.html" title="MmGdbusObject">MmGdbusObject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusObject.html#MmGdbusObject--modem-signal" title='The "modem-signal" property'>MmGdbusObject:modem-signal</a>, object property in <a class="link" href="MmGdbusObject.html" title="MmGdbusObject">MmGdbusObject</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MmGdbusObject.html#MmGdbusObject--modem-simple" title='The "modem-simple" property'>MmGdbusObject:modem-simple</a>, object property in <a class="link" href="MmGdbusObject.html" title="MmGdbusObject">MmGdbusObject</a>
</dt>
<dd></dd>
@@ -975,6 +1170,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="MmGdbusSms.html#MmGdbusSms--service-category" title='The "service-category" property'>MmGdbusSms:service-category</a>, object property in <a class="link" href="MmGdbusSms.html" title="MmGdbusSms">MmGdbusSms</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MmGdbusSms.html#MmGdbusSms--smsc" title='The "smsc" property'>MmGdbusSms:smsc</a>, object property in <a class="link" href="MmGdbusSms.html" title="MmGdbusSms">MmGdbusSms</a>
</dt>
<dd></dd>
@@ -987,6 +1186,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="MmGdbusSms.html#MmGdbusSms--teleservice-id" title='The "teleservice-id" property'>MmGdbusSms:teleservice-id</a>, object property in <a class="link" href="MmGdbusSms.html" title="MmGdbusSms">MmGdbusSms</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MmGdbusSms.html#MmGdbusSms--text" title='The "text" property'>MmGdbusSms:text</a>, object property in <a class="link" href="MmGdbusSms.html" title="MmGdbusSms">MmGdbusSms</a>
</dt>
<dd></dd>
@@ -1163,6 +1366,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="MmGdbusModem3gpp.html#mm-gdbus-modem3gpp-get-subscription-state" title="mm_gdbus_modem3gpp_get_subscription_state ()">mm_gdbus_modem3gpp_get_subscription_state</a>, function in <a class="link" href="MmGdbusModem3gpp.html" title="MmGdbusModem3gpp">MmGdbusModem3gpp</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MmGdbusModem3gppProxy.html#mm-gdbus-modem3gpp-proxy-new" title="mm_gdbus_modem3gpp_proxy_new ()">mm_gdbus_modem3gpp_proxy_new</a>, function in <a class="link" href="MmGdbusModem3gppProxy.html" title="MmGdbusModem3gppProxy">MmGdbusModem3gppProxy</a>
</dt>
<dd></dd>
@@ -1495,6 +1702,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="MmGdbusModem.html#mm-gdbus-modem-dup-bearers" title="mm_gdbus_modem_dup_bearers ()">mm_gdbus_modem_dup_bearers</a>, function in <a class="link" href="MmGdbusModem.html" title="MmGdbusModem">MmGdbusModem</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MmGdbusModem.html#mm-gdbus-modem-dup-current-bands" title="mm_gdbus_modem_dup_current_bands ()">mm_gdbus_modem_dup_current_bands</a>, function in <a class="link" href="MmGdbusModem.html" title="MmGdbusModem">MmGdbusModem</a>
</dt>
<dd></dd>
@@ -1627,6 +1838,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="MmGdbusModem.html#mm-gdbus-modem-get-bearers" title="mm_gdbus_modem_get_bearers ()">mm_gdbus_modem_get_bearers</a>, function in <a class="link" href="MmGdbusModem.html" title="MmGdbusModem">MmGdbusModem</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MmGdbusModem.html#mm-gdbus-modem-get-current-bands" title="mm_gdbus_modem_get_current_bands ()">mm_gdbus_modem_get_current_bands</a>, function in <a class="link" href="MmGdbusModem.html" title="MmGdbusModem">MmGdbusModem</a>
</dt>
<dd></dd>
@@ -1843,6 +2058,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="MmGdbusModemMessaging.html#mm-gdbus-modem-messaging-dup-messages" title="mm_gdbus_modem_messaging_dup_messages ()">mm_gdbus_modem_messaging_dup_messages</a>, function in <a class="link" href="MmGdbusModemMessaging.html" title="MmGdbusModemMessaging">MmGdbusModemMessaging</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MmGdbusModemMessaging.html#mm-gdbus-modem-messaging-dup-supported-storages" title="mm_gdbus_modem_messaging_dup_supported_storages ()">mm_gdbus_modem_messaging_dup_supported_storages</a>, function in <a class="link" href="MmGdbusModemMessaging.html" title="MmGdbusModemMessaging">MmGdbusModemMessaging</a>
</dt>
<dd></dd>
@@ -1851,6 +2070,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="MmGdbusModemMessaging.html#mm-gdbus-modem-messaging-get-messages" title="mm_gdbus_modem_messaging_get_messages ()">mm_gdbus_modem_messaging_get_messages</a>, function in <a class="link" href="MmGdbusModemMessaging.html" title="MmGdbusModemMessaging">MmGdbusModemMessaging</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MmGdbusModemMessaging.html#mm-gdbus-modem-messaging-get-supported-storages" title="mm_gdbus_modem_messaging_get_supported_storages ()">mm_gdbus_modem_messaging_get_supported_storages</a>, function in <a class="link" href="MmGdbusModemMessaging.html" title="MmGdbusModemMessaging">MmGdbusModemMessaging</a>
</dt>
<dd></dd>
@@ -1883,6 +2106,102 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-accept-network-initiated-session" title="mm_gdbus_modem_oma_call_accept_network_initiated_session ()">mm_gdbus_modem_oma_call_accept_network_initiated_session</a>, function in <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma">MmGdbusModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-accept-network-initiated-session-finish" title="mm_gdbus_modem_oma_call_accept_network_initiated_session_finish ()">mm_gdbus_modem_oma_call_accept_network_initiated_session_finish</a>, function in <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma">MmGdbusModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-accept-network-initiated-session-sync" title="mm_gdbus_modem_oma_call_accept_network_initiated_session_sync ()">mm_gdbus_modem_oma_call_accept_network_initiated_session_sync</a>, function in <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma">MmGdbusModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-cancel-session" title="mm_gdbus_modem_oma_call_cancel_session ()">mm_gdbus_modem_oma_call_cancel_session</a>, function in <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma">MmGdbusModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-cancel-session-finish" title="mm_gdbus_modem_oma_call_cancel_session_finish ()">mm_gdbus_modem_oma_call_cancel_session_finish</a>, function in <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma">MmGdbusModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-cancel-session-sync" title="mm_gdbus_modem_oma_call_cancel_session_sync ()">mm_gdbus_modem_oma_call_cancel_session_sync</a>, function in <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma">MmGdbusModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-setup" title="mm_gdbus_modem_oma_call_setup ()">mm_gdbus_modem_oma_call_setup</a>, function in <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma">MmGdbusModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-setup-finish" title="mm_gdbus_modem_oma_call_setup_finish ()">mm_gdbus_modem_oma_call_setup_finish</a>, function in <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma">MmGdbusModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-setup-sync" title="mm_gdbus_modem_oma_call_setup_sync ()">mm_gdbus_modem_oma_call_setup_sync</a>, function in <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma">MmGdbusModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-start-client-initiated-session" title="mm_gdbus_modem_oma_call_start_client_initiated_session ()">mm_gdbus_modem_oma_call_start_client_initiated_session</a>, function in <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma">MmGdbusModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-start-client-initiated-session-finish" title="mm_gdbus_modem_oma_call_start_client_initiated_session_finish ()">mm_gdbus_modem_oma_call_start_client_initiated_session_finish</a>, function in <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma">MmGdbusModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-start-client-initiated-session-sync" title="mm_gdbus_modem_oma_call_start_client_initiated_session_sync ()">mm_gdbus_modem_oma_call_start_client_initiated_session_sync</a>, function in <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma">MmGdbusModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-dup-pending-network-initiated-sessions" title="mm_gdbus_modem_oma_dup_pending_network_initiated_sessions ()">mm_gdbus_modem_oma_dup_pending_network_initiated_sessions</a>, function in <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma">MmGdbusModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-get-features" title="mm_gdbus_modem_oma_get_features ()">mm_gdbus_modem_oma_get_features</a>, function in <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma">MmGdbusModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-get-pending-network-initiated-sessions" title="mm_gdbus_modem_oma_get_pending_network_initiated_sessions ()">mm_gdbus_modem_oma_get_pending_network_initiated_sessions</a>, function in <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma">MmGdbusModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-get-session-state" title="mm_gdbus_modem_oma_get_session_state ()">mm_gdbus_modem_oma_get_session_state</a>, function in <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma">MmGdbusModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOma.html#mm-gdbus-modem-oma-get-session-type" title="mm_gdbus_modem_oma_get_session_type ()">mm_gdbus_modem_oma_get_session_type</a>, function in <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma">MmGdbusModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new" title="mm_gdbus_modem_oma_proxy_new ()">mm_gdbus_modem_oma_proxy_new</a>, function in <a class="link" href="MmGdbusModemOmaProxy.html" title="MmGdbusModemOmaProxy">MmGdbusModemOmaProxy</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new-finish" title="mm_gdbus_modem_oma_proxy_new_finish ()">mm_gdbus_modem_oma_proxy_new_finish</a>, function in <a class="link" href="MmGdbusModemOmaProxy.html" title="MmGdbusModemOmaProxy">MmGdbusModemOmaProxy</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new-for-bus" title="mm_gdbus_modem_oma_proxy_new_for_bus ()">mm_gdbus_modem_oma_proxy_new_for_bus</a>, function in <a class="link" href="MmGdbusModemOmaProxy.html" title="MmGdbusModemOmaProxy">MmGdbusModemOmaProxy</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new-for-bus-finish" title="mm_gdbus_modem_oma_proxy_new_for_bus_finish ()">mm_gdbus_modem_oma_proxy_new_for_bus_finish</a>, function in <a class="link" href="MmGdbusModemOmaProxy.html" title="MmGdbusModemOmaProxy">MmGdbusModemOmaProxy</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new-for-bus-sync" title="mm_gdbus_modem_oma_proxy_new_for_bus_sync ()">mm_gdbus_modem_oma_proxy_new_for_bus_sync</a>, function in <a class="link" href="MmGdbusModemOmaProxy.html" title="MmGdbusModemOmaProxy">MmGdbusModemOmaProxy</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new-sync" title="mm_gdbus_modem_oma_proxy_new_sync ()">mm_gdbus_modem_oma_proxy_new_sync</a>, function in <a class="link" href="MmGdbusModemOmaProxy.html" title="MmGdbusModemOmaProxy">MmGdbusModemOmaProxy</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemOmaSkeleton.html#mm-gdbus-modem-oma-skeleton-new" title="mm_gdbus_modem_oma_skeleton_new ()">mm_gdbus_modem_oma_skeleton_new</a>, function in <a class="link" href="MmGdbusModemOmaSkeleton.html" title="MmGdbusModemOmaSkeleton">MmGdbusModemOmaSkeleton</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MmGdbusModemProxy.html#mm-gdbus-modem-proxy-new" title="mm_gdbus_modem_proxy_new ()">mm_gdbus_modem_proxy_new</a>, function in <a class="link" href="MmGdbusModemProxy.html" title="MmGdbusModemProxy">MmGdbusModemProxy</a>
</dt>
<dd></dd>
@@ -1907,6 +2226,90 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-call-setup" title="mm_gdbus_modem_signal_call_setup ()">mm_gdbus_modem_signal_call_setup</a>, function in <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal">MmGdbusModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-call-setup-finish" title="mm_gdbus_modem_signal_call_setup_finish ()">mm_gdbus_modem_signal_call_setup_finish</a>, function in <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal">MmGdbusModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-call-setup-sync" title="mm_gdbus_modem_signal_call_setup_sync ()">mm_gdbus_modem_signal_call_setup_sync</a>, function in <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal">MmGdbusModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-dup-cdma" title="mm_gdbus_modem_signal_dup_cdma ()">mm_gdbus_modem_signal_dup_cdma</a>, function in <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal">MmGdbusModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-dup-evdo" title="mm_gdbus_modem_signal_dup_evdo ()">mm_gdbus_modem_signal_dup_evdo</a>, function in <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal">MmGdbusModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-dup-gsm" title="mm_gdbus_modem_signal_dup_gsm ()">mm_gdbus_modem_signal_dup_gsm</a>, function in <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal">MmGdbusModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-dup-lte" title="mm_gdbus_modem_signal_dup_lte ()">mm_gdbus_modem_signal_dup_lte</a>, function in <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal">MmGdbusModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-dup-umts" title="mm_gdbus_modem_signal_dup_umts ()">mm_gdbus_modem_signal_dup_umts</a>, function in <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal">MmGdbusModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-get-cdma" title="mm_gdbus_modem_signal_get_cdma ()">mm_gdbus_modem_signal_get_cdma</a>, function in <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal">MmGdbusModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-get-evdo" title="mm_gdbus_modem_signal_get_evdo ()">mm_gdbus_modem_signal_get_evdo</a>, function in <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal">MmGdbusModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-get-gsm" title="mm_gdbus_modem_signal_get_gsm ()">mm_gdbus_modem_signal_get_gsm</a>, function in <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal">MmGdbusModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-get-lte" title="mm_gdbus_modem_signal_get_lte ()">mm_gdbus_modem_signal_get_lte</a>, function in <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal">MmGdbusModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-get-rate" title="mm_gdbus_modem_signal_get_rate ()">mm_gdbus_modem_signal_get_rate</a>, function in <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal">MmGdbusModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemSignal.html#mm-gdbus-modem-signal-get-umts" title="mm_gdbus_modem_signal_get_umts ()">mm_gdbus_modem_signal_get_umts</a>, function in <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal">MmGdbusModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new" title="mm_gdbus_modem_signal_proxy_new ()">mm_gdbus_modem_signal_proxy_new</a>, function in <a class="link" href="MmGdbusModemSignalProxy.html" title="MmGdbusModemSignalProxy">MmGdbusModemSignalProxy</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new-finish" title="mm_gdbus_modem_signal_proxy_new_finish ()">mm_gdbus_modem_signal_proxy_new_finish</a>, function in <a class="link" href="MmGdbusModemSignalProxy.html" title="MmGdbusModemSignalProxy">MmGdbusModemSignalProxy</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new-for-bus" title="mm_gdbus_modem_signal_proxy_new_for_bus ()">mm_gdbus_modem_signal_proxy_new_for_bus</a>, function in <a class="link" href="MmGdbusModemSignalProxy.html" title="MmGdbusModemSignalProxy">MmGdbusModemSignalProxy</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new-for-bus-finish" title="mm_gdbus_modem_signal_proxy_new_for_bus_finish ()">mm_gdbus_modem_signal_proxy_new_for_bus_finish</a>, function in <a class="link" href="MmGdbusModemSignalProxy.html" title="MmGdbusModemSignalProxy">MmGdbusModemSignalProxy</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new-for-bus-sync" title="mm_gdbus_modem_signal_proxy_new_for_bus_sync ()">mm_gdbus_modem_signal_proxy_new_for_bus_sync</a>, function in <a class="link" href="MmGdbusModemSignalProxy.html" title="MmGdbusModemSignalProxy">MmGdbusModemSignalProxy</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new-sync" title="mm_gdbus_modem_signal_proxy_new_sync ()">mm_gdbus_modem_signal_proxy_new_sync</a>, function in <a class="link" href="MmGdbusModemSignalProxy.html" title="MmGdbusModemSignalProxy">MmGdbusModemSignalProxy</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusModemSignalSkeleton.html#mm-gdbus-modem-signal-skeleton-new" title="mm_gdbus_modem_signal_skeleton_new ()">mm_gdbus_modem_signal_skeleton_new</a>, function in <a class="link" href="MmGdbusModemSignalSkeleton.html" title="MmGdbusModemSignalSkeleton">MmGdbusModemSignalSkeleton</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MmGdbusModemSimple.html#mm-gdbus-modem-simple-call-connect" title="mm_gdbus_modem_simple_call_connect ()">mm_gdbus_modem_simple_call_connect</a>, function in <a class="link" href="MmGdbusModemSimple.html" title="MmGdbusModemSimple">MmGdbusModemSimple</a>
</dt>
<dd></dd>
@@ -2051,6 +2454,14 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="MmGdbusObject.html#mm-gdbus-object-get-modem-oma" title="mm_gdbus_object_get_modem_oma ()">mm_gdbus_object_get_modem_oma</a>, function in <a class="link" href="MmGdbusObject.html" title="MmGdbusObject">MmGdbusObject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusObject.html#mm-gdbus-object-get-modem-signal" title="mm_gdbus_object_get_modem_signal ()">mm_gdbus_object_get_modem_signal</a>, function in <a class="link" href="MmGdbusObject.html" title="MmGdbusObject">MmGdbusObject</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MmGdbusObject.html#mm-gdbus-object-get-modem-simple" title="mm_gdbus_object_get_modem_simple ()">mm_gdbus_object_get_modem_simple</a>, function in <a class="link" href="MmGdbusObject.html" title="MmGdbusObject">MmGdbusObject</a>
</dt>
<dd></dd>
@@ -2115,6 +2526,14 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="MmGdbusObject.html#mm-gdbus-object-peek-modem-oma" title="mm_gdbus_object_peek_modem_oma ()">mm_gdbus_object_peek_modem_oma</a>, function in <a class="link" href="MmGdbusObject.html" title="MmGdbusObject">MmGdbusObject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusObject.html#mm-gdbus-object-peek-modem-signal" title="mm_gdbus_object_peek_modem_signal ()">mm_gdbus_object_peek_modem_signal</a>, function in <a class="link" href="MmGdbusObject.html" title="MmGdbusObject">MmGdbusObject</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MmGdbusObject.html#mm-gdbus-object-peek-modem-simple" title="mm_gdbus_object_peek_modem_simple ()">mm_gdbus_object_peek_modem_simple</a>, function in <a class="link" href="MmGdbusObject.html" title="MmGdbusObject">MmGdbusObject</a>
</dt>
<dd></dd>
@@ -2159,6 +2578,14 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="MmGdbusObjectSkeleton.html#mm-gdbus-object-skeleton-set-modem-oma" title="mm_gdbus_object_skeleton_set_modem_oma ()">mm_gdbus_object_skeleton_set_modem_oma</a>, function in <a class="link" href="MmGdbusObjectSkeleton.html" title="MmGdbusObjectSkeleton">MmGdbusObjectSkeleton</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MmGdbusObjectSkeleton.html#mm-gdbus-object-skeleton-set-modem-signal" title="mm_gdbus_object_skeleton_set_modem_signal ()">mm_gdbus_object_skeleton_set_modem_signal</a>, function in <a class="link" href="MmGdbusObjectSkeleton.html" title="MmGdbusObjectSkeleton">MmGdbusObjectSkeleton</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MmGdbusObjectSkeleton.html#mm-gdbus-object-skeleton-set-modem-simple" title="mm_gdbus_object_skeleton_set_modem_simple ()">mm_gdbus_object_skeleton_set_modem_simple</a>, function in <a class="link" href="MmGdbusObjectSkeleton.html" title="MmGdbusObjectSkeleton">MmGdbusObjectSkeleton</a>
</dt>
<dd></dd>
@@ -2411,6 +2838,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="MmGdbusSms.html#mm-gdbus-sms-get-service-category" title="mm_gdbus_sms_get_service_category ()">mm_gdbus_sms_get_service_category</a>, function in <a class="link" href="MmGdbusSms.html" title="MmGdbusSms">MmGdbusSms</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MmGdbusSms.html#mm-gdbus-sms-get-smsc" title="mm_gdbus_sms_get_smsc ()">mm_gdbus_sms_get_smsc</a>, function in <a class="link" href="MmGdbusSms.html" title="MmGdbusSms">MmGdbusSms</a>
</dt>
<dd></dd>
@@ -2423,6 +2854,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="MmGdbusSms.html#mm-gdbus-sms-get-teleservice-id" title="mm_gdbus_sms_get_teleservice_id ()">mm_gdbus_sms_get_teleservice_id</a>, function in <a class="link" href="MmGdbusSms.html" title="MmGdbusSms">MmGdbusSms</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MmGdbusSms.html#mm-gdbus-sms-get-text" title="mm_gdbus_sms_get_text ()">mm_gdbus_sms_get_text</a>, function in <a class="link" href="MmGdbusSms.html" title="MmGdbusSms">MmGdbusSms</a>
</dt>
<dd></dd>
@@ -2621,11 +3056,19 @@
</dt>
<dd></dd>
<dt>
-<a class="link" href="MMModem.html#MMModemModeCombination" title="MMModemModeCombination">MMModemModeCombination</a>, struct in <a class="link" href="MMModem.html" title="MMModem">MMModem</a>
+<a class="link" href="MMModem.html#MMModemModeCombination" title="struct MMModemModeCombination">MMModemModeCombination</a>, struct in <a class="link" href="MMModem.html" title="MMModem">MMModem</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModemOma.html#MMModemOma-struct" title="struct MMModemOma">MMModemOma</a>, struct in <a class="link" href="MMModemOma.html" title="MMModemOma">MMModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModem.html#MMModemPortInfo" title="struct MMModemPortInfo">MMModemPortInfo</a>, struct in <a class="link" href="MMModem.html" title="MMModem">MMModem</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="MMModem.html#MMModemPortInfo" title="MMModemPortInfo">MMModemPortInfo</a>, struct in <a class="link" href="MMModem.html" title="MMModem">MMModem</a>
+<a class="link" href="MMModemSignal.html#MMModemSignal-struct" title="struct MMModemSignal">MMModemSignal</a>, struct in <a class="link" href="MMModemSignal.html" title="MMModemSignal">MMModemSignal</a>
</dt>
<dd></dd>
<dt>
@@ -2681,6 +3124,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="MMModem3gpp.html#mm-modem-3gpp-get-subscription-state" title="mm_modem_3gpp_get_subscription_state ()">mm_modem_3gpp_get_subscription_state</a>, function in <a class="link" href="MMModem3gpp.html" title="MMModem3gpp">MMModem3gpp</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-modem-3gpp-network-availability-get-string" title="mm_modem_3gpp_network_availability_get_string ()">mm_modem_3gpp_network_availability_get_string</a>, function in <a class="link" href="libmm-glib-Flags-and-Enumerations.html" title="Flags and Enumerations">Flags and Enumerations</a>
</dt>
<dd></dd>
@@ -2737,6 +3184,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-modem-3gpp-subscription-state-get-string" title="mm_modem_3gpp_subscription_state_get_string ()">mm_modem_3gpp_subscription_state_get_string</a>, function in <a class="link" href="libmm-glib-Flags-and-Enumerations.html" title="Flags and Enumerations">Flags and Enumerations</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MMModem3gppUssd.html#mm-modem-3gpp-ussd-cancel" title="mm_modem_3gpp_ussd_cancel ()">mm_modem_3gpp_ussd_cancel</a>, function in <a class="link" href="MMModem3gppUssd.html" title="MMModem3gppUssd">MMModem3gppUssd</a>
</dt>
<dd></dd>
@@ -2825,6 +3276,18 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="MMModemCdma.html#mm-modem-cdma-activate-manual" title="mm_modem_cdma_activate_manual ()">mm_modem_cdma_activate_manual</a>, function in <a class="link" href="MMModemCdma.html" title="MMModemCdma">MMModemCdma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModemCdma.html#mm-modem-cdma-activate-manual-finish" title="mm_modem_cdma_activate_manual_finish ()">mm_modem_cdma_activate_manual_finish</a>, function in <a class="link" href="MMModemCdma.html" title="MMModemCdma">MMModemCdma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModemCdma.html#mm-modem-cdma-activate-manual-sync" title="mm_modem_cdma_activate_manual_sync ()">mm_modem_cdma_activate_manual_sync</a>, function in <a class="link" href="MMModemCdma.html" title="MMModemCdma">MMModemCdma</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MMModemCdma.html#mm-modem-cdma-activate-sync" title="mm_modem_cdma_activate_sync ()">mm_modem_cdma_activate_sync</a>, function in <a class="link" href="MMModemCdma.html" title="MMModemCdma">MMModemCdma</a>
</dt>
<dd></dd>
@@ -2945,6 +3408,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="MMModem.html#mm-modem-dup-bearer-paths" title="mm_modem_dup_bearer_paths ()">mm_modem_dup_bearer_paths</a>, function in <a class="link" href="MMModem.html" title="MMModem">MMModem</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MMModem.html#mm-modem-dup-device" title="mm_modem_dup_device ()">mm_modem_dup_device</a>, function in <a class="link" href="MMModem.html" title="MMModem">MMModem</a>
</dt>
<dd></dd>
@@ -3053,6 +3520,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="MMModem.html#mm-modem-get-bearer-paths" title="mm_modem_get_bearer_paths ()">mm_modem_get_bearer_paths</a>, function in <a class="link" href="MMModem.html" title="MMModem">MMModem</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MMModem.html#mm-modem-get-current-bands" title="mm_modem_get_current_bands ()">mm_modem_get_current_bands</a>, function in <a class="link" href="MMModem.html" title="MMModem">MMModem</a>
</dt>
<dd></dd>
@@ -3105,6 +3576,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="MMModemOma.html#mm-modem-get-pending-network-initiated-sessions" title="mm_modem_get_pending_network_initiated_sessions ()">mm_modem_get_pending_network_initiated_sessions</a>, function in <a class="link" href="MMModemOma.html" title="MMModemOma">MMModemOma</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MMModem.html#mm-modem-get-plugin" title="mm_modem_get_plugin ()">mm_modem_get_plugin</a>, function in <a class="link" href="MMModem.html" title="MMModem">MMModem</a>
</dt>
<dd></dd>
@@ -3349,10 +3824,82 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="MMModemOma.html#mm-modem-oma-accept-network-initiated-session" title="mm_modem_oma_accept_network_initiated_session ()">mm_modem_oma_accept_network_initiated_session</a>, function in <a class="link" href="MMModemOma.html" title="MMModemOma">MMModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModemOma.html#mm-modem-oma-accept-network-initiated-session-finish" title="mm_modem_oma_accept_network_initiated_session_finish ()">mm_modem_oma_accept_network_initiated_session_finish</a>, function in <a class="link" href="MMModemOma.html" title="MMModemOma">MMModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModemOma.html#mm-modem-oma-accept-network-initiated-session-sync" title="mm_modem_oma_accept_network_initiated_session_sync ()">mm_modem_oma_accept_network_initiated_session_sync</a>, function in <a class="link" href="MMModemOma.html" title="MMModemOma">MMModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModemOma.html#mm-modem-oma-cancel-session" title="mm_modem_oma_cancel_session ()">mm_modem_oma_cancel_session</a>, function in <a class="link" href="MMModemOma.html" title="MMModemOma">MMModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModemOma.html#mm-modem-oma-cancel-session-finish" title="mm_modem_oma_cancel_session_finish ()">mm_modem_oma_cancel_session_finish</a>, function in <a class="link" href="MMModemOma.html" title="MMModemOma">MMModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModemOma.html#mm-modem-oma-cancel-session-sync" title="mm_modem_oma_cancel_session_sync ()">mm_modem_oma_cancel_session_sync</a>, function in <a class="link" href="MMModemOma.html" title="MMModemOma">MMModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModemOma.html#mm-modem-oma-dup-path" title="mm_modem_oma_dup_path ()">mm_modem_oma_dup_path</a>, function in <a class="link" href="MMModemOma.html" title="MMModemOma">MMModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModemOma.html#mm-modem-oma-get-features" title="mm_modem_oma_get_features ()">mm_modem_oma_get_features</a>, function in <a class="link" href="MMModemOma.html" title="MMModemOma">MMModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModemOma.html#mm-modem-oma-get-path" title="mm_modem_oma_get_path ()">mm_modem_oma_get_path</a>, function in <a class="link" href="MMModemOma.html" title="MMModemOma">MMModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModemOma.html#mm-modem-oma-get-session-state" title="mm_modem_oma_get_session_state ()">mm_modem_oma_get_session_state</a>, function in <a class="link" href="MMModemOma.html" title="MMModemOma">MMModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModemOma.html#mm-modem-oma-get-session-type" title="mm_modem_oma_get_session_type ()">mm_modem_oma_get_session_type</a>, function in <a class="link" href="MMModemOma.html" title="MMModemOma">MMModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModemOma.html#mm-modem-oma-setup" title="mm_modem_oma_setup ()">mm_modem_oma_setup</a>, function in <a class="link" href="MMModemOma.html" title="MMModemOma">MMModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModemOma.html#mm-modem-oma-setup-finish" title="mm_modem_oma_setup_finish ()">mm_modem_oma_setup_finish</a>, function in <a class="link" href="MMModemOma.html" title="MMModemOma">MMModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModemOma.html#mm-modem-oma-setup-sync" title="mm_modem_oma_setup_sync ()">mm_modem_oma_setup_sync</a>, function in <a class="link" href="MMModemOma.html" title="MMModemOma">MMModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModemOma.html#mm-modem-oma-start-client-initiated-session" title="mm_modem_oma_start_client_initiated_session ()">mm_modem_oma_start_client_initiated_session</a>, function in <a class="link" href="MMModemOma.html" title="MMModemOma">MMModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModemOma.html#mm-modem-oma-start-client-initiated-session-finish" title="mm_modem_oma_start_client_initiated_session_finish ()">mm_modem_oma_start_client_initiated_session_finish</a>, function in <a class="link" href="MMModemOma.html" title="MMModemOma">MMModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModemOma.html#mm-modem-oma-start-client-initiated-session-sync" title="mm_modem_oma_start_client_initiated_session_sync ()">mm_modem_oma_start_client_initiated_session_sync</a>, function in <a class="link" href="MMModemOma.html" title="MMModemOma">MMModemOma</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MMModem.html#mm-modem-peek-current-bands" title="mm_modem_peek_current_bands ()">mm_modem_peek_current_bands</a>, function in <a class="link" href="MMModem.html" title="MMModem">MMModem</a>
</dt>
<dd></dd>
<dt>
+<a class="link" href="MMModemOma.html#mm-modem-peek-pending-network-initiated-sessions" title="mm_modem_peek_pending_network_initiated_sessions ()">mm_modem_peek_pending_network_initiated_sessions</a>, function in <a class="link" href="MMModemOma.html" title="MMModemOma">MMModemOma</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MMModem.html#mm-modem-peek-ports" title="mm_modem_peek_ports ()">mm_modem_peek_ports</a>, function in <a class="link" href="MMModem.html" title="MMModem">MMModem</a>
</dt>
<dd></dd>
@@ -3445,6 +3992,70 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="MMModemSignal.html#mm-modem-signal-dup-path" title="mm_modem_signal_dup_path ()">mm_modem_signal_dup_path</a>, function in <a class="link" href="MMModemSignal.html" title="MMModemSignal">MMModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModemSignal.html#mm-modem-signal-get-cdma" title="mm_modem_signal_get_cdma ()">mm_modem_signal_get_cdma</a>, function in <a class="link" href="MMModemSignal.html" title="MMModemSignal">MMModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModemSignal.html#mm-modem-signal-get-evdo" title="mm_modem_signal_get_evdo ()">mm_modem_signal_get_evdo</a>, function in <a class="link" href="MMModemSignal.html" title="MMModemSignal">MMModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModemSignal.html#mm-modem-signal-get-gsm" title="mm_modem_signal_get_gsm ()">mm_modem_signal_get_gsm</a>, function in <a class="link" href="MMModemSignal.html" title="MMModemSignal">MMModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModemSignal.html#mm-modem-signal-get-lte" title="mm_modem_signal_get_lte ()">mm_modem_signal_get_lte</a>, function in <a class="link" href="MMModemSignal.html" title="MMModemSignal">MMModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModemSignal.html#mm-modem-signal-get-path" title="mm_modem_signal_get_path ()">mm_modem_signal_get_path</a>, function in <a class="link" href="MMModemSignal.html" title="MMModemSignal">MMModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModemSignal.html#mm-modem-signal-get-rate" title="mm_modem_signal_get_rate ()">mm_modem_signal_get_rate</a>, function in <a class="link" href="MMModemSignal.html" title="MMModemSignal">MMModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModemSignal.html#mm-modem-signal-get-umts" title="mm_modem_signal_get_umts ()">mm_modem_signal_get_umts</a>, function in <a class="link" href="MMModemSignal.html" title="MMModemSignal">MMModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModemSignal.html#mm-modem-signal-peek-cdma" title="mm_modem_signal_peek_cdma ()">mm_modem_signal_peek_cdma</a>, function in <a class="link" href="MMModemSignal.html" title="MMModemSignal">MMModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModemSignal.html#mm-modem-signal-peek-evdo" title="mm_modem_signal_peek_evdo ()">mm_modem_signal_peek_evdo</a>, function in <a class="link" href="MMModemSignal.html" title="MMModemSignal">MMModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModemSignal.html#mm-modem-signal-peek-gsm" title="mm_modem_signal_peek_gsm ()">mm_modem_signal_peek_gsm</a>, function in <a class="link" href="MMModemSignal.html" title="MMModemSignal">MMModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModemSignal.html#mm-modem-signal-peek-lte" title="mm_modem_signal_peek_lte ()">mm_modem_signal_peek_lte</a>, function in <a class="link" href="MMModemSignal.html" title="MMModemSignal">MMModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModemSignal.html#mm-modem-signal-peek-umts" title="mm_modem_signal_peek_umts ()">mm_modem_signal_peek_umts</a>, function in <a class="link" href="MMModemSignal.html" title="MMModemSignal">MMModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModemSignal.html#mm-modem-signal-setup" title="mm_modem_signal_setup ()">mm_modem_signal_setup</a>, function in <a class="link" href="MMModemSignal.html" title="MMModemSignal">MMModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModemSignal.html#mm-modem-signal-setup-finish" title="mm_modem_signal_setup_finish ()">mm_modem_signal_setup_finish</a>, function in <a class="link" href="MMModemSignal.html" title="MMModemSignal">MMModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMModemSignal.html#mm-modem-signal-setup-sync" title="mm_modem_signal_setup_sync ()">mm_modem_signal_setup_sync</a>, function in <a class="link" href="MMModemSignal.html" title="MMModemSignal">MMModemSignal</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MMModemSimple.html#mm-modem-simple-connect" title="mm_modem_simple_connect ()">mm_modem_simple_connect</a>, function in <a class="link" href="MMModemSimple.html" title="MMModemSimple">MMModemSimple</a>
</dt>
<dd></dd>
@@ -3591,6 +4202,14 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="MMObject.html#mm-object-get-modem-oma" title="mm_object_get_modem_oma ()">mm_object_get_modem_oma</a>, function in <a class="link" href="MMObject.html" title="MMObject">MMObject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMObject.html#mm-object-get-modem-signal" title="mm_object_get_modem_signal ()">mm_object_get_modem_signal</a>, function in <a class="link" href="MMObject.html" title="MMObject">MMObject</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MMObject.html#mm-object-get-modem-simple" title="mm_object_get_modem_simple ()">mm_object_get_modem_simple</a>, function in <a class="link" href="MMObject.html" title="MMObject">MMObject</a>
</dt>
<dd></dd>
@@ -3631,6 +4250,14 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="MMObject.html#mm-object-peek-modem-oma" title="mm_object_peek_modem_oma ()">mm_object_peek_modem_oma</a>, function in <a class="link" href="MMObject.html" title="MMObject">MMObject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMObject.html#mm-object-peek-modem-signal" title="mm_object_peek_modem_signal ()">mm_object_peek_modem_signal</a>, function in <a class="link" href="MMObject.html" title="MMObject">MMObject</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MMObject.html#mm-object-peek-modem-simple" title="mm_object_peek_modem_simple ()">mm_object_peek_modem_simple</a>, function in <a class="link" href="MMObject.html" title="MMObject">MMObject</a>
</dt>
<dd></dd>
@@ -3638,8 +4265,64 @@
<a class="link" href="MMObject.html#mm-object-peek-modem-time" title="mm_object_peek_modem_time ()">mm_object_peek_modem_time</a>, function in <a class="link" href="MMObject.html" title="MMObject">MMObject</a>
</dt>
<dd></dd>
+<dt>
+<a class="link" href="MMModemOma.html#MMOmaPendingNetworkInitiatedSession" title="struct MMOmaPendingNetworkInitiatedSession">MMOmaPendingNetworkInitiatedSession</a>, struct in <a class="link" href="MMModemOma.html" title="MMModemOma">MMModemOma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-oma-feature-build-string-from-mask" title="mm_oma_feature_build_string_from_mask ()">mm_oma_feature_build_string_from_mask</a>, function in <a class="link" href="libmm-glib-Flags-and-Enumerations.html" title="Flags and Enumerations">Flags and Enumerations</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-oma-session-state-failed-reason-get-string" title="mm_oma_session_state_failed_reason_get_string ()">mm_oma_session_state_failed_reason_get_string</a>, function in <a class="link" href="libmm-glib-Flags-and-Enumerations.html" title="Flags and Enumerations">Flags and Enumerations</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-oma-session-state-get-string" title="mm_oma_session_state_get_string ()">mm_oma_session_state_get_string</a>, function in <a class="link" href="libmm-glib-Flags-and-Enumerations.html" title="Flags and Enumerations">Flags and Enumerations</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-oma-session-type-get-string" title="mm_oma_session_type_get_string ()">mm_oma_session_type_get_string</a>, function in <a class="link" href="libmm-glib-Flags-and-Enumerations.html" title="Flags and Enumerations">Flags and Enumerations</a>
+</dt>
+<dd></dd>
<a name="idxS"></a><h3 class="title">S</h3>
<dt>
+<a class="link" href="MMSignal.html#MMSignal-struct" title="struct MMSignal">MMSignal</a>, struct in <a class="link" href="MMSignal.html" title="MMSignal">MMSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMSignal.html#mm-signal-get-ecio" title="mm_signal_get_ecio ()">mm_signal_get_ecio</a>, function in <a class="link" href="MMSignal.html" title="MMSignal">MMSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMSignal.html#mm-signal-get-io" title="mm_signal_get_io ()">mm_signal_get_io</a>, function in <a class="link" href="MMSignal.html" title="MMSignal">MMSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMSignal.html#mm-signal-get-rsrp" title="mm_signal_get_rsrp ()">mm_signal_get_rsrp</a>, function in <a class="link" href="MMSignal.html" title="MMSignal">MMSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMSignal.html#mm-signal-get-rsrq" title="mm_signal_get_rsrq ()">mm_signal_get_rsrq</a>, function in <a class="link" href="MMSignal.html" title="MMSignal">MMSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMSignal.html#mm-signal-get-rssi" title="mm_signal_get_rssi ()">mm_signal_get_rssi</a>, function in <a class="link" href="MMSignal.html" title="MMSignal">MMSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMSignal.html#mm-signal-get-sinr" title="mm_signal_get_sinr ()">mm_signal_get_sinr</a>, function in <a class="link" href="MMSignal.html" title="MMSignal">MMSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMSignal.html#mm-signal-get-snr" title="mm_signal_get_snr ()">mm_signal_get_snr</a>, function in <a class="link" href="MMSignal.html" title="MMSignal">MMSignal</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="MMSignal.html#MM-SIGNAL-UNKNOWN:CAPS" title="MM_SIGNAL_UNKNOWN">MM_SIGNAL_UNKNOWN</a>, macro in <a class="link" href="MMSignal.html" title="MMSignal">MMSignal</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MMSim.html#MMSim-struct" title="struct MMSim">MMSim</a>, struct in <a class="link" href="MMSim.html" title="MMSim">MMSim</a>
</dt>
<dd></dd>
@@ -3688,6 +4371,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="MMSimpleStatus.html#MMSimpleStatus--m3gpp-subscription-state" title='The "m3gpp-subscription-state" property'>MMSimpleStatus:m3gpp-subscription-state</a>, object property in <a class="link" href="MMSimpleStatus.html" title="MMSimpleStatus">MMSimpleStatus</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MMSimpleStatus.html#MMSimpleStatus--signal-quality" title='The "signal-quality" property'>MMSimpleStatus:signal-quality</a>, object property in <a class="link" href="MMSimpleStatus.html" title="MMSimpleStatus">MMSimpleStatus</a>
</dt>
<dd></dd>
@@ -3784,6 +4471,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="MMSimpleStatus.html#mm-simple-status-get-3gpp-subscription-state" title="mm_simple_status_get_3gpp_subscription_state ()">mm_simple_status_get_3gpp_subscription_state</a>, function in <a class="link" href="MMSimpleStatus.html" title="MMSimpleStatus">MMSimpleStatus</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MMSimpleStatus.html#mm-simple-status-get-access-technologies" title="mm_simple_status_get_access_technologies ()">mm_simple_status_get_access_technologies</a>, function in <a class="link" href="MMSimpleStatus.html" title="MMSimpleStatus">MMSimpleStatus</a>
</dt>
<dd></dd>
@@ -3924,6 +4615,14 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-sms-cdma-service-category-get-string" title="mm_sms_cdma_service_category_get_string ()">mm_sms_cdma_service_category_get_string</a>, function in <a class="link" href="libmm-glib-Flags-and-Enumerations.html" title="Flags and Enumerations">Flags and Enumerations</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-sms-cdma-teleservice-id-get-string" title="mm_sms_cdma_teleservice_id_get_string ()">mm_sms_cdma_teleservice_id_get_string</a>, function in <a class="link" href="libmm-glib-Flags-and-Enumerations.html" title="Flags and Enumerations">Flags and Enumerations</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-sms-delivery-state-get-string" title="mm_sms_delivery_state_get_string ()">mm_sms_delivery_state_get_string</a>, function in <a class="link" href="libmm-glib-Flags-and-Enumerations.html" title="Flags and Enumerations">Flags and Enumerations</a>
</dt>
<dd></dd>
@@ -3992,6 +4691,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="MMSms.html#mm-sms-get-service-category" title="mm_sms_get_service_category ()">mm_sms_get_service_category</a>, function in <a class="link" href="MMSms.html" title="MMSms">MMSms</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MMSms.html#mm-sms-get-smsc" title="mm_sms_get_smsc ()">mm_sms_get_smsc</a>, function in <a class="link" href="MMSms.html" title="MMSms">MMSms</a>
</dt>
<dd></dd>
@@ -4004,6 +4707,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="MMSms.html#mm-sms-get-teleservice-id" title="mm_sms_get_teleservice_id ()">mm_sms_get_teleservice_id</a>, function in <a class="link" href="MMSms.html" title="MMSms">MMSms</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MMSms.html#mm-sms-get-text" title="mm_sms_get_text ()">mm_sms_get_text</a>, function in <a class="link" href="MMSms.html" title="MMSms">MMSms</a>
</dt>
<dd></dd>
@@ -4044,10 +4751,18 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="MMSmsProperties.html#mm-sms-properties-get-service-category" title="mm_sms_properties_get_service_category ()">mm_sms_properties_get_service_category</a>, function in <a class="link" href="MMSmsProperties.html" title="MMSmsProperties">MMSmsProperties</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MMSmsProperties.html#mm-sms-properties-get-smsc" title="mm_sms_properties_get_smsc ()">mm_sms_properties_get_smsc</a>, function in <a class="link" href="MMSmsProperties.html" title="MMSmsProperties">MMSmsProperties</a>
</dt>
<dd></dd>
<dt>
+<a class="link" href="MMSmsProperties.html#mm-sms-properties-get-teleservice-id" title="mm_sms_properties_get_teleservice_id ()">mm_sms_properties_get_teleservice_id</a>, function in <a class="link" href="MMSmsProperties.html" title="MMSmsProperties">MMSmsProperties</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MMSmsProperties.html#mm-sms-properties-get-text" title="mm_sms_properties_get_text ()">mm_sms_properties_get_text</a>, function in <a class="link" href="MMSmsProperties.html" title="MMSmsProperties">MMSmsProperties</a>
</dt>
<dd></dd>
@@ -4088,10 +4803,18 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="MMSmsProperties.html#mm-sms-properties-set-service-category" title="mm_sms_properties_set_service_category ()">mm_sms_properties_set_service_category</a>, function in <a class="link" href="MMSmsProperties.html" title="MMSmsProperties">MMSmsProperties</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MMSmsProperties.html#mm-sms-properties-set-smsc" title="mm_sms_properties_set_smsc ()">mm_sms_properties_set_smsc</a>, function in <a class="link" href="MMSmsProperties.html" title="MMSmsProperties">MMSmsProperties</a>
</dt>
<dd></dd>
<dt>
+<a class="link" href="MMSmsProperties.html#mm-sms-properties-set-teleservice-id" title="mm_sms_properties_set_teleservice_id ()">mm_sms_properties_set_teleservice_id</a>, function in <a class="link" href="MMSmsProperties.html" title="MMSmsProperties">MMSmsProperties</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="MMSmsProperties.html#mm-sms-properties-set-text" title="mm_sms_properties_set_text ()">mm_sms_properties_set_text</a>, function in <a class="link" href="MMSmsProperties.html" title="MMSmsProperties">MMSmsProperties</a>
</dt>
<dd></dd>
@@ -4159,6 +4882,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/ch01.html b/docs/reference/libmm-glib/html/ch01.html
index c88d295..1c208bd 100644
--- a/docs/reference/libmm-glib/html/ch01.html
+++ b/docs/reference/libmm-glib/html/ch01.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt01.html" title="Part I. High level API">
<link rel="prev" href="pt01.html" title="Part I. High level API">
<link rel="next" href="libmm-glib-Flags-and-Enumerations.html" title="Flags and Enumerations">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -21,13 +21,13 @@
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
-<a name="idm211865672832"></a>Common enums and flags helpers</h2></div></div></div>
+<a name="id-1.2.2"></a>Common enums and flags helpers</h2></div></div></div>
<div class="toc"><dl class="toc"><dt>
<span class="refentrytitle"><a href="libmm-glib-Flags-and-Enumerations.html">Flags and Enumerations</a></span><span class="refpurpose"></span>
</dt></dl></div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/ch02.html b/docs/reference/libmm-glib/html/ch02.html
index 6b65478..03c25a4 100644
--- a/docs/reference/libmm-glib/html/ch02.html
+++ b/docs/reference/libmm-glib/html/ch02.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt01.html" title="Part I. High level API">
<link rel="prev" href="libmm-glib-Flags-and-Enumerations.html" title="Flags and Enumerations">
<link rel="next" href="MMManager.html" title="MMManager">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -21,13 +21,13 @@
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
-<a name="idm211867092672"></a>The Manager object</h2></div></div></div>
+<a name="id-1.2.3"></a>The Manager object</h2></div></div></div>
<div class="toc"><dl class="toc"><dt>
<span class="refentrytitle"><a href="MMManager.html">MMManager</a></span><span class="refpurpose"> — The Manager object</span>
</dt></dl></div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/ch03.html b/docs/reference/libmm-glib/html/ch03.html
index 219e74a..3539f05 100644
--- a/docs/reference/libmm-glib/html/ch03.html
+++ b/docs/reference/libmm-glib/html/ch03.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt01.html" title="Part I. High level API">
<link rel="prev" href="MMManager.html" title="MMManager">
<link rel="next" href="MMObject.html" title="MMObject">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -21,12 +21,12 @@
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
-<a name="idm211869299072"></a>The Modem object</h2></div></div></div>
+<a name="id-1.2.4"></a>The Modem object</h2></div></div></div>
<div class="toc"><dl class="toc">
<dt>
<span class="refentrytitle"><a href="MMObject.html">MMObject</a></span><span class="refpurpose"> — Generic object representing a modem in ModemManager</span>
</dt>
-<dt><span class="section"><a href="ch03.html#idm211869297872">Generic interfaces</a></span></dt>
+<dt><span class="section"><a href="ch03.html#id-1.2.4.3">Generic interfaces</a></span></dt>
<dd><dl>
<dt>
<span class="refentrytitle"><a href="MMModem.html">MMModem</a></span><span class="refpurpose"> — The Modem interface</span>
@@ -41,6 +41,9 @@
<span class="refentrytitle"><a href="MMModemCdma.html">MMModemCdma</a></span><span class="refpurpose"> — The CDMA interface</span>
</dt>
<dt>
+<span class="refentrytitle"><a href="MMCdmaManualActivationProperties.html">MMCdmaManualActivationProperties</a></span><span class="refpurpose"> — Helper object to handle manual CDMA activation properties.</span>
+</dt>
+<dt>
<span class="refentrytitle"><a href="MMUnlockRetries.html">MMUnlockRetries</a></span><span class="refpurpose"> — Helper object to report unlock retries.</span>
</dt>
</dl></dd>
@@ -96,12 +99,25 @@
<span class="refentrytitle"><a href="MMFirmwareProperties.html">MMFirmwareProperties</a></span><span class="refpurpose"> — Helper object to handle firmware information.</span>
</dt>
</dl></dd>
+<dt><span class="section"><a href="ch03s07.html">Extended signal information</a></span></dt>
+<dd><dl>
+<dt>
+<span class="refentrytitle"><a href="MMModemSignal.html">MMModemSignal</a></span><span class="refpurpose"> — The extended Signal interface</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="MMSignal.html">MMSignal</a></span><span class="refpurpose"> — Helper object to handle extended Signal information.</span>
+</dt>
+</dl></dd>
+<dt><span class="section"><a href="ch03s08.html">OMA support</a></span></dt>
+<dd><dl><dt>
+<span class="refentrytitle"><a href="MMModemOma.html">MMModemOma</a></span><span class="refpurpose"> — The OMA interface</span>
+</dt></dl></dd>
</dl></div>
<div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="idm211869297872"></a>Generic interfaces</h2></div></div></div></div>
+<a name="id-1.2.4.3"></a>Generic interfaces</h2></div></div></div></div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/ch03s02.html b/docs/reference/libmm-glib/html/ch03s02.html
index 20561df..1739f53 100644
--- a/docs/reference/libmm-glib/html/ch03s02.html
+++ b/docs/reference/libmm-glib/html/ch03s02.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch03.html" title="The Modem object">
<link rel="prev" href="MMUnlockRetries.html" title="MMUnlockRetries">
<link rel="next" href="MMModemSimple.html" title="MMModemSimple">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,9 +20,9 @@
<td><a accesskey="n" href="MMModemSimple.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr></table>
<div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="idm211869339808"></a>Simple interface support</h2></div></div></div></div>
+<a name="id-1.2.4.4"></a>Simple interface support</h2></div></div></div></div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/ch03s03.html b/docs/reference/libmm-glib/html/ch03s03.html
index 5d8112d..14d46e4 100644
--- a/docs/reference/libmm-glib/html/ch03s03.html
+++ b/docs/reference/libmm-glib/html/ch03s03.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch03.html" title="The Modem object">
<link rel="prev" href="MMSimpleStatus.html" title="MMSimpleStatus">
<link rel="next" href="MMModemLocation.html" title="MMModemLocation">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,9 +20,9 @@
<td><a accesskey="n" href="MMModemLocation.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr></table>
<div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="idm211869337376"></a>Location support</h2></div></div></div></div>
+<a name="id-1.2.4.5"></a>Location support</h2></div></div></div></div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/ch03s04.html b/docs/reference/libmm-glib/html/ch03s04.html
index eb4a32a..800bdd6 100644
--- a/docs/reference/libmm-glib/html/ch03s04.html
+++ b/docs/reference/libmm-glib/html/ch03s04.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch03.html" title="The Modem object">
<link rel="prev" href="MMLocationCdmaBs.html" title="MMLocationCdmaBs">
<link rel="next" href="MMModemMessaging.html" title="MMModemMessaging">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,9 +20,9 @@
<td><a accesskey="n" href="MMModemMessaging.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr></table>
<div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="idm211869333856"></a>Messaging support</h2></div></div></div></div>
+<a name="id-1.2.4.6"></a>Messaging support</h2></div></div></div></div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/ch03s05.html b/docs/reference/libmm-glib/html/ch03s05.html
index 60508db..f3e7657 100644
--- a/docs/reference/libmm-glib/html/ch03s05.html
+++ b/docs/reference/libmm-glib/html/ch03s05.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch03.html" title="The Modem object">
<link rel="prev" href="MMModemMessaging.html" title="MMModemMessaging">
<link rel="next" href="MMModemTime.html" title="MMModemTime">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,9 +20,9 @@
<td><a accesskey="n" href="MMModemTime.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr></table>
<div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="idm211869332512"></a>Time support</h2></div></div></div></div>
+<a name="id-1.2.4.7"></a>Time support</h2></div></div></div></div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/ch03s06.html b/docs/reference/libmm-glib/html/ch03s06.html
index 5ee9d60..a6a0145 100644
--- a/docs/reference/libmm-glib/html/ch03s06.html
+++ b/docs/reference/libmm-glib/html/ch03s06.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch03.html" title="The Modem object">
<link rel="prev" href="MMNetworkTimezone.html" title="MMNetworkTimezone">
<link rel="next" href="MMModemFirmware.html" title="MMModemFirmware">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,9 +20,9 @@
<td><a accesskey="n" href="MMModemFirmware.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr></table>
<div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="idm211869330640"></a>Firmware support</h2></div></div></div></div>
+<a name="id-1.2.4.8"></a>Firmware support</h2></div></div></div></div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/ch03s07.html b/docs/reference/libmm-glib/html/ch03s07.html
new file mode 100644
index 0000000..9712933
--- /dev/null
+++ b/docs/reference/libmm-glib/html/ch03s07.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Extended signal information</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="libmm-glib Reference Manual">
+<link rel="up" href="ch03.html" title="The Modem object">
+<link rel="prev" href="MMFirmwareProperties.html" title="MMFirmwareProperties">
+<link rel="next" href="MMModemSignal.html" title="MMModemSignal">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
+<td><a accesskey="p" href="MMFirmwareProperties.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch03.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libmm-glib Reference Manual</th>
+<td><a accesskey="n" href="MMModemSignal.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="id-1.2.4.9"></a>Extended signal information</h2></div></div></div></div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.19</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/ch03s08.html b/docs/reference/libmm-glib/html/ch03s08.html
new file mode 100644
index 0000000..45d523d
--- /dev/null
+++ b/docs/reference/libmm-glib/html/ch03s08.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>OMA support</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="libmm-glib Reference Manual">
+<link rel="up" href="ch03.html" title="The Modem object">
+<link rel="prev" href="MMSignal.html" title="MMSignal">
+<link rel="next" href="MMModemOma.html" title="MMModemOma">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
+<td><a accesskey="p" href="MMSignal.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch03.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libmm-glib Reference Manual</th>
+<td><a accesskey="n" href="MMModemOma.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="id-1.2.4.10"></a>OMA support</h2></div></div></div></div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.19</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/ch04.html b/docs/reference/libmm-glib/html/ch04.html
index 21e6f58..8201ec8 100644
--- a/docs/reference/libmm-glib/html/ch04.html
+++ b/docs/reference/libmm-glib/html/ch04.html
@@ -6,14 +6,14 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="libmm-glib Reference Manual">
<link rel="up" href="pt01.html" title="Part I. High level API">
-<link rel="prev" href="MMFirmwareProperties.html" title="MMFirmwareProperties">
+<link rel="prev" href="MMModemOma.html" title="MMModemOma">
<link rel="next" href="MMBearer.html" title="MMBearer">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="MMFirmwareProperties.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="MMModemOma.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="pt01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">libmm-glib Reference Manual</th>
@@ -21,7 +21,7 @@
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
-<a name="idm211869328624"></a>The Bearer object</h2></div></div></div>
+<a name="id-1.2.5"></a>The Bearer object</h2></div></div></div>
<div class="toc"><dl class="toc">
<dt>
<span class="refentrytitle"><a href="MMBearer.html">MMBearer</a></span><span class="refpurpose"> — The Bearer interface</span>
@@ -36,6 +36,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/ch05.html b/docs/reference/libmm-glib/html/ch05.html
index 50f87bf..a025e16 100644
--- a/docs/reference/libmm-glib/html/ch05.html
+++ b/docs/reference/libmm-glib/html/ch05.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt01.html" title="Part I. High level API">
<link rel="prev" href="MMBearerIpConfig.html" title="MMBearerIpConfig">
<link rel="next" href="MMSim.html" title="MMSim">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -21,13 +21,13 @@
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
-<a name="idm211869326208"></a>The SIM object</h2></div></div></div>
+<a name="id-1.2.6"></a>The SIM object</h2></div></div></div>
<div class="toc"><dl class="toc"><dt>
<span class="refentrytitle"><a href="MMSim.html">MMSim</a></span><span class="refpurpose"> — The SIM interface</span>
</dt></dl></div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/ch06.html b/docs/reference/libmm-glib/html/ch06.html
index 339f50a..81b652d 100644
--- a/docs/reference/libmm-glib/html/ch06.html
+++ b/docs/reference/libmm-glib/html/ch06.html
@@ -8,7 +8,7 @@
<link rel="up" href="pt01.html" title="Part I. High level API">
<link rel="prev" href="MMSim.html" title="MMSim">
<link rel="next" href="MMSms.html" title="MMSms">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -21,7 +21,7 @@
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
-<a name="idm211869426752"></a>The SMS object</h2></div></div></div>
+<a name="id-1.2.7"></a>The SMS object</h2></div></div></div>
<div class="toc"><dl class="toc">
<dt>
<span class="refentrytitle"><a href="MMSms.html">MMSms</a></span><span class="refpurpose"> — The SMS interface</span>
@@ -33,6 +33,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/deprecated-api-index.html b/docs/reference/libmm-glib/html/deprecated-api-index.html
index d232dd3..c3683b0 100644
--- a/docs/reference/libmm-glib/html/deprecated-api-index.html
+++ b/docs/reference/libmm-glib/html/deprecated-api-index.html
@@ -8,7 +8,7 @@
<link rel="up" href="index.html" title="libmm-glib Reference Manual">
<link rel="prev" href="api-index-full.html" title="API Index">
<link rel="next" href="annotation-glossary.html" title="Annotation Glossary">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -26,6 +26,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/index.html b/docs/reference/libmm-glib/html/index.html
index 4ea4ab0..116c295 100644
--- a/docs/reference/libmm-glib/html/index.html
+++ b/docs/reference/libmm-glib/html/index.html
@@ -6,7 +6,7 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="libmm-glib Reference Manual">
<link rel="next" href="pt01.html" title="Part I. High level API">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -26,12 +26,12 @@
      </p></div></div>
</div></div></div>
<div><p class="releaseinfo">
- For libmm-glib version 1.0.0
+ For libmm-glib version 1.2.0
</p></div>
<div><p class="copyright">Copyright © 2011, 2012 The ModemManager Authors</p></div>
<div><div class="legalnotice">
-<a name="idm211865287072"></a><p>
+<a name="id-1.1.6"></a><p>
Permission is granted to copy, distribute and/or modify this
document under the terms of the <em class="citetitle">GNU Free
Documentation License</em>, Version 1.3 or any later
@@ -70,7 +70,7 @@
<dt>
<span class="refentrytitle"><a href="MMObject.html">MMObject</a></span><span class="refpurpose"> — Generic object representing a modem in ModemManager</span>
</dt>
-<dt><span class="section"><a href="ch03.html#idm211869297872">Generic interfaces</a></span></dt>
+<dt><span class="section"><a href="ch03.html#id-1.2.4.3">Generic interfaces</a></span></dt>
<dd><dl>
<dt>
<span class="refentrytitle"><a href="MMModem.html">MMModem</a></span><span class="refpurpose"> — The Modem interface</span>
@@ -85,6 +85,9 @@
<span class="refentrytitle"><a href="MMModemCdma.html">MMModemCdma</a></span><span class="refpurpose"> — The CDMA interface</span>
</dt>
<dt>
+<span class="refentrytitle"><a href="MMCdmaManualActivationProperties.html">MMCdmaManualActivationProperties</a></span><span class="refpurpose"> — Helper object to handle manual CDMA activation properties.</span>
+</dt>
+<dt>
<span class="refentrytitle"><a href="MMUnlockRetries.html">MMUnlockRetries</a></span><span class="refpurpose"> — Helper object to report unlock retries.</span>
</dt>
</dl></dd>
@@ -140,6 +143,19 @@
<span class="refentrytitle"><a href="MMFirmwareProperties.html">MMFirmwareProperties</a></span><span class="refpurpose"> — Helper object to handle firmware information.</span>
</dt>
</dl></dd>
+<dt><span class="section"><a href="ch03s07.html">Extended signal information</a></span></dt>
+<dd><dl>
+<dt>
+<span class="refentrytitle"><a href="MMModemSignal.html">MMModemSignal</a></span><span class="refpurpose"> — The extended Signal interface</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="MMSignal.html">MMSignal</a></span><span class="refpurpose"> — Helper object to handle extended Signal information.</span>
+</dt>
+</dl></dd>
+<dt><span class="section"><a href="ch03s08.html">OMA support</a></span></dt>
+<dd><dl><dt>
+<span class="refentrytitle"><a href="MMModemOma.html">MMModemOma</a></span><span class="refpurpose"> — The OMA interface</span>
+</dt></dl></dd>
</dl></dd>
<dt><span class="chapter"><a href="ch04.html">The Bearer object</a></span></dt>
<dd><dl>
@@ -263,6 +279,24 @@
<span class="refentrytitle"><a href="MmGdbusModemFirmwareSkeleton.html">MmGdbusModemFirmwareSkeleton</a></span><span class="refpurpose"></span>
</dt>
<dt>
+<span class="refentrytitle"><a href="MmGdbusModemSignal.html">MmGdbusModemSignal</a></span><span class="refpurpose"> — Generated C code for the org.freedesktop.ModemManager1.Modem.Signal D-Bus interface</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="MmGdbusModemSignalProxy.html">MmGdbusModemSignalProxy</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="MmGdbusModemSignalSkeleton.html">MmGdbusModemSignalSkeleton</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="MmGdbusModemOma.html">MmGdbusModemOma</a></span><span class="refpurpose"> — Generated C code for the org.freedesktop.ModemManager1.Modem.Oma D-Bus interface</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="MmGdbusModemOmaProxy.html">MmGdbusModemOmaProxy</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="MmGdbusModemOmaSkeleton.html">MmGdbusModemOmaSkeleton</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
<span class="refentrytitle"><a href="MmGdbusModemSimple.html">MmGdbusModemSimple</a></span><span class="refpurpose"> — Generated C code for the org.freedesktop.ModemManager1.Modem.Simple D-Bus interface</span>
</dt>
<dt>
@@ -307,6 +341,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/index.sgml b/docs/reference/libmm-glib/html/index.sgml
index 8832bc3..ee66232 100644
--- a/docs/reference/libmm-glib/html/index.sgml
+++ b/docs/reference/libmm-glib/html/index.sgml
@@ -16,6 +16,7 @@
<ANCHOR id="mm-modem-band-get-string" href="libmm-glib/libmm-glib-Flags-and-Enumerations.html#mm-modem-band-get-string">
<ANCHOR id="mm-modem-port-type-get-string" href="libmm-glib/libmm-glib-Flags-and-Enumerations.html#mm-modem-port-type-get-string">
<ANCHOR id="mm-modem-3gpp-registration-state-get-string" href="libmm-glib/libmm-glib-Flags-and-Enumerations.html#mm-modem-3gpp-registration-state-get-string">
+<ANCHOR id="mm-modem-3gpp-subscription-state-get-string" href="libmm-glib/libmm-glib-Flags-and-Enumerations.html#mm-modem-3gpp-subscription-state-get-string">
<ANCHOR id="mm-modem-3gpp-facility-build-string-from-mask" href="libmm-glib/libmm-glib-Flags-and-Enumerations.html#mm-modem-3gpp-facility-build-string-from-mask">
<ANCHOR id="mm-modem-3gpp-network-availability-get-string" href="libmm-glib/libmm-glib-Flags-and-Enumerations.html#mm-modem-3gpp-network-availability-get-string">
<ANCHOR id="mm-modem-3gpp-ussd-session-state-get-string" href="libmm-glib/libmm-glib-Flags-and-Enumerations.html#mm-modem-3gpp-ussd-session-state-get-string">
@@ -29,7 +30,13 @@
<ANCHOR id="mm-sms-delivery-state-get-string" href="libmm-glib/libmm-glib-Flags-and-Enumerations.html#mm-sms-delivery-state-get-string">
<ANCHOR id="mm-sms-storage-get-string" href="libmm-glib/libmm-glib-Flags-and-Enumerations.html#mm-sms-storage-get-string">
<ANCHOR id="mm-sms-validity-type-get-string" href="libmm-glib/libmm-glib-Flags-and-Enumerations.html#mm-sms-validity-type-get-string">
+<ANCHOR id="mm-sms-cdma-teleservice-id-get-string" href="libmm-glib/libmm-glib-Flags-and-Enumerations.html#mm-sms-cdma-teleservice-id-get-string">
+<ANCHOR id="mm-sms-cdma-service-category-get-string" href="libmm-glib/libmm-glib-Flags-and-Enumerations.html#mm-sms-cdma-service-category-get-string">
<ANCHOR id="mm-firmware-image-type-get-string" href="libmm-glib/libmm-glib-Flags-and-Enumerations.html#mm-firmware-image-type-get-string">
+<ANCHOR id="mm-oma-feature-build-string-from-mask" href="libmm-glib/libmm-glib-Flags-and-Enumerations.html#mm-oma-feature-build-string-from-mask">
+<ANCHOR id="mm-oma-session-type-get-string" href="libmm-glib/libmm-glib-Flags-and-Enumerations.html#mm-oma-session-type-get-string">
+<ANCHOR id="mm-oma-session-state-get-string" href="libmm-glib/libmm-glib-Flags-and-Enumerations.html#mm-oma-session-state-get-string">
+<ANCHOR id="mm-oma-session-state-failed-reason-get-string" href="libmm-glib/libmm-glib-Flags-and-Enumerations.html#mm-oma-session-state-failed-reason-get-string">
<ANCHOR id="MMManager" href="libmm-glib/MMManager.html">
<ANCHOR id="MMManager.synopsis" href="libmm-glib/MMManager.html#MMManager.synopsis">
<ANCHOR id="MMManager.object-hierarchy" href="libmm-glib/MMManager.html#MMManager.object-hierarchy">
@@ -73,8 +80,12 @@
<ANCHOR id="mm-object-get-modem-time" href="libmm-glib/MMObject.html#mm-object-get-modem-time">
<ANCHOR id="mm-object-peek-modem-firmware" href="libmm-glib/MMObject.html#mm-object-peek-modem-firmware">
<ANCHOR id="mm-object-get-modem-firmware" href="libmm-glib/MMObject.html#mm-object-get-modem-firmware">
+<ANCHOR id="mm-object-peek-modem-oma" href="libmm-glib/MMObject.html#mm-object-peek-modem-oma">
+<ANCHOR id="mm-object-get-modem-oma" href="libmm-glib/MMObject.html#mm-object-get-modem-oma">
<ANCHOR id="mm-object-peek-modem-simple" href="libmm-glib/MMObject.html#mm-object-peek-modem-simple">
<ANCHOR id="mm-object-get-modem-simple" href="libmm-glib/MMObject.html#mm-object-get-modem-simple">
+<ANCHOR id="mm-object-peek-modem-signal" href="libmm-glib/MMObject.html#mm-object-peek-modem-signal">
+<ANCHOR id="mm-object-get-modem-signal" href="libmm-glib/MMObject.html#mm-object-get-modem-signal">
<ANCHOR id="MMModem" href="libmm-glib/MMModem.html">
<ANCHOR id="MMModem.synopsis" href="libmm-glib/MMModem.html#MMModem.synopsis">
<ANCHOR id="MMModem.object-hierarchy" href="libmm-glib/MMModem.html#MMModem.object-hierarchy">
@@ -117,6 +128,8 @@
<ANCHOR id="mm-modem-get-unlock-retries" href="libmm-glib/MMModem.html#mm-modem-get-unlock-retries">
<ANCHOR id="mm-modem-get-max-bearers" href="libmm-glib/MMModem.html#mm-modem-get-max-bearers">
<ANCHOR id="mm-modem-get-max-active-bearers" href="libmm-glib/MMModem.html#mm-modem-get-max-active-bearers">
+<ANCHOR id="mm-modem-get-bearer-paths" href="libmm-glib/MMModem.html#mm-modem-get-bearer-paths">
+<ANCHOR id="mm-modem-dup-bearer-paths" href="libmm-glib/MMModem.html#mm-modem-dup-bearer-paths">
<ANCHOR id="mm-modem-get-own-numbers" href="libmm-glib/MMModem.html#mm-modem-get-own-numbers">
<ANCHOR id="mm-modem-dup-own-numbers" href="libmm-glib/MMModem.html#mm-modem-dup-own-numbers">
<ANCHOR id="mm-modem-peek-supported-modes" href="libmm-glib/MMModem.html#mm-modem-peek-supported-modes">
@@ -195,6 +208,7 @@
<ANCHOR id="mm-modem-3gpp-dup-operator-name" href="libmm-glib/MMModem3gpp.html#mm-modem-3gpp-dup-operator-name">
<ANCHOR id="mm-modem-3gpp-get-enabled-facility-locks" href="libmm-glib/MMModem3gpp.html#mm-modem-3gpp-get-enabled-facility-locks">
<ANCHOR id="mm-modem-3gpp-get-registration-state" href="libmm-glib/MMModem3gpp.html#mm-modem-3gpp-get-registration-state">
+<ANCHOR id="mm-modem-3gpp-get-subscription-state" href="libmm-glib/MMModem3gpp.html#mm-modem-3gpp-get-subscription-state">
<ANCHOR id="mm-modem-3gpp-register" href="libmm-glib/MMModem3gpp.html#mm-modem-3gpp-register">
<ANCHOR id="mm-modem-3gpp-register-finish" href="libmm-glib/MMModem3gpp.html#mm-modem-3gpp-register-finish">
<ANCHOR id="mm-modem-3gpp-register-sync" href="libmm-glib/MMModem3gpp.html#mm-modem-3gpp-register-sync">
@@ -247,6 +261,33 @@
<ANCHOR id="mm-modem-cdma-activate" href="libmm-glib/MMModemCdma.html#mm-modem-cdma-activate">
<ANCHOR id="mm-modem-cdma-activate-finish" href="libmm-glib/MMModemCdma.html#mm-modem-cdma-activate-finish">
<ANCHOR id="mm-modem-cdma-activate-sync" href="libmm-glib/MMModemCdma.html#mm-modem-cdma-activate-sync">
+<ANCHOR id="mm-modem-cdma-activate-manual" href="libmm-glib/MMModemCdma.html#mm-modem-cdma-activate-manual">
+<ANCHOR id="mm-modem-cdma-activate-manual-finish" href="libmm-glib/MMModemCdma.html#mm-modem-cdma-activate-manual-finish">
+<ANCHOR id="mm-modem-cdma-activate-manual-sync" href="libmm-glib/MMModemCdma.html#mm-modem-cdma-activate-manual-sync">
+<ANCHOR id="MMCdmaManualActivationProperties" href="libmm-glib/MMCdmaManualActivationProperties.html">
+<ANCHOR id="MMCdmaManualActivationProperties.synopsis" href="libmm-glib/MMCdmaManualActivationProperties.html#MMCdmaManualActivationProperties.synopsis">
+<ANCHOR id="MMCdmaManualActivationProperties.object-hierarchy" href="libmm-glib/MMCdmaManualActivationProperties.html#MMCdmaManualActivationProperties.object-hierarchy">
+<ANCHOR id="MMCdmaManualActivationProperties.description" href="libmm-glib/MMCdmaManualActivationProperties.html#MMCdmaManualActivationProperties.description">
+<ANCHOR id="MMCdmaManualActivationProperties.details" href="libmm-glib/MMCdmaManualActivationProperties.html#MMCdmaManualActivationProperties.details">
+<ANCHOR id="MMCdmaManualActivationProperties-struct" href="libmm-glib/MMCdmaManualActivationProperties.html#MMCdmaManualActivationProperties-struct">
+<ANCHOR id="mm-cdma-manual-activation-properties-new" href="libmm-glib/MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-new">
+<ANCHOR id="mm-cdma-manual-activation-properties-get-spc" href="libmm-glib/MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-get-spc">
+<ANCHOR id="mm-cdma-manual-activation-properties-set-spc" href="libmm-glib/MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-set-spc">
+<ANCHOR id="mm-cdma-manual-activation-properties-get-sid" href="libmm-glib/MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-get-sid">
+<ANCHOR id="mm-cdma-manual-activation-properties-set-sid" href="libmm-glib/MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-set-sid">
+<ANCHOR id="mm-cdma-manual-activation-properties-get-mdn" href="libmm-glib/MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-get-mdn">
+<ANCHOR id="mm-cdma-manual-activation-properties-set-mdn" href="libmm-glib/MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-set-mdn">
+<ANCHOR id="mm-cdma-manual-activation-properties-get-min" href="libmm-glib/MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-get-min">
+<ANCHOR id="mm-cdma-manual-activation-properties-set-min" href="libmm-glib/MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-set-min">
+<ANCHOR id="mm-cdma-manual-activation-properties-get-mn-ha-key" href="libmm-glib/MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-get-mn-ha-key">
+<ANCHOR id="mm-cdma-manual-activation-properties-set-mn-ha-key" href="libmm-glib/MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-set-mn-ha-key">
+<ANCHOR id="mm-cdma-manual-activation-properties-get-mn-aaa-key" href="libmm-glib/MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-get-mn-aaa-key">
+<ANCHOR id="mm-cdma-manual-activation-properties-set-mn-aaa-key" href="libmm-glib/MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-set-mn-aaa-key">
+<ANCHOR id="mm-cdma-manual-activation-properties-get-prl" href="libmm-glib/MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-get-prl">
+<ANCHOR id="mm-cdma-manual-activation-properties-peek-prl-bytearray" href="libmm-glib/MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-peek-prl-bytearray">
+<ANCHOR id="mm-cdma-manual-activation-properties-get-prl-bytearray" href="libmm-glib/MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-get-prl-bytearray">
+<ANCHOR id="mm-cdma-manual-activation-properties-set-prl" href="libmm-glib/MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-set-prl">
+<ANCHOR id="mm-cdma-manual-activation-properties-set-prl-bytearray" href="libmm-glib/MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-set-prl-bytearray">
<ANCHOR id="MMUnlockRetries" href="libmm-glib/MMUnlockRetries.html">
<ANCHOR id="MMUnlockRetries.synopsis" href="libmm-glib/MMUnlockRetries.html#MMUnlockRetries.synopsis">
<ANCHOR id="MMUnlockRetries.object-hierarchy" href="libmm-glib/MMUnlockRetries.html#MMUnlockRetries.object-hierarchy">
@@ -314,6 +355,7 @@
<ANCHOR id="mm-simple-status-get-3gpp-registration-state" href="libmm-glib/MMSimpleStatus.html#mm-simple-status-get-3gpp-registration-state">
<ANCHOR id="mm-simple-status-get-3gpp-operator-code" href="libmm-glib/MMSimpleStatus.html#mm-simple-status-get-3gpp-operator-code">
<ANCHOR id="mm-simple-status-get-3gpp-operator-name" href="libmm-glib/MMSimpleStatus.html#mm-simple-status-get-3gpp-operator-name">
+<ANCHOR id="mm-simple-status-get-3gpp-subscription-state" href="libmm-glib/MMSimpleStatus.html#mm-simple-status-get-3gpp-subscription-state">
<ANCHOR id="mm-simple-status-get-cdma-cdma1x-registration-state" href="libmm-glib/MMSimpleStatus.html#mm-simple-status-get-cdma-cdma1x-registration-state">
<ANCHOR id="mm-simple-status-get-cdma-evdo-registration-state" href="libmm-glib/MMSimpleStatus.html#mm-simple-status-get-cdma-evdo-registration-state">
<ANCHOR id="mm-simple-status-get-cdma-nid" href="libmm-glib/MMSimpleStatus.html#mm-simple-status-get-cdma-nid">
@@ -328,6 +370,7 @@
<ANCHOR id="MMSimpleStatus--m3gpp-operator-code" href="libmm-glib/MMSimpleStatus.html#MMSimpleStatus--m3gpp-operator-code">
<ANCHOR id="MMSimpleStatus--m3gpp-operator-name" href="libmm-glib/MMSimpleStatus.html#MMSimpleStatus--m3gpp-operator-name">
<ANCHOR id="MMSimpleStatus--m3gpp-registration-state" href="libmm-glib/MMSimpleStatus.html#MMSimpleStatus--m3gpp-registration-state">
+<ANCHOR id="MMSimpleStatus--m3gpp-subscription-state" href="libmm-glib/MMSimpleStatus.html#MMSimpleStatus--m3gpp-subscription-state">
<ANCHOR id="MMSimpleStatus--signal-quality" href="libmm-glib/MMSimpleStatus.html#MMSimpleStatus--signal-quality">
<ANCHOR id="MMSimpleStatus--state" href="libmm-glib/MMSimpleStatus.html#MMSimpleStatus--state">
<ANCHOR id="MMModemLocation" href="libmm-glib/MMModemLocation.html">
@@ -473,6 +516,70 @@
<ANCHOR id="mm-firmware-properties-get-gobi-boot-version" href="libmm-glib/MMFirmwareProperties.html#mm-firmware-properties-get-gobi-boot-version">
<ANCHOR id="mm-firmware-properties-get-gobi-pri-unique-id" href="libmm-glib/MMFirmwareProperties.html#mm-firmware-properties-get-gobi-pri-unique-id">
<ANCHOR id="mm-firmware-properties-get-gobi-modem-unique-id" href="libmm-glib/MMFirmwareProperties.html#mm-firmware-properties-get-gobi-modem-unique-id">
+<ANCHOR id="MMModemSignal" href="libmm-glib/MMModemSignal.html">
+<ANCHOR id="MMModemSignal.synopsis" href="libmm-glib/MMModemSignal.html#MMModemSignal.synopsis">
+<ANCHOR id="MMModemSignal.object-hierarchy" href="libmm-glib/MMModemSignal.html#MMModemSignal.object-hierarchy">
+<ANCHOR id="MMModemSignal.implemented-interfaces" href="libmm-glib/MMModemSignal.html#MMModemSignal.implemented-interfaces">
+<ANCHOR id="MMModemSignal.description" href="libmm-glib/MMModemSignal.html#MMModemSignal.description">
+<ANCHOR id="MMModemSignal.details" href="libmm-glib/MMModemSignal.html#MMModemSignal.details">
+<ANCHOR id="MMModemSignal-struct" href="libmm-glib/MMModemSignal.html#MMModemSignal-struct">
+<ANCHOR id="mm-modem-signal-get-path" href="libmm-glib/MMModemSignal.html#mm-modem-signal-get-path">
+<ANCHOR id="mm-modem-signal-dup-path" href="libmm-glib/MMModemSignal.html#mm-modem-signal-dup-path">
+<ANCHOR id="mm-modem-signal-get-rate" href="libmm-glib/MMModemSignal.html#mm-modem-signal-get-rate">
+<ANCHOR id="mm-modem-signal-peek-cdma" href="libmm-glib/MMModemSignal.html#mm-modem-signal-peek-cdma">
+<ANCHOR id="mm-modem-signal-get-cdma" href="libmm-glib/MMModemSignal.html#mm-modem-signal-get-cdma">
+<ANCHOR id="mm-modem-signal-peek-evdo" href="libmm-glib/MMModemSignal.html#mm-modem-signal-peek-evdo">
+<ANCHOR id="mm-modem-signal-get-evdo" href="libmm-glib/MMModemSignal.html#mm-modem-signal-get-evdo">
+<ANCHOR id="mm-modem-signal-peek-gsm" href="libmm-glib/MMModemSignal.html#mm-modem-signal-peek-gsm">
+<ANCHOR id="mm-modem-signal-get-gsm" href="libmm-glib/MMModemSignal.html#mm-modem-signal-get-gsm">
+<ANCHOR id="mm-modem-signal-peek-umts" href="libmm-glib/MMModemSignal.html#mm-modem-signal-peek-umts">
+<ANCHOR id="mm-modem-signal-get-umts" href="libmm-glib/MMModemSignal.html#mm-modem-signal-get-umts">
+<ANCHOR id="mm-modem-signal-peek-lte" href="libmm-glib/MMModemSignal.html#mm-modem-signal-peek-lte">
+<ANCHOR id="mm-modem-signal-get-lte" href="libmm-glib/MMModemSignal.html#mm-modem-signal-get-lte">
+<ANCHOR id="mm-modem-signal-setup" href="libmm-glib/MMModemSignal.html#mm-modem-signal-setup">
+<ANCHOR id="mm-modem-signal-setup-finish" href="libmm-glib/MMModemSignal.html#mm-modem-signal-setup-finish">
+<ANCHOR id="mm-modem-signal-setup-sync" href="libmm-glib/MMModemSignal.html#mm-modem-signal-setup-sync">
+<ANCHOR id="MMSignal" href="libmm-glib/MMSignal.html">
+<ANCHOR id="MMSignal.synopsis" href="libmm-glib/MMSignal.html#MMSignal.synopsis">
+<ANCHOR id="MMSignal.object-hierarchy" href="libmm-glib/MMSignal.html#MMSignal.object-hierarchy">
+<ANCHOR id="MMSignal.description" href="libmm-glib/MMSignal.html#MMSignal.description">
+<ANCHOR id="MMSignal.details" href="libmm-glib/MMSignal.html#MMSignal.details">
+<ANCHOR id="MMSignal-struct" href="libmm-glib/MMSignal.html#MMSignal-struct">
+<ANCHOR id="MM-SIGNAL-UNKNOWN:CAPS" href="libmm-glib/MMSignal.html#MM-SIGNAL-UNKNOWN:CAPS">
+<ANCHOR id="mm-signal-get-rssi" href="libmm-glib/MMSignal.html#mm-signal-get-rssi">
+<ANCHOR id="mm-signal-get-ecio" href="libmm-glib/MMSignal.html#mm-signal-get-ecio">
+<ANCHOR id="mm-signal-get-sinr" href="libmm-glib/MMSignal.html#mm-signal-get-sinr">
+<ANCHOR id="mm-signal-get-io" href="libmm-glib/MMSignal.html#mm-signal-get-io">
+<ANCHOR id="mm-signal-get-rsrp" href="libmm-glib/MMSignal.html#mm-signal-get-rsrp">
+<ANCHOR id="mm-signal-get-rsrq" href="libmm-glib/MMSignal.html#mm-signal-get-rsrq">
+<ANCHOR id="mm-signal-get-snr" href="libmm-glib/MMSignal.html#mm-signal-get-snr">
+<ANCHOR id="MMModemOma" href="libmm-glib/MMModemOma.html">
+<ANCHOR id="MMModemOma.synopsis" href="libmm-glib/MMModemOma.html#MMModemOma.synopsis">
+<ANCHOR id="MMModemOma.object-hierarchy" href="libmm-glib/MMModemOma.html#MMModemOma.object-hierarchy">
+<ANCHOR id="MMModemOma.implemented-interfaces" href="libmm-glib/MMModemOma.html#MMModemOma.implemented-interfaces">
+<ANCHOR id="MMModemOma.description" href="libmm-glib/MMModemOma.html#MMModemOma.description">
+<ANCHOR id="MMModemOma.details" href="libmm-glib/MMModemOma.html#MMModemOma.details">
+<ANCHOR id="MMModemOma-struct" href="libmm-glib/MMModemOma.html#MMModemOma-struct">
+<ANCHOR id="MMOmaPendingNetworkInitiatedSession" href="libmm-glib/MMModemOma.html#MMOmaPendingNetworkInitiatedSession">
+<ANCHOR id="mm-modem-oma-get-path" href="libmm-glib/MMModemOma.html#mm-modem-oma-get-path">
+<ANCHOR id="mm-modem-oma-dup-path" href="libmm-glib/MMModemOma.html#mm-modem-oma-dup-path">
+<ANCHOR id="mm-modem-oma-setup" href="libmm-glib/MMModemOma.html#mm-modem-oma-setup">
+<ANCHOR id="mm-modem-oma-setup-finish" href="libmm-glib/MMModemOma.html#mm-modem-oma-setup-finish">
+<ANCHOR id="mm-modem-oma-setup-sync" href="libmm-glib/MMModemOma.html#mm-modem-oma-setup-sync">
+<ANCHOR id="mm-modem-oma-start-client-initiated-session" href="libmm-glib/MMModemOma.html#mm-modem-oma-start-client-initiated-session">
+<ANCHOR id="mm-modem-oma-start-client-initiated-session-finish" href="libmm-glib/MMModemOma.html#mm-modem-oma-start-client-initiated-session-finish">
+<ANCHOR id="mm-modem-oma-start-client-initiated-session-sync" href="libmm-glib/MMModemOma.html#mm-modem-oma-start-client-initiated-session-sync">
+<ANCHOR id="mm-modem-oma-accept-network-initiated-session" href="libmm-glib/MMModemOma.html#mm-modem-oma-accept-network-initiated-session">
+<ANCHOR id="mm-modem-oma-accept-network-initiated-session-finish" href="libmm-glib/MMModemOma.html#mm-modem-oma-accept-network-initiated-session-finish">
+<ANCHOR id="mm-modem-oma-accept-network-initiated-session-sync" href="libmm-glib/MMModemOma.html#mm-modem-oma-accept-network-initiated-session-sync">
+<ANCHOR id="mm-modem-oma-cancel-session" href="libmm-glib/MMModemOma.html#mm-modem-oma-cancel-session">
+<ANCHOR id="mm-modem-oma-cancel-session-finish" href="libmm-glib/MMModemOma.html#mm-modem-oma-cancel-session-finish">
+<ANCHOR id="mm-modem-oma-cancel-session-sync" href="libmm-glib/MMModemOma.html#mm-modem-oma-cancel-session-sync">
+<ANCHOR id="mm-modem-oma-get-features" href="libmm-glib/MMModemOma.html#mm-modem-oma-get-features">
+<ANCHOR id="mm-modem-oma-get-session-type" href="libmm-glib/MMModemOma.html#mm-modem-oma-get-session-type">
+<ANCHOR id="mm-modem-oma-get-session-state" href="libmm-glib/MMModemOma.html#mm-modem-oma-get-session-state">
+<ANCHOR id="mm-modem-peek-pending-network-initiated-sessions" href="libmm-glib/MMModemOma.html#mm-modem-peek-pending-network-initiated-sessions">
+<ANCHOR id="mm-modem-get-pending-network-initiated-sessions" href="libmm-glib/MMModemOma.html#mm-modem-get-pending-network-initiated-sessions">
<ANCHOR id="MMBearer" href="libmm-glib/MMBearer.html">
<ANCHOR id="MMBearer.synopsis" href="libmm-glib/MMBearer.html#MMBearer.synopsis">
<ANCHOR id="MMBearer.object-hierarchy" href="libmm-glib/MMBearer.html#MMBearer.object-hierarchy">
@@ -587,6 +694,8 @@
<ANCHOR id="mm-sms-dup-smsc" href="libmm-glib/MMSms.html#mm-sms-dup-smsc">
<ANCHOR id="mm-sms-get-message-reference" href="libmm-glib/MMSms.html#mm-sms-get-message-reference">
<ANCHOR id="mm-sms-get-class" href="libmm-glib/MMSms.html#mm-sms-get-class">
+<ANCHOR id="mm-sms-get-teleservice-id" href="libmm-glib/MMSms.html#mm-sms-get-teleservice-id">
+<ANCHOR id="mm-sms-get-service-category" href="libmm-glib/MMSms.html#mm-sms-get-service-category">
<ANCHOR id="mm-sms-get-validity-type" href="libmm-glib/MMSms.html#mm-sms-get-validity-type">
<ANCHOR id="mm-sms-get-validity-relative" href="libmm-glib/MMSms.html#mm-sms-get-validity-relative">
<ANCHOR id="mm-sms-get-timestamp" href="libmm-glib/MMSms.html#mm-sms-get-timestamp">
@@ -626,6 +735,10 @@
<ANCHOR id="mm-sms-properties-set-class" href="libmm-glib/MMSmsProperties.html#mm-sms-properties-set-class">
<ANCHOR id="mm-sms-properties-get-delivery-report-request" href="libmm-glib/MMSmsProperties.html#mm-sms-properties-get-delivery-report-request">
<ANCHOR id="mm-sms-properties-set-delivery-report-request" href="libmm-glib/MMSmsProperties.html#mm-sms-properties-set-delivery-report-request">
+<ANCHOR id="mm-sms-properties-get-teleservice-id" href="libmm-glib/MMSmsProperties.html#mm-sms-properties-get-teleservice-id">
+<ANCHOR id="mm-sms-properties-set-teleservice-id" href="libmm-glib/MMSmsProperties.html#mm-sms-properties-set-teleservice-id">
+<ANCHOR id="mm-sms-properties-get-service-category" href="libmm-glib/MMSmsProperties.html#mm-sms-properties-get-service-category">
+<ANCHOR id="mm-sms-properties-set-service-category" href="libmm-glib/MMSmsProperties.html#mm-sms-properties-set-service-category">
<ANCHOR id="MmGdbusOrgFreedesktopModemManager1" href="libmm-glib/MmGdbusOrgFreedesktopModemManager1.html">
<ANCHOR id="MmGdbusOrgFreedesktopModemManager1.synopsis" href="libmm-glib/MmGdbusOrgFreedesktopModemManager1.html#MmGdbusOrgFreedesktopModemManager1.synopsis">
<ANCHOR id="MmGdbusOrgFreedesktopModemManager1.object-hierarchy" href="libmm-glib/MmGdbusOrgFreedesktopModemManager1.html#MmGdbusOrgFreedesktopModemManager1.object-hierarchy">
@@ -706,14 +819,20 @@
<ANCHOR id="mm-gdbus-object-get-modem-time" href="libmm-glib/MmGdbusObject.html#mm-gdbus-object-get-modem-time">
<ANCHOR id="mm-gdbus-object-peek-modem-firmware" href="libmm-glib/MmGdbusObject.html#mm-gdbus-object-peek-modem-firmware">
<ANCHOR id="mm-gdbus-object-get-modem-firmware" href="libmm-glib/MmGdbusObject.html#mm-gdbus-object-get-modem-firmware">
+<ANCHOR id="mm-gdbus-object-peek-modem-oma" href="libmm-glib/MmGdbusObject.html#mm-gdbus-object-peek-modem-oma">
+<ANCHOR id="mm-gdbus-object-get-modem-oma" href="libmm-glib/MmGdbusObject.html#mm-gdbus-object-get-modem-oma">
<ANCHOR id="mm-gdbus-object-peek-modem-simple" href="libmm-glib/MmGdbusObject.html#mm-gdbus-object-peek-modem-simple">
<ANCHOR id="mm-gdbus-object-get-modem-simple" href="libmm-glib/MmGdbusObject.html#mm-gdbus-object-get-modem-simple">
+<ANCHOR id="mm-gdbus-object-peek-modem-signal" href="libmm-glib/MmGdbusObject.html#mm-gdbus-object-peek-modem-signal">
+<ANCHOR id="mm-gdbus-object-get-modem-signal" href="libmm-glib/MmGdbusObject.html#mm-gdbus-object-get-modem-signal">
<ANCHOR id="MmGdbusObject.property-details" href="libmm-glib/MmGdbusObject.html#MmGdbusObject.property-details">
<ANCHOR id="MmGdbusObject--modem" href="libmm-glib/MmGdbusObject.html#MmGdbusObject--modem">
<ANCHOR id="MmGdbusObject--modem-cdma" href="libmm-glib/MmGdbusObject.html#MmGdbusObject--modem-cdma">
<ANCHOR id="MmGdbusObject--modem-firmware" href="libmm-glib/MmGdbusObject.html#MmGdbusObject--modem-firmware">
<ANCHOR id="MmGdbusObject--modem-location" href="libmm-glib/MmGdbusObject.html#MmGdbusObject--modem-location">
<ANCHOR id="MmGdbusObject--modem-messaging" href="libmm-glib/MmGdbusObject.html#MmGdbusObject--modem-messaging">
+<ANCHOR id="MmGdbusObject--modem-oma" href="libmm-glib/MmGdbusObject.html#MmGdbusObject--modem-oma">
+<ANCHOR id="MmGdbusObject--modem-signal" href="libmm-glib/MmGdbusObject.html#MmGdbusObject--modem-signal">
<ANCHOR id="MmGdbusObject--modem-simple" href="libmm-glib/MmGdbusObject.html#MmGdbusObject--modem-simple">
<ANCHOR id="MmGdbusObject--modem-time" href="libmm-glib/MmGdbusObject.html#MmGdbusObject--modem-time">
<ANCHOR id="MmGdbusObject--modem3gpp" href="libmm-glib/MmGdbusObject.html#MmGdbusObject--modem3gpp">
@@ -739,10 +858,12 @@
<ANCHOR id="mm-gdbus-object-skeleton-set-modem3gpp-ussd" href="libmm-glib/MmGdbusObjectSkeleton.html#mm-gdbus-object-skeleton-set-modem3gpp-ussd">
<ANCHOR id="mm-gdbus-object-skeleton-set-modem-cdma" href="libmm-glib/MmGdbusObjectSkeleton.html#mm-gdbus-object-skeleton-set-modem-cdma">
<ANCHOR id="mm-gdbus-object-skeleton-set-modem-firmware" href="libmm-glib/MmGdbusObjectSkeleton.html#mm-gdbus-object-skeleton-set-modem-firmware">
+<ANCHOR id="mm-gdbus-object-skeleton-set-modem-oma" href="libmm-glib/MmGdbusObjectSkeleton.html#mm-gdbus-object-skeleton-set-modem-oma">
<ANCHOR id="mm-gdbus-object-skeleton-set-modem-location" href="libmm-glib/MmGdbusObjectSkeleton.html#mm-gdbus-object-skeleton-set-modem-location">
<ANCHOR id="mm-gdbus-object-skeleton-set-modem-messaging" href="libmm-glib/MmGdbusObjectSkeleton.html#mm-gdbus-object-skeleton-set-modem-messaging">
<ANCHOR id="mm-gdbus-object-skeleton-set-modem-simple" href="libmm-glib/MmGdbusObjectSkeleton.html#mm-gdbus-object-skeleton-set-modem-simple">
<ANCHOR id="mm-gdbus-object-skeleton-set-modem-time" href="libmm-glib/MmGdbusObjectSkeleton.html#mm-gdbus-object-skeleton-set-modem-time">
+<ANCHOR id="mm-gdbus-object-skeleton-set-modem-signal" href="libmm-glib/MmGdbusObjectSkeleton.html#mm-gdbus-object-skeleton-set-modem-signal">
<ANCHOR id="MmGdbusModem" href="libmm-glib/MmGdbusModem.html">
<ANCHOR id="MmGdbusModem.synopsis" href="libmm-glib/MmGdbusModem.html#MmGdbusModem.synopsis">
<ANCHOR id="MmGdbusModem.object-hierarchy" href="libmm-glib/MmGdbusModem.html#MmGdbusModem.object-hierarchy">
@@ -755,6 +876,8 @@
<ANCHOR id="MmGdbusModem-struct" href="libmm-glib/MmGdbusModem.html#MmGdbusModem-struct">
<ANCHOR id="MmGdbusModemIface" href="libmm-glib/MmGdbusModem.html#MmGdbusModemIface">
<ANCHOR id="mm-gdbus-modem-get-access-technologies" href="libmm-glib/MmGdbusModem.html#mm-gdbus-modem-get-access-technologies">
+<ANCHOR id="mm-gdbus-modem-get-bearers" href="libmm-glib/MmGdbusModem.html#mm-gdbus-modem-get-bearers">
+<ANCHOR id="mm-gdbus-modem-dup-bearers" href="libmm-glib/MmGdbusModem.html#mm-gdbus-modem-dup-bearers">
<ANCHOR id="mm-gdbus-modem-get-current-modes" href="libmm-glib/MmGdbusModem.html#mm-gdbus-modem-get-current-modes">
<ANCHOR id="mm-gdbus-modem-dup-current-modes" href="libmm-glib/MmGdbusModem.html#mm-gdbus-modem-dup-current-modes">
<ANCHOR id="mm-gdbus-modem-get-current-bands" href="libmm-glib/MmGdbusModem.html#mm-gdbus-modem-get-current-bands">
@@ -836,6 +959,7 @@
<ANCHOR id="mm-gdbus-modem-call-command-sync" href="libmm-glib/MmGdbusModem.html#mm-gdbus-modem-call-command-sync">
<ANCHOR id="MmGdbusModem.property-details" href="libmm-glib/MmGdbusModem.html#MmGdbusModem.property-details">
<ANCHOR id="MmGdbusModem--access-technologies" href="libmm-glib/MmGdbusModem.html#MmGdbusModem--access-technologies">
+<ANCHOR id="MmGdbusModem--bearers" href="libmm-glib/MmGdbusModem.html#MmGdbusModem--bearers">
<ANCHOR id="MmGdbusModem--current-bands" href="libmm-glib/MmGdbusModem.html#MmGdbusModem--current-bands">
<ANCHOR id="MmGdbusModem--current-capabilities" href="libmm-glib/MmGdbusModem.html#MmGdbusModem--current-capabilities">
<ANCHOR id="MmGdbusModem--current-modes" href="libmm-glib/MmGdbusModem.html#MmGdbusModem--current-modes">
@@ -916,6 +1040,7 @@
<ANCHOR id="mm-gdbus-modem3gpp-get-operator-name" href="libmm-glib/MmGdbusModem3gpp.html#mm-gdbus-modem3gpp-get-operator-name">
<ANCHOR id="mm-gdbus-modem3gpp-dup-operator-name" href="libmm-glib/MmGdbusModem3gpp.html#mm-gdbus-modem3gpp-dup-operator-name">
<ANCHOR id="mm-gdbus-modem3gpp-get-enabled-facility-locks" href="libmm-glib/MmGdbusModem3gpp.html#mm-gdbus-modem3gpp-get-enabled-facility-locks">
+<ANCHOR id="mm-gdbus-modem3gpp-get-subscription-state" href="libmm-glib/MmGdbusModem3gpp.html#mm-gdbus-modem3gpp-get-subscription-state">
<ANCHOR id="mm-gdbus-modem3gpp-call-register" href="libmm-glib/MmGdbusModem3gpp.html#mm-gdbus-modem3gpp-call-register">
<ANCHOR id="mm-gdbus-modem3gpp-call-register-finish" href="libmm-glib/MmGdbusModem3gpp.html#mm-gdbus-modem3gpp-call-register-finish">
<ANCHOR id="mm-gdbus-modem3gpp-call-register-sync" href="libmm-glib/MmGdbusModem3gpp.html#mm-gdbus-modem3gpp-call-register-sync">
@@ -928,6 +1053,7 @@
<ANCHOR id="MmGdbusModem3gpp--operator-code" href="libmm-glib/MmGdbusModem3gpp.html#MmGdbusModem3gpp--operator-code">
<ANCHOR id="MmGdbusModem3gpp--operator-name" href="libmm-glib/MmGdbusModem3gpp.html#MmGdbusModem3gpp--operator-name">
<ANCHOR id="MmGdbusModem3gpp--registration-state" href="libmm-glib/MmGdbusModem3gpp.html#MmGdbusModem3gpp--registration-state">
+<ANCHOR id="MmGdbusModem3gpp--subscription-state" href="libmm-glib/MmGdbusModem3gpp.html#MmGdbusModem3gpp--subscription-state">
<ANCHOR id="MmGdbusModem3gpp.signal-details" href="libmm-glib/MmGdbusModem3gpp.html#MmGdbusModem3gpp.signal-details">
<ANCHOR id="MmGdbusModem3gpp-handle-register" href="libmm-glib/MmGdbusModem3gpp.html#MmGdbusModem3gpp-handle-register">
<ANCHOR id="MmGdbusModem3gpp-handle-scan" href="libmm-glib/MmGdbusModem3gpp.html#MmGdbusModem3gpp-handle-scan">
@@ -1127,6 +1253,8 @@
<ANCHOR id="MmGdbusModemMessaging.details" href="libmm-glib/MmGdbusModemMessaging.html#MmGdbusModemMessaging.details">
<ANCHOR id="MmGdbusModemMessaging-struct" href="libmm-glib/MmGdbusModemMessaging.html#MmGdbusModemMessaging-struct">
<ANCHOR id="MmGdbusModemMessagingIface" href="libmm-glib/MmGdbusModemMessaging.html#MmGdbusModemMessagingIface">
+<ANCHOR id="mm-gdbus-modem-messaging-get-messages" href="libmm-glib/MmGdbusModemMessaging.html#mm-gdbus-modem-messaging-get-messages">
+<ANCHOR id="mm-gdbus-modem-messaging-dup-messages" href="libmm-glib/MmGdbusModemMessaging.html#mm-gdbus-modem-messaging-dup-messages">
<ANCHOR id="mm-gdbus-modem-messaging-get-supported-storages" href="libmm-glib/MmGdbusModemMessaging.html#mm-gdbus-modem-messaging-get-supported-storages">
<ANCHOR id="mm-gdbus-modem-messaging-dup-supported-storages" href="libmm-glib/MmGdbusModemMessaging.html#mm-gdbus-modem-messaging-dup-supported-storages">
<ANCHOR id="mm-gdbus-modem-messaging-get-default-storage" href="libmm-glib/MmGdbusModemMessaging.html#mm-gdbus-modem-messaging-get-default-storage">
@@ -1141,6 +1269,7 @@
<ANCHOR id="mm-gdbus-modem-messaging-call-list-sync" href="libmm-glib/MmGdbusModemMessaging.html#mm-gdbus-modem-messaging-call-list-sync">
<ANCHOR id="MmGdbusModemMessaging.property-details" href="libmm-glib/MmGdbusModemMessaging.html#MmGdbusModemMessaging.property-details">
<ANCHOR id="MmGdbusModemMessaging--default-storage" href="libmm-glib/MmGdbusModemMessaging.html#MmGdbusModemMessaging--default-storage">
+<ANCHOR id="MmGdbusModemMessaging--messages" href="libmm-glib/MmGdbusModemMessaging.html#MmGdbusModemMessaging--messages">
<ANCHOR id="MmGdbusModemMessaging--supported-storages" href="libmm-glib/MmGdbusModemMessaging.html#MmGdbusModemMessaging--supported-storages">
<ANCHOR id="MmGdbusModemMessaging.signal-details" href="libmm-glib/MmGdbusModemMessaging.html#MmGdbusModemMessaging.signal-details">
<ANCHOR id="MmGdbusModemMessaging-added" href="libmm-glib/MmGdbusModemMessaging.html#MmGdbusModemMessaging-added">
@@ -1251,6 +1380,121 @@
<ANCHOR id="MmGdbusModemFirmwareSkeleton.details" href="libmm-glib/MmGdbusModemFirmwareSkeleton.html#MmGdbusModemFirmwareSkeleton.details">
<ANCHOR id="MmGdbusModemFirmwareSkeleton-struct" href="libmm-glib/MmGdbusModemFirmwareSkeleton.html#MmGdbusModemFirmwareSkeleton-struct">
<ANCHOR id="mm-gdbus-modem-firmware-skeleton-new" href="libmm-glib/MmGdbusModemFirmwareSkeleton.html#mm-gdbus-modem-firmware-skeleton-new">
+<ANCHOR id="MmGdbusModemSignal" href="libmm-glib/MmGdbusModemSignal.html">
+<ANCHOR id="MmGdbusModemSignal.synopsis" href="libmm-glib/MmGdbusModemSignal.html#MmGdbusModemSignal.synopsis">
+<ANCHOR id="MmGdbusModemSignal.object-hierarchy" href="libmm-glib/MmGdbusModemSignal.html#MmGdbusModemSignal.object-hierarchy">
+<ANCHOR id="MmGdbusModemSignal.prerequisites" href="libmm-glib/MmGdbusModemSignal.html#MmGdbusModemSignal.prerequisites">
+<ANCHOR id="MmGdbusModemSignal.implementations" href="libmm-glib/MmGdbusModemSignal.html#MmGdbusModemSignal.implementations">
+<ANCHOR id="MmGdbusModemSignal.properties" href="libmm-glib/MmGdbusModemSignal.html#MmGdbusModemSignal.properties">
+<ANCHOR id="MmGdbusModemSignal.signals" href="libmm-glib/MmGdbusModemSignal.html#MmGdbusModemSignal.signals">
+<ANCHOR id="MmGdbusModemSignal.description" href="libmm-glib/MmGdbusModemSignal.html#MmGdbusModemSignal.description">
+<ANCHOR id="MmGdbusModemSignal.details" href="libmm-glib/MmGdbusModemSignal.html#MmGdbusModemSignal.details">
+<ANCHOR id="MmGdbusModemSignal-struct" href="libmm-glib/MmGdbusModemSignal.html#MmGdbusModemSignal-struct">
+<ANCHOR id="MmGdbusModemSignalIface" href="libmm-glib/MmGdbusModemSignal.html#MmGdbusModemSignalIface">
+<ANCHOR id="mm-gdbus-modem-signal-get-rate" href="libmm-glib/MmGdbusModemSignal.html#mm-gdbus-modem-signal-get-rate">
+<ANCHOR id="mm-gdbus-modem-signal-get-cdma" href="libmm-glib/MmGdbusModemSignal.html#mm-gdbus-modem-signal-get-cdma">
+<ANCHOR id="mm-gdbus-modem-signal-get-evdo" href="libmm-glib/MmGdbusModemSignal.html#mm-gdbus-modem-signal-get-evdo">
+<ANCHOR id="mm-gdbus-modem-signal-get-gsm" href="libmm-glib/MmGdbusModemSignal.html#mm-gdbus-modem-signal-get-gsm">
+<ANCHOR id="mm-gdbus-modem-signal-get-umts" href="libmm-glib/MmGdbusModemSignal.html#mm-gdbus-modem-signal-get-umts">
+<ANCHOR id="mm-gdbus-modem-signal-get-lte" href="libmm-glib/MmGdbusModemSignal.html#mm-gdbus-modem-signal-get-lte">
+<ANCHOR id="mm-gdbus-modem-signal-dup-cdma" href="libmm-glib/MmGdbusModemSignal.html#mm-gdbus-modem-signal-dup-cdma">
+<ANCHOR id="mm-gdbus-modem-signal-dup-evdo" href="libmm-glib/MmGdbusModemSignal.html#mm-gdbus-modem-signal-dup-evdo">
+<ANCHOR id="mm-gdbus-modem-signal-dup-gsm" href="libmm-glib/MmGdbusModemSignal.html#mm-gdbus-modem-signal-dup-gsm">
+<ANCHOR id="mm-gdbus-modem-signal-dup-umts" href="libmm-glib/MmGdbusModemSignal.html#mm-gdbus-modem-signal-dup-umts">
+<ANCHOR id="mm-gdbus-modem-signal-dup-lte" href="libmm-glib/MmGdbusModemSignal.html#mm-gdbus-modem-signal-dup-lte">
+<ANCHOR id="mm-gdbus-modem-signal-call-setup" href="libmm-glib/MmGdbusModemSignal.html#mm-gdbus-modem-signal-call-setup">
+<ANCHOR id="mm-gdbus-modem-signal-call-setup-finish" href="libmm-glib/MmGdbusModemSignal.html#mm-gdbus-modem-signal-call-setup-finish">
+<ANCHOR id="mm-gdbus-modem-signal-call-setup-sync" href="libmm-glib/MmGdbusModemSignal.html#mm-gdbus-modem-signal-call-setup-sync">
+<ANCHOR id="MmGdbusModemSignal.property-details" href="libmm-glib/MmGdbusModemSignal.html#MmGdbusModemSignal.property-details">
+<ANCHOR id="MmGdbusModemSignal--cdma" href="libmm-glib/MmGdbusModemSignal.html#MmGdbusModemSignal--cdma">
+<ANCHOR id="MmGdbusModemSignal--evdo" href="libmm-glib/MmGdbusModemSignal.html#MmGdbusModemSignal--evdo">
+<ANCHOR id="MmGdbusModemSignal--gsm" href="libmm-glib/MmGdbusModemSignal.html#MmGdbusModemSignal--gsm">
+<ANCHOR id="MmGdbusModemSignal--lte" href="libmm-glib/MmGdbusModemSignal.html#MmGdbusModemSignal--lte">
+<ANCHOR id="MmGdbusModemSignal--rate" href="libmm-glib/MmGdbusModemSignal.html#MmGdbusModemSignal--rate">
+<ANCHOR id="MmGdbusModemSignal--umts" href="libmm-glib/MmGdbusModemSignal.html#MmGdbusModemSignal--umts">
+<ANCHOR id="MmGdbusModemSignal.signal-details" href="libmm-glib/MmGdbusModemSignal.html#MmGdbusModemSignal.signal-details">
+<ANCHOR id="MmGdbusModemSignal-handle-setup" href="libmm-glib/MmGdbusModemSignal.html#MmGdbusModemSignal-handle-setup">
+<ANCHOR id="MmGdbusModemSignalProxy" href="libmm-glib/MmGdbusModemSignalProxy.html">
+<ANCHOR id="MmGdbusModemSignalProxy.synopsis" href="libmm-glib/MmGdbusModemSignalProxy.html#MmGdbusModemSignalProxy.synopsis">
+<ANCHOR id="MmGdbusModemSignalProxy.object-hierarchy" href="libmm-glib/MmGdbusModemSignalProxy.html#MmGdbusModemSignalProxy.object-hierarchy">
+<ANCHOR id="MmGdbusModemSignalProxy.implemented-interfaces" href="libmm-glib/MmGdbusModemSignalProxy.html#MmGdbusModemSignalProxy.implemented-interfaces">
+<ANCHOR id="MmGdbusModemSignalProxy.description" href="libmm-glib/MmGdbusModemSignalProxy.html#MmGdbusModemSignalProxy.description">
+<ANCHOR id="MmGdbusModemSignalProxy.details" href="libmm-glib/MmGdbusModemSignalProxy.html#MmGdbusModemSignalProxy.details">
+<ANCHOR id="MmGdbusModemSignalProxy-struct" href="libmm-glib/MmGdbusModemSignalProxy.html#MmGdbusModemSignalProxy-struct">
+<ANCHOR id="mm-gdbus-modem-signal-proxy-new" href="libmm-glib/MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new">
+<ANCHOR id="mm-gdbus-modem-signal-proxy-new-finish" href="libmm-glib/MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new-finish">
+<ANCHOR id="mm-gdbus-modem-signal-proxy-new-for-bus" href="libmm-glib/MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new-for-bus">
+<ANCHOR id="mm-gdbus-modem-signal-proxy-new-for-bus-finish" href="libmm-glib/MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new-for-bus-finish">
+<ANCHOR id="mm-gdbus-modem-signal-proxy-new-for-bus-sync" href="libmm-glib/MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new-for-bus-sync">
+<ANCHOR id="mm-gdbus-modem-signal-proxy-new-sync" href="libmm-glib/MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new-sync">
+<ANCHOR id="MmGdbusModemSignalSkeleton" href="libmm-glib/MmGdbusModemSignalSkeleton.html">
+<ANCHOR id="MmGdbusModemSignalSkeleton.synopsis" href="libmm-glib/MmGdbusModemSignalSkeleton.html#MmGdbusModemSignalSkeleton.synopsis">
+<ANCHOR id="MmGdbusModemSignalSkeleton.object-hierarchy" href="libmm-glib/MmGdbusModemSignalSkeleton.html#MmGdbusModemSignalSkeleton.object-hierarchy">
+<ANCHOR id="MmGdbusModemSignalSkeleton.implemented-interfaces" href="libmm-glib/MmGdbusModemSignalSkeleton.html#MmGdbusModemSignalSkeleton.implemented-interfaces">
+<ANCHOR id="MmGdbusModemSignalSkeleton.description" href="libmm-glib/MmGdbusModemSignalSkeleton.html#MmGdbusModemSignalSkeleton.description">
+<ANCHOR id="MmGdbusModemSignalSkeleton.details" href="libmm-glib/MmGdbusModemSignalSkeleton.html#MmGdbusModemSignalSkeleton.details">
+<ANCHOR id="MmGdbusModemSignalSkeleton-struct" href="libmm-glib/MmGdbusModemSignalSkeleton.html#MmGdbusModemSignalSkeleton-struct">
+<ANCHOR id="mm-gdbus-modem-signal-skeleton-new" href="libmm-glib/MmGdbusModemSignalSkeleton.html#mm-gdbus-modem-signal-skeleton-new">
+<ANCHOR id="MmGdbusModemOma" href="libmm-glib/MmGdbusModemOma.html">
+<ANCHOR id="MmGdbusModemOma.synopsis" href="libmm-glib/MmGdbusModemOma.html#MmGdbusModemOma.synopsis">
+<ANCHOR id="MmGdbusModemOma.object-hierarchy" href="libmm-glib/MmGdbusModemOma.html#MmGdbusModemOma.object-hierarchy">
+<ANCHOR id="MmGdbusModemOma.prerequisites" href="libmm-glib/MmGdbusModemOma.html#MmGdbusModemOma.prerequisites">
+<ANCHOR id="MmGdbusModemOma.implementations" href="libmm-glib/MmGdbusModemOma.html#MmGdbusModemOma.implementations">
+<ANCHOR id="MmGdbusModemOma.properties" href="libmm-glib/MmGdbusModemOma.html#MmGdbusModemOma.properties">
+<ANCHOR id="MmGdbusModemOma.signals" href="libmm-glib/MmGdbusModemOma.html#MmGdbusModemOma.signals">
+<ANCHOR id="MmGdbusModemOma.description" href="libmm-glib/MmGdbusModemOma.html#MmGdbusModemOma.description">
+<ANCHOR id="MmGdbusModemOma.details" href="libmm-glib/MmGdbusModemOma.html#MmGdbusModemOma.details">
+<ANCHOR id="MmGdbusModemOma-struct" href="libmm-glib/MmGdbusModemOma.html#MmGdbusModemOma-struct">
+<ANCHOR id="MmGdbusModemOmaIface" href="libmm-glib/MmGdbusModemOma.html#MmGdbusModemOmaIface">
+<ANCHOR id="mm-gdbus-modem-oma-call-accept-network-initiated-session" href="libmm-glib/MmGdbusModemOma.html#mm-gdbus-modem-oma-call-accept-network-initiated-session">
+<ANCHOR id="mm-gdbus-modem-oma-call-accept-network-initiated-session-finish" href="libmm-glib/MmGdbusModemOma.html#mm-gdbus-modem-oma-call-accept-network-initiated-session-finish">
+<ANCHOR id="mm-gdbus-modem-oma-call-accept-network-initiated-session-sync" href="libmm-glib/MmGdbusModemOma.html#mm-gdbus-modem-oma-call-accept-network-initiated-session-sync">
+<ANCHOR id="mm-gdbus-modem-oma-call-cancel-session" href="libmm-glib/MmGdbusModemOma.html#mm-gdbus-modem-oma-call-cancel-session">
+<ANCHOR id="mm-gdbus-modem-oma-call-cancel-session-finish" href="libmm-glib/MmGdbusModemOma.html#mm-gdbus-modem-oma-call-cancel-session-finish">
+<ANCHOR id="mm-gdbus-modem-oma-call-cancel-session-sync" href="libmm-glib/MmGdbusModemOma.html#mm-gdbus-modem-oma-call-cancel-session-sync">
+<ANCHOR id="mm-gdbus-modem-oma-call-setup" href="libmm-glib/MmGdbusModemOma.html#mm-gdbus-modem-oma-call-setup">
+<ANCHOR id="mm-gdbus-modem-oma-call-setup-finish" href="libmm-glib/MmGdbusModemOma.html#mm-gdbus-modem-oma-call-setup-finish">
+<ANCHOR id="mm-gdbus-modem-oma-call-setup-sync" href="libmm-glib/MmGdbusModemOma.html#mm-gdbus-modem-oma-call-setup-sync">
+<ANCHOR id="mm-gdbus-modem-oma-call-start-client-initiated-session" href="libmm-glib/MmGdbusModemOma.html#mm-gdbus-modem-oma-call-start-client-initiated-session">
+<ANCHOR id="mm-gdbus-modem-oma-call-start-client-initiated-session-finish" href="libmm-glib/MmGdbusModemOma.html#mm-gdbus-modem-oma-call-start-client-initiated-session-finish">
+<ANCHOR id="mm-gdbus-modem-oma-call-start-client-initiated-session-sync" href="libmm-glib/MmGdbusModemOma.html#mm-gdbus-modem-oma-call-start-client-initiated-session-sync">
+<ANCHOR id="mm-gdbus-modem-oma-get-features" href="libmm-glib/MmGdbusModemOma.html#mm-gdbus-modem-oma-get-features">
+<ANCHOR id="mm-gdbus-modem-oma-get-session-state" href="libmm-glib/MmGdbusModemOma.html#mm-gdbus-modem-oma-get-session-state">
+<ANCHOR id="mm-gdbus-modem-oma-get-session-type" href="libmm-glib/MmGdbusModemOma.html#mm-gdbus-modem-oma-get-session-type">
+<ANCHOR id="mm-gdbus-modem-oma-get-pending-network-initiated-sessions" href="libmm-glib/MmGdbusModemOma.html#mm-gdbus-modem-oma-get-pending-network-initiated-sessions">
+<ANCHOR id="mm-gdbus-modem-oma-dup-pending-network-initiated-sessions" href="libmm-glib/MmGdbusModemOma.html#mm-gdbus-modem-oma-dup-pending-network-initiated-sessions">
+<ANCHOR id="MmGdbusModemOma.property-details" href="libmm-glib/MmGdbusModemOma.html#MmGdbusModemOma.property-details">
+<ANCHOR id="MmGdbusModemOma--features" href="libmm-glib/MmGdbusModemOma.html#MmGdbusModemOma--features">
+<ANCHOR id="MmGdbusModemOma--pending-network-initiated-sessions" href="libmm-glib/MmGdbusModemOma.html#MmGdbusModemOma--pending-network-initiated-sessions">
+<ANCHOR id="MmGdbusModemOma--session-state" href="libmm-glib/MmGdbusModemOma.html#MmGdbusModemOma--session-state">
+<ANCHOR id="MmGdbusModemOma--session-type" href="libmm-glib/MmGdbusModemOma.html#MmGdbusModemOma--session-type">
+<ANCHOR id="MmGdbusModemOma.signal-details" href="libmm-glib/MmGdbusModemOma.html#MmGdbusModemOma.signal-details">
+<ANCHOR id="MmGdbusModemOma-handle-accept-network-initiated-session" href="libmm-glib/MmGdbusModemOma.html#MmGdbusModemOma-handle-accept-network-initiated-session">
+<ANCHOR id="MmGdbusModemOma-handle-cancel-session" href="libmm-glib/MmGdbusModemOma.html#MmGdbusModemOma-handle-cancel-session">
+<ANCHOR id="MmGdbusModemOma-handle-setup" href="libmm-glib/MmGdbusModemOma.html#MmGdbusModemOma-handle-setup">
+<ANCHOR id="MmGdbusModemOma-handle-start-client-initiated-session" href="libmm-glib/MmGdbusModemOma.html#MmGdbusModemOma-handle-start-client-initiated-session">
+<ANCHOR id="MmGdbusModemOma-session-state-changed" href="libmm-glib/MmGdbusModemOma.html#MmGdbusModemOma-session-state-changed">
+<ANCHOR id="MmGdbusModemOmaProxy" href="libmm-glib/MmGdbusModemOmaProxy.html">
+<ANCHOR id="MmGdbusModemOmaProxy.synopsis" href="libmm-glib/MmGdbusModemOmaProxy.html#MmGdbusModemOmaProxy.synopsis">
+<ANCHOR id="MmGdbusModemOmaProxy.object-hierarchy" href="libmm-glib/MmGdbusModemOmaProxy.html#MmGdbusModemOmaProxy.object-hierarchy">
+<ANCHOR id="MmGdbusModemOmaProxy.implemented-interfaces" href="libmm-glib/MmGdbusModemOmaProxy.html#MmGdbusModemOmaProxy.implemented-interfaces">
+<ANCHOR id="MmGdbusModemOmaProxy.description" href="libmm-glib/MmGdbusModemOmaProxy.html#MmGdbusModemOmaProxy.description">
+<ANCHOR id="MmGdbusModemOmaProxy.details" href="libmm-glib/MmGdbusModemOmaProxy.html#MmGdbusModemOmaProxy.details">
+<ANCHOR id="MmGdbusModemOmaProxy-struct" href="libmm-glib/MmGdbusModemOmaProxy.html#MmGdbusModemOmaProxy-struct">
+<ANCHOR id="mm-gdbus-modem-oma-proxy-new" href="libmm-glib/MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new">
+<ANCHOR id="mm-gdbus-modem-oma-proxy-new-finish" href="libmm-glib/MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new-finish">
+<ANCHOR id="mm-gdbus-modem-oma-proxy-new-for-bus" href="libmm-glib/MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new-for-bus">
+<ANCHOR id="mm-gdbus-modem-oma-proxy-new-for-bus-finish" href="libmm-glib/MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new-for-bus-finish">
+<ANCHOR id="mm-gdbus-modem-oma-proxy-new-for-bus-sync" href="libmm-glib/MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new-for-bus-sync">
+<ANCHOR id="mm-gdbus-modem-oma-proxy-new-sync" href="libmm-glib/MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new-sync">
+<ANCHOR id="MmGdbusModemOmaSkeleton" href="libmm-glib/MmGdbusModemOmaSkeleton.html">
+<ANCHOR id="MmGdbusModemOmaSkeleton.synopsis" href="libmm-glib/MmGdbusModemOmaSkeleton.html#MmGdbusModemOmaSkeleton.synopsis">
+<ANCHOR id="MmGdbusModemOmaSkeleton.object-hierarchy" href="libmm-glib/MmGdbusModemOmaSkeleton.html#MmGdbusModemOmaSkeleton.object-hierarchy">
+<ANCHOR id="MmGdbusModemOmaSkeleton.implemented-interfaces" href="libmm-glib/MmGdbusModemOmaSkeleton.html#MmGdbusModemOmaSkeleton.implemented-interfaces">
+<ANCHOR id="MmGdbusModemOmaSkeleton.description" href="libmm-glib/MmGdbusModemOmaSkeleton.html#MmGdbusModemOmaSkeleton.description">
+<ANCHOR id="MmGdbusModemOmaSkeleton.details" href="libmm-glib/MmGdbusModemOmaSkeleton.html#MmGdbusModemOmaSkeleton.details">
+<ANCHOR id="MmGdbusModemOmaSkeleton-struct" href="libmm-glib/MmGdbusModemOmaSkeleton.html#MmGdbusModemOmaSkeleton-struct">
+<ANCHOR id="mm-gdbus-modem-oma-skeleton-new" href="libmm-glib/MmGdbusModemOmaSkeleton.html#mm-gdbus-modem-oma-skeleton-new">
<ANCHOR id="MmGdbusModemSimple" href="libmm-glib/MmGdbusModemSimple.html">
<ANCHOR id="MmGdbusModemSimple.synopsis" href="libmm-glib/MmGdbusModemSimple.html#MmGdbusModemSimple.synopsis">
<ANCHOR id="MmGdbusModemSimple.object-hierarchy" href="libmm-glib/MmGdbusModemSimple.html#MmGdbusModemSimple.object-hierarchy">
@@ -1443,6 +1687,8 @@
<ANCHOR id="mm-gdbus-sms-get-validity" href="libmm-glib/MmGdbusSms.html#mm-gdbus-sms-get-validity">
<ANCHOR id="mm-gdbus-sms-dup-validity" href="libmm-glib/MmGdbusSms.html#mm-gdbus-sms-dup-validity">
<ANCHOR id="mm-gdbus-sms-get-class" href="libmm-glib/MmGdbusSms.html#mm-gdbus-sms-get-class">
+<ANCHOR id="mm-gdbus-sms-get-teleservice-id" href="libmm-glib/MmGdbusSms.html#mm-gdbus-sms-get-teleservice-id">
+<ANCHOR id="mm-gdbus-sms-get-service-category" href="libmm-glib/MmGdbusSms.html#mm-gdbus-sms-get-service-category">
<ANCHOR id="mm-gdbus-sms-get-timestamp" href="libmm-glib/MmGdbusSms.html#mm-gdbus-sms-get-timestamp">
<ANCHOR id="mm-gdbus-sms-dup-timestamp" href="libmm-glib/MmGdbusSms.html#mm-gdbus-sms-dup-timestamp">
<ANCHOR id="mm-gdbus-sms-get-discharge-timestamp" href="libmm-glib/MmGdbusSms.html#mm-gdbus-sms-get-discharge-timestamp">
@@ -1464,9 +1710,11 @@
<ANCHOR id="MmGdbusSms--message-reference" href="libmm-glib/MmGdbusSms.html#MmGdbusSms--message-reference">
<ANCHOR id="MmGdbusSms--number" href="libmm-glib/MmGdbusSms.html#MmGdbusSms--number">
<ANCHOR id="MmGdbusSms--pdu-type" href="libmm-glib/MmGdbusSms.html#MmGdbusSms--pdu-type">
+<ANCHOR id="MmGdbusSms--service-category" href="libmm-glib/MmGdbusSms.html#MmGdbusSms--service-category">
<ANCHOR id="MmGdbusSms--smsc" href="libmm-glib/MmGdbusSms.html#MmGdbusSms--smsc">
<ANCHOR id="MmGdbusSms--state" href="libmm-glib/MmGdbusSms.html#MmGdbusSms--state">
<ANCHOR id="MmGdbusSms--storage" href="libmm-glib/MmGdbusSms.html#MmGdbusSms--storage">
+<ANCHOR id="MmGdbusSms--teleservice-id" href="libmm-glib/MmGdbusSms.html#MmGdbusSms--teleservice-id">
<ANCHOR id="MmGdbusSms--text" href="libmm-glib/MmGdbusSms.html#MmGdbusSms--text">
<ANCHOR id="MmGdbusSms--timestamp" href="libmm-glib/MmGdbusSms.html#MmGdbusSms--timestamp">
<ANCHOR id="MmGdbusSms--validity" href="libmm-glib/MmGdbusSms.html#MmGdbusSms--validity">
@@ -1494,11 +1742,13 @@
<ANCHOR id="MmGdbusSmsSkeleton.details" href="libmm-glib/MmGdbusSmsSkeleton.html#MmGdbusSmsSkeleton.details">
<ANCHOR id="MmGdbusSmsSkeleton-struct" href="libmm-glib/MmGdbusSmsSkeleton.html#MmGdbusSmsSkeleton-struct">
<ANCHOR id="mm-gdbus-sms-skeleton-new" href="libmm-glib/MmGdbusSmsSkeleton.html#mm-gdbus-sms-skeleton-new">
-<ANCHOR id="annotation-glossterm-out" href="libmm-glib/annotation-glossary.html#annotation-glossterm-out">
-<ANCHOR id="annotation-glossterm-allow-none" href="libmm-glib/annotation-glossary.html#annotation-glossterm-allow-none">
-<ANCHOR id="annotation-glossterm-transfer none" href="libmm-glib/annotation-glossary.html#annotation-glossterm-transfer none">
<ANCHOR id="annotation-glossterm-array" href="libmm-glib/annotation-glossary.html#annotation-glossterm-array">
-<ANCHOR id="annotation-glossterm-element-type" href="libmm-glib/annotation-glossary.html#annotation-glossterm-element-type">
<ANCHOR id="annotation-glossterm-skip" href="libmm-glib/annotation-glossary.html#annotation-glossterm-skip">
-<ANCHOR id="annotation-glossterm-transfer full" href="libmm-glib/annotation-glossary.html#annotation-glossterm-transfer full">
+<ANCHOR id="annotation-glossterm-element-type" href="libmm-glib/annotation-glossary.html#annotation-glossterm-element-type">
+<ANCHOR id="annotation-glossterm-allow-none" href="libmm-glib/annotation-glossary.html#annotation-glossterm-allow-none">
+<ANCHOR id="annotation-glossterm-transfer none" href="libmm-glib/annotation-glossary.html#annotation-glossterm-transfer none">
+<ANCHOR id="annotation-glossterm-scope call" href="libmm-glib/annotation-glossary.html#annotation-glossterm-scope call">
<ANCHOR id="annotation-glossterm-type" href="libmm-glib/annotation-glossary.html#annotation-glossterm-type">
+<ANCHOR id="annotation-glossterm-out" href="libmm-glib/annotation-glossary.html#annotation-glossterm-out">
+<ANCHOR id="annotation-glossterm-transfer full" href="libmm-glib/annotation-glossary.html#annotation-glossterm-transfer full">
+<ANCHOR id="annotation-glossterm-closure" href="libmm-glib/annotation-glossary.html#annotation-glossterm-closure">
diff --git a/docs/reference/libmm-glib/html/libmm-glib-Flags-and-Enumerations.html b/docs/reference/libmm-glib/html/libmm-glib-Flags-and-Enumerations.html
index cf09b87..3f7a20a 100644
--- a/docs/reference/libmm-glib/html/libmm-glib-Flags-and-Enumerations.html
+++ b/docs/reference/libmm-glib/html/libmm-glib-Flags-and-Enumerations.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="Common enums and flags helpers">
<link rel="prev" href="ch01.html" title="Common enums and flags helpers">
<link rel="next" href="ch02.html" title="The Manager object">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -37,49 +37,61 @@
</tr></table></div>
<div class="refsynopsisdiv">
<a name="libmm-glib-Flags-and-Enumerations.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-bearer-ip-method-get-string" title="mm_bearer_ip_method_get_string ()">mm_bearer_ip_method_get_string</a> (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerIpMethod"><span class="type">MMBearerIpMethod</span></a> val</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-bearer-ip-family-get-string" title="mm_bearer_ip_family_get_string ()">mm_bearer_ip_family_get_string</a> (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerIpFamily"><span class="type">MMBearerIpFamily</span></a> val</code></em>);
+<pre class="synopsis">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-bearer-ip-method-get-string" title="mm_bearer_ip_method_get_string ()">mm_bearer_ip_method_get_string</a> (<em class="parameter"><code><span class="type">MMBearerIpMethod</span> val</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-bearer-ip-family-get-string" title="mm_bearer_ip_family_get_string ()">mm_bearer_ip_family_get_string</a> (<em class="parameter"><code><span class="type">MMBearerIpFamily</span> val</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-bearer-allowed-auth-build-string-from-mask" title="mm_bearer_allowed_auth_build_string_from_mask ()">mm_bearer_allowed_auth_build_string_from_mask</a>
- (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerAllowedAuth"><span class="type">MMBearerAllowedAuth</span></a> mask</code></em>);
+ (<em class="parameter"><code><span class="type">MMBearerAllowedAuth</span> mask</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-modem-capability-build-string-from-mask" title="mm_modem_capability_build_string_from_mask ()">mm_modem_capability_build_string_from_mask</a>
- (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCapability"><span class="type">MMModemCapability</span></a> mask</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-modem-state-get-string" title="mm_modem_state_get_string ()">mm_modem_state_get_string</a> (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemState"><span class="type">MMModemState</span></a> val</code></em>);
+ (<em class="parameter"><code><span class="type">MMModemCapability</span> mask</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-modem-state-get-string" title="mm_modem_state_get_string ()">mm_modem_state_get_string</a> (<em class="parameter"><code><span class="type">MMModemState</span> val</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-modem-state-failed-reason-get-string" title="mm_modem_state_failed_reason_get_string ()">mm_modem_state_failed_reason_get_string</a>
- (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemStateFailedReason"><span class="type">MMModemStateFailedReason</span></a> val</code></em>);
+ (<em class="parameter"><code><span class="type">MMModemStateFailedReason</span> val</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-modem-state-change-reason-get-string" title="mm_modem_state_change_reason_get_string ()">mm_modem_state_change_reason_get_string</a>
- (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemStateChangeReason"><span class="type">MMModemStateChangeReason</span></a> val</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-modem-power-state-get-string" title="mm_modem_power_state_get_string ()">mm_modem_power_state_get_string</a> (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemPowerState"><span class="type">MMModemPowerState</span></a> val</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-modem-lock-get-string" title="mm_modem_lock_get_string ()">mm_modem_lock_get_string</a> (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemLock"><span class="type">MMModemLock</span></a> val</code></em>);
+ (<em class="parameter"><code><span class="type">MMModemStateChangeReason</span> val</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-modem-power-state-get-string" title="mm_modem_power_state_get_string ()">mm_modem_power_state_get_string</a> (<em class="parameter"><code><span class="type">MMModemPowerState</span> val</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-modem-lock-get-string" title="mm_modem_lock_get_string ()">mm_modem_lock_get_string</a> (<em class="parameter"><code><span class="type">MMModemLock</span> val</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-modem-access-technology-build-string-from-mask" title="mm_modem_access_technology_build_string_from_mask ()">mm_modem_access_technology_build_string_from_mask</a>
- (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemAccessTechnology"><span class="type">MMModemAccessTechnology</span></a> mask</code></em>);
+ (<em class="parameter"><code><span class="type">MMModemAccessTechnology</span> mask</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-modem-mode-build-string-from-mask" title="mm_modem_mode_build_string_from_mask ()">mm_modem_mode_build_string_from_mask</a>
- (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemMode"><span class="type">MMModemMode</span></a> mask</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-modem-band-get-string" title="mm_modem_band_get_string ()">mm_modem_band_get_string</a> (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemBand"><span class="type">MMModemBand</span></a> val</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-modem-port-type-get-string" title="mm_modem_port_type_get_string ()">mm_modem_port_type_get_string</a> (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemPortType"><span class="type">MMModemPortType</span></a> val</code></em>);
+ (<em class="parameter"><code><span class="type">MMModemMode</span> mask</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-modem-band-get-string" title="mm_modem_band_get_string ()">mm_modem_band_get_string</a> (<em class="parameter"><code><span class="type">MMModemBand</span> val</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-modem-port-type-get-string" title="mm_modem_port_type_get_string ()">mm_modem_port_type_get_string</a> (<em class="parameter"><code><span class="type">MMModemPortType</span> val</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-modem-3gpp-registration-state-get-string" title="mm_modem_3gpp_registration_state_get_string ()">mm_modem_3gpp_registration_state_get_string</a>
- (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModem3gppRegistrationState"><span class="type">MMModem3gppRegistrationState</span></a> val</code></em>);
+ (<em class="parameter"><code><span class="type">MMModem3gppRegistrationState</span> val</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-modem-3gpp-subscription-state-get-string" title="mm_modem_3gpp_subscription_state_get_string ()">mm_modem_3gpp_subscription_state_get_string</a>
+ (<em class="parameter"><code><span class="type">MMModem3gppSubscriptionState</span> val</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-modem-3gpp-facility-build-string-from-mask" title="mm_modem_3gpp_facility_build_string_from_mask ()">mm_modem_3gpp_facility_build_string_from_mask</a>
- (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModem3gppFacility"><span class="type">MMModem3gppFacility</span></a> mask</code></em>);
+ (<em class="parameter"><code><span class="type">MMModem3gppFacility</span> mask</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-modem-3gpp-network-availability-get-string" title="mm_modem_3gpp_network_availability_get_string ()">mm_modem_3gpp_network_availability_get_string</a>
- (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModem3gppNetworkAvailability"><span class="type">MMModem3gppNetworkAvailability</span></a> val</code></em>);
+ (<em class="parameter"><code><span class="type">MMModem3gppNetworkAvailability</span> val</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-modem-3gpp-ussd-session-state-get-string" title="mm_modem_3gpp_ussd_session_state_get_string ()">mm_modem_3gpp_ussd_session_state_get_string</a>
- (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModem3gppUssdSessionState"><span class="type">MMModem3gppUssdSessionState</span></a> val</code></em>);
+ (<em class="parameter"><code><span class="type">MMModem3gppUssdSessionState</span> val</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-modem-cdma-registration-state-get-string" title="mm_modem_cdma_registration_state_get_string ()">mm_modem_cdma_registration_state_get_string</a>
- (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCdmaRegistrationState"><span class="type">MMModemCdmaRegistrationState</span></a> val</code></em>);
+ (<em class="parameter"><code><span class="type">MMModemCdmaRegistrationState</span> val</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-modem-cdma-activation-state-get-string" title="mm_modem_cdma_activation_state_get_string ()">mm_modem_cdma_activation_state_get_string</a>
- (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCdmaActivationState"><span class="type">MMModemCdmaActivationState</span></a> val</code></em>);
+ (<em class="parameter"><code><span class="type">MMModemCdmaActivationState</span> val</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-modem-cdma-rm-protocol-get-string" title="mm_modem_cdma_rm_protocol_get_string ()">mm_modem_cdma_rm_protocol_get_string</a>
- (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCdmaRmProtocol"><span class="type">MMModemCdmaRmProtocol</span></a> val</code></em>);
+ (<em class="parameter"><code><span class="type">MMModemCdmaRmProtocol</span> val</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-modem-location-source-build-string-from-mask" title="mm_modem_location_source_build_string_from_mask ()">mm_modem_location_source_build_string_from_mask</a>
- (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemLocationSource"><span class="type">MMModemLocationSource</span></a> mask</code></em>);
+ (<em class="parameter"><code><span class="type">MMModemLocationSource</span> mask</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-modem-contacts-storage-get-string" title="mm_modem_contacts_storage_get_string ()">mm_modem_contacts_storage_get_string</a>
- (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemContactsStorage"><span class="type">MMModemContactsStorage</span></a> val</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-sms-pdu-type-get-string" title="mm_sms_pdu_type_get_string ()">mm_sms_pdu_type_get_string</a> (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsPduType"><span class="type">MMSmsPduType</span></a> val</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-sms-state-get-string" title="mm_sms_state_get_string ()">mm_sms_state_get_string</a> (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsState"><span class="type">MMSmsState</span></a> val</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-sms-delivery-state-get-string" title="mm_sms_delivery_state_get_string ()">mm_sms_delivery_state_get_string</a> (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsDeliveryState"><span class="type">MMSmsDeliveryState</span></a> val</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-sms-storage-get-string" title="mm_sms_storage_get_string ()">mm_sms_storage_get_string</a> (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsStorage"><span class="type">MMSmsStorage</span></a> val</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-sms-validity-type-get-string" title="mm_sms_validity_type_get_string ()">mm_sms_validity_type_get_string</a> (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsValidityType"><span class="type">MMSmsValidityType</span></a> val</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-firmware-image-type-get-string" title="mm_firmware_image_type_get_string ()">mm_firmware_image_type_get_string</a> (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMFirmwareImageType"><span class="type">MMFirmwareImageType</span></a> val</code></em>);
+ (<em class="parameter"><code><span class="type">MMModemContactsStorage</span> val</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-sms-pdu-type-get-string" title="mm_sms_pdu_type_get_string ()">mm_sms_pdu_type_get_string</a> (<em class="parameter"><code><span class="type">MMSmsPduType</span> val</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-sms-state-get-string" title="mm_sms_state_get_string ()">mm_sms_state_get_string</a> (<em class="parameter"><code><span class="type">MMSmsState</span> val</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-sms-delivery-state-get-string" title="mm_sms_delivery_state_get_string ()">mm_sms_delivery_state_get_string</a> (<em class="parameter"><code><span class="type">MMSmsDeliveryState</span> val</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-sms-storage-get-string" title="mm_sms_storage_get_string ()">mm_sms_storage_get_string</a> (<em class="parameter"><code><span class="type">MMSmsStorage</span> val</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-sms-validity-type-get-string" title="mm_sms_validity_type_get_string ()">mm_sms_validity_type_get_string</a> (<em class="parameter"><code><span class="type">MMSmsValidityType</span> val</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-sms-cdma-teleservice-id-get-string" title="mm_sms_cdma_teleservice_id_get_string ()">mm_sms_cdma_teleservice_id_get_string</a>
+ (<em class="parameter"><code><span class="type">MMSmsCdmaTeleserviceId</span> val</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-sms-cdma-service-category-get-string" title="mm_sms_cdma_service_category_get_string ()">mm_sms_cdma_service_category_get_string</a>
+ (<em class="parameter"><code><span class="type">MMSmsCdmaServiceCategory</span> val</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-firmware-image-type-get-string" title="mm_firmware_image_type_get_string ()">mm_firmware_image_type_get_string</a> (<em class="parameter"><code><span class="type">MMFirmwareImageType</span> val</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-oma-feature-build-string-from-mask" title="mm_oma_feature_build_string_from_mask ()">mm_oma_feature_build_string_from_mask</a>
+ (<em class="parameter"><code><span class="type">MMOmaFeature</span> mask</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-oma-session-type-get-string" title="mm_oma_session_type_get_string ()">mm_oma_session_type_get_string</a> (<em class="parameter"><code><span class="type">MMOmaSessionType</span> val</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-oma-session-state-get-string" title="mm_oma_session_state_get_string ()">mm_oma_session_state_get_string</a> (<em class="parameter"><code><span class="type">MMOmaSessionState</span> val</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libmm-glib-Flags-and-Enumerations.html#mm-oma-session-state-failed-reason-get-string" title="mm_oma_session_state_failed_reason_get_string ()">mm_oma_session_state_failed_reason_get_string</a>
+ (<em class="parameter"><code><span class="type">MMOmaSessionStateFailedReason</span> val</code></em>);
</pre>
</div>
<div class="refsect1">
@@ -91,9 +103,9 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
<a name="libmm-glib-Flags-and-Enumerations.details"></a><h2>Details</h2>
<div class="refsect2">
<a name="mm-bearer-ip-method-get-string"></a><h3>mm_bearer_ip_method_get_string ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_bearer_ip_method_get_string (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerIpMethod"><span class="type">MMBearerIpMethod</span></a> val</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_bearer_ip_method_get_string (<em class="parameter"><code><span class="type">MMBearerIpMethod</span> val</code></em>);</pre>
<p>
-Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerIpMethod"><span class="type">MMBearerIpMethod</span></a> specified at <em class="parameter"><code>val</code></em>.
+Gets the nickname string for the <span class="type">MMBearerIpMethod</span> specified at <em class="parameter"><code>val</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -116,9 +128,9 @@ Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/M
<hr>
<div class="refsect2">
<a name="mm-bearer-ip-family-get-string"></a><h3>mm_bearer_ip_family_get_string ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_bearer_ip_family_get_string (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerIpFamily"><span class="type">MMBearerIpFamily</span></a> val</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_bearer_ip_family_get_string (<em class="parameter"><code><span class="type">MMBearerIpFamily</span> val</code></em>);</pre>
<p>
-Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerIpFamily"><span class="type">MMBearerIpFamily</span></a> specified at <em class="parameter"><code>val</code></em>.
+Gets the nickname string for the <span class="type">MMBearerIpFamily</span> specified at <em class="parameter"><code>val</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -142,10 +154,10 @@ Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/M
<div class="refsect2">
<a name="mm-bearer-allowed-auth-build-string-from-mask"></a><h3>mm_bearer_allowed_auth_build_string_from_mask ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_bearer_allowed_auth_build_string_from_mask
- (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerAllowedAuth"><span class="type">MMBearerAllowedAuth</span></a> mask</code></em>);</pre>
+ (<em class="parameter"><code><span class="type">MMBearerAllowedAuth</span> mask</code></em>);</pre>
<p>
Builds a string containing a comma-separated list of nicknames for
-each <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerAllowedAuth"><span class="type">MMBearerAllowedAuth</span></a> in <em class="parameter"><code>mask</code></em>.
+each <span class="type">MMBearerAllowedAuth</span> in <em class="parameter"><code>mask</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -169,10 +181,10 @@ each <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumer
<div class="refsect2">
<a name="mm-modem-capability-build-string-from-mask"></a><h3>mm_modem_capability_build_string_from_mask ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_modem_capability_build_string_from_mask
- (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCapability"><span class="type">MMModemCapability</span></a> mask</code></em>);</pre>
+ (<em class="parameter"><code><span class="type">MMModemCapability</span> mask</code></em>);</pre>
<p>
Builds a string containing a comma-separated list of nicknames for
-each <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCapability"><span class="type">MMModemCapability</span></a> in <em class="parameter"><code>mask</code></em>.
+each <span class="type">MMModemCapability</span> in <em class="parameter"><code>mask</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -195,9 +207,9 @@ each <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumer
<hr>
<div class="refsect2">
<a name="mm-modem-state-get-string"></a><h3>mm_modem_state_get_string ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_modem_state_get_string (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemState"><span class="type">MMModemState</span></a> val</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_modem_state_get_string (<em class="parameter"><code><span class="type">MMModemState</span> val</code></em>);</pre>
<p>
-Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemState"><span class="type">MMModemState</span></a> specified at <em class="parameter"><code>val</code></em>.
+Gets the nickname string for the <span class="type">MMModemState</span> specified at <em class="parameter"><code>val</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -221,9 +233,9 @@ Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/M
<div class="refsect2">
<a name="mm-modem-state-failed-reason-get-string"></a><h3>mm_modem_state_failed_reason_get_string ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_modem_state_failed_reason_get_string
- (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemStateFailedReason"><span class="type">MMModemStateFailedReason</span></a> val</code></em>);</pre>
+ (<em class="parameter"><code><span class="type">MMModemStateFailedReason</span> val</code></em>);</pre>
<p>
-Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemStateFailedReason"><span class="type">MMModemStateFailedReason</span></a> specified at <em class="parameter"><code>val</code></em>.
+Gets the nickname string for the <span class="type">MMModemStateFailedReason</span> specified at <em class="parameter"><code>val</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -247,9 +259,9 @@ Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/M
<div class="refsect2">
<a name="mm-modem-state-change-reason-get-string"></a><h3>mm_modem_state_change_reason_get_string ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_modem_state_change_reason_get_string
- (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemStateChangeReason"><span class="type">MMModemStateChangeReason</span></a> val</code></em>);</pre>
+ (<em class="parameter"><code><span class="type">MMModemStateChangeReason</span> val</code></em>);</pre>
<p>
-Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemStateChangeReason"><span class="type">MMModemStateChangeReason</span></a> specified at <em class="parameter"><code>val</code></em>.
+Gets the nickname string for the <span class="type">MMModemStateChangeReason</span> specified at <em class="parameter"><code>val</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -272,9 +284,9 @@ Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/M
<hr>
<div class="refsect2">
<a name="mm-modem-power-state-get-string"></a><h3>mm_modem_power_state_get_string ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_modem_power_state_get_string (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemPowerState"><span class="type">MMModemPowerState</span></a> val</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_modem_power_state_get_string (<em class="parameter"><code><span class="type">MMModemPowerState</span> val</code></em>);</pre>
<p>
-Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemPowerState"><span class="type">MMModemPowerState</span></a> specified at <em class="parameter"><code>val</code></em>.
+Gets the nickname string for the <span class="type">MMModemPowerState</span> specified at <em class="parameter"><code>val</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -297,9 +309,9 @@ Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/M
<hr>
<div class="refsect2">
<a name="mm-modem-lock-get-string"></a><h3>mm_modem_lock_get_string ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_modem_lock_get_string (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemLock"><span class="type">MMModemLock</span></a> val</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_modem_lock_get_string (<em class="parameter"><code><span class="type">MMModemLock</span> val</code></em>);</pre>
<p>
-Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemLock"><span class="type">MMModemLock</span></a> specified at <em class="parameter"><code>val</code></em>.
+Gets the nickname string for the <span class="type">MMModemLock</span> specified at <em class="parameter"><code>val</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -323,10 +335,10 @@ Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/M
<div class="refsect2">
<a name="mm-modem-access-technology-build-string-from-mask"></a><h3>mm_modem_access_technology_build_string_from_mask ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_modem_access_technology_build_string_from_mask
- (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemAccessTechnology"><span class="type">MMModemAccessTechnology</span></a> mask</code></em>);</pre>
+ (<em class="parameter"><code><span class="type">MMModemAccessTechnology</span> mask</code></em>);</pre>
<p>
Builds a string containing a comma-separated list of nicknames for
-each <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemAccessTechnology"><span class="type">MMModemAccessTechnology</span></a> in <em class="parameter"><code>mask</code></em>.
+each <span class="type">MMModemAccessTechnology</span> in <em class="parameter"><code>mask</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -350,10 +362,10 @@ each <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumer
<div class="refsect2">
<a name="mm-modem-mode-build-string-from-mask"></a><h3>mm_modem_mode_build_string_from_mask ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_modem_mode_build_string_from_mask
- (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemMode"><span class="type">MMModemMode</span></a> mask</code></em>);</pre>
+ (<em class="parameter"><code><span class="type">MMModemMode</span> mask</code></em>);</pre>
<p>
Builds a string containing a comma-separated list of nicknames for
-each <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemMode"><span class="type">MMModemMode</span></a> in <em class="parameter"><code>mask</code></em>.
+each <span class="type">MMModemMode</span> in <em class="parameter"><code>mask</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -376,9 +388,9 @@ each <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumer
<hr>
<div class="refsect2">
<a name="mm-modem-band-get-string"></a><h3>mm_modem_band_get_string ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_modem_band_get_string (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemBand"><span class="type">MMModemBand</span></a> val</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_modem_band_get_string (<em class="parameter"><code><span class="type">MMModemBand</span> val</code></em>);</pre>
<p>
-Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemBand"><span class="type">MMModemBand</span></a> specified at <em class="parameter"><code>val</code></em>.
+Gets the nickname string for the <span class="type">MMModemBand</span> specified at <em class="parameter"><code>val</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -401,9 +413,9 @@ Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/M
<hr>
<div class="refsect2">
<a name="mm-modem-port-type-get-string"></a><h3>mm_modem_port_type_get_string ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_modem_port_type_get_string (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemPortType"><span class="type">MMModemPortType</span></a> val</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_modem_port_type_get_string (<em class="parameter"><code><span class="type">MMModemPortType</span> val</code></em>);</pre>
<p>
-Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemPortType"><span class="type">MMModemPortType</span></a> specified at <em class="parameter"><code>val</code></em>.
+Gets the nickname string for the <span class="type">MMModemPortType</span> specified at <em class="parameter"><code>val</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -427,9 +439,9 @@ Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/M
<div class="refsect2">
<a name="mm-modem-3gpp-registration-state-get-string"></a><h3>mm_modem_3gpp_registration_state_get_string ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_modem_3gpp_registration_state_get_string
- (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModem3gppRegistrationState"><span class="type">MMModem3gppRegistrationState</span></a> val</code></em>);</pre>
+ (<em class="parameter"><code><span class="type">MMModem3gppRegistrationState</span> val</code></em>);</pre>
<p>
-Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModem3gppRegistrationState"><span class="type">MMModem3gppRegistrationState</span></a> specified at <em class="parameter"><code>val</code></em>.
+Gets the nickname string for the <span class="type">MMModem3gppRegistrationState</span> specified at <em class="parameter"><code>val</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -451,12 +463,38 @@ Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/M
</div>
<hr>
<div class="refsect2">
+<a name="mm-modem-3gpp-subscription-state-get-string"></a><h3>mm_modem_3gpp_subscription_state_get_string ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_modem_3gpp_subscription_state_get_string
+ (<em class="parameter"><code><span class="type">MMModem3gppSubscriptionState</span> val</code></em>);</pre>
+<p>
+Gets the nickname string for the <span class="type">MMModem3gppSubscriptionState</span> specified at <em class="parameter"><code>val</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
+<td>a MMModem3gppSubscriptionState.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a string with the nickname, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if not found. Do not free the returned value. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
<a name="mm-modem-3gpp-facility-build-string-from-mask"></a><h3>mm_modem_3gpp_facility_build_string_from_mask ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_modem_3gpp_facility_build_string_from_mask
- (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModem3gppFacility"><span class="type">MMModem3gppFacility</span></a> mask</code></em>);</pre>
+ (<em class="parameter"><code><span class="type">MMModem3gppFacility</span> mask</code></em>);</pre>
<p>
Builds a string containing a comma-separated list of nicknames for
-each <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModem3gppFacility"><span class="type">MMModem3gppFacility</span></a> in <em class="parameter"><code>mask</code></em>.
+each <span class="type">MMModem3gppFacility</span> in <em class="parameter"><code>mask</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -480,9 +518,9 @@ each <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumer
<div class="refsect2">
<a name="mm-modem-3gpp-network-availability-get-string"></a><h3>mm_modem_3gpp_network_availability_get_string ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_modem_3gpp_network_availability_get_string
- (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModem3gppNetworkAvailability"><span class="type">MMModem3gppNetworkAvailability</span></a> val</code></em>);</pre>
+ (<em class="parameter"><code><span class="type">MMModem3gppNetworkAvailability</span> val</code></em>);</pre>
<p>
-Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModem3gppNetworkAvailability"><span class="type">MMModem3gppNetworkAvailability</span></a> specified at <em class="parameter"><code>val</code></em>.
+Gets the nickname string for the <span class="type">MMModem3gppNetworkAvailability</span> specified at <em class="parameter"><code>val</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -506,9 +544,9 @@ Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/M
<div class="refsect2">
<a name="mm-modem-3gpp-ussd-session-state-get-string"></a><h3>mm_modem_3gpp_ussd_session_state_get_string ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_modem_3gpp_ussd_session_state_get_string
- (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModem3gppUssdSessionState"><span class="type">MMModem3gppUssdSessionState</span></a> val</code></em>);</pre>
+ (<em class="parameter"><code><span class="type">MMModem3gppUssdSessionState</span> val</code></em>);</pre>
<p>
-Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModem3gppUssdSessionState"><span class="type">MMModem3gppUssdSessionState</span></a> specified at <em class="parameter"><code>val</code></em>.
+Gets the nickname string for the <span class="type">MMModem3gppUssdSessionState</span> specified at <em class="parameter"><code>val</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -532,9 +570,9 @@ Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/M
<div class="refsect2">
<a name="mm-modem-cdma-registration-state-get-string"></a><h3>mm_modem_cdma_registration_state_get_string ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_modem_cdma_registration_state_get_string
- (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCdmaRegistrationState"><span class="type">MMModemCdmaRegistrationState</span></a> val</code></em>);</pre>
+ (<em class="parameter"><code><span class="type">MMModemCdmaRegistrationState</span> val</code></em>);</pre>
<p>
-Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCdmaRegistrationState"><span class="type">MMModemCdmaRegistrationState</span></a> specified at <em class="parameter"><code>val</code></em>.
+Gets the nickname string for the <span class="type">MMModemCdmaRegistrationState</span> specified at <em class="parameter"><code>val</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -558,9 +596,9 @@ Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/M
<div class="refsect2">
<a name="mm-modem-cdma-activation-state-get-string"></a><h3>mm_modem_cdma_activation_state_get_string ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_modem_cdma_activation_state_get_string
- (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCdmaActivationState"><span class="type">MMModemCdmaActivationState</span></a> val</code></em>);</pre>
+ (<em class="parameter"><code><span class="type">MMModemCdmaActivationState</span> val</code></em>);</pre>
<p>
-Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCdmaActivationState"><span class="type">MMModemCdmaActivationState</span></a> specified at <em class="parameter"><code>val</code></em>.
+Gets the nickname string for the <span class="type">MMModemCdmaActivationState</span> specified at <em class="parameter"><code>val</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -584,9 +622,9 @@ Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/M
<div class="refsect2">
<a name="mm-modem-cdma-rm-protocol-get-string"></a><h3>mm_modem_cdma_rm_protocol_get_string ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_modem_cdma_rm_protocol_get_string
- (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCdmaRmProtocol"><span class="type">MMModemCdmaRmProtocol</span></a> val</code></em>);</pre>
+ (<em class="parameter"><code><span class="type">MMModemCdmaRmProtocol</span> val</code></em>);</pre>
<p>
-Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemCdmaRmProtocol"><span class="type">MMModemCdmaRmProtocol</span></a> specified at <em class="parameter"><code>val</code></em>.
+Gets the nickname string for the <span class="type">MMModemCdmaRmProtocol</span> specified at <em class="parameter"><code>val</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -610,10 +648,10 @@ Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/M
<div class="refsect2">
<a name="mm-modem-location-source-build-string-from-mask"></a><h3>mm_modem_location_source_build_string_from_mask ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_modem_location_source_build_string_from_mask
- (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemLocationSource"><span class="type">MMModemLocationSource</span></a> mask</code></em>);</pre>
+ (<em class="parameter"><code><span class="type">MMModemLocationSource</span> mask</code></em>);</pre>
<p>
Builds a string containing a comma-separated list of nicknames for
-each <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemLocationSource"><span class="type">MMModemLocationSource</span></a> in <em class="parameter"><code>mask</code></em>.
+each <span class="type">MMModemLocationSource</span> in <em class="parameter"><code>mask</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -637,9 +675,9 @@ each <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumer
<div class="refsect2">
<a name="mm-modem-contacts-storage-get-string"></a><h3>mm_modem_contacts_storage_get_string ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_modem_contacts_storage_get_string
- (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemContactsStorage"><span class="type">MMModemContactsStorage</span></a> val</code></em>);</pre>
+ (<em class="parameter"><code><span class="type">MMModemContactsStorage</span> val</code></em>);</pre>
<p>
-Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMModemContactsStorage"><span class="type">MMModemContactsStorage</span></a> specified at <em class="parameter"><code>val</code></em>.
+Gets the nickname string for the <span class="type">MMModemContactsStorage</span> specified at <em class="parameter"><code>val</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -662,9 +700,9 @@ Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/M
<hr>
<div class="refsect2">
<a name="mm-sms-pdu-type-get-string"></a><h3>mm_sms_pdu_type_get_string ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_sms_pdu_type_get_string (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsPduType"><span class="type">MMSmsPduType</span></a> val</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_sms_pdu_type_get_string (<em class="parameter"><code><span class="type">MMSmsPduType</span> val</code></em>);</pre>
<p>
-Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsPduType"><span class="type">MMSmsPduType</span></a> specified at <em class="parameter"><code>val</code></em>.
+Gets the nickname string for the <span class="type">MMSmsPduType</span> specified at <em class="parameter"><code>val</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -687,9 +725,9 @@ Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/M
<hr>
<div class="refsect2">
<a name="mm-sms-state-get-string"></a><h3>mm_sms_state_get_string ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_sms_state_get_string (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsState"><span class="type">MMSmsState</span></a> val</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_sms_state_get_string (<em class="parameter"><code><span class="type">MMSmsState</span> val</code></em>);</pre>
<p>
-Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsState"><span class="type">MMSmsState</span></a> specified at <em class="parameter"><code>val</code></em>.
+Gets the nickname string for the <span class="type">MMSmsState</span> specified at <em class="parameter"><code>val</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -712,9 +750,9 @@ Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/M
<hr>
<div class="refsect2">
<a name="mm-sms-delivery-state-get-string"></a><h3>mm_sms_delivery_state_get_string ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_sms_delivery_state_get_string (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsDeliveryState"><span class="type">MMSmsDeliveryState</span></a> val</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_sms_delivery_state_get_string (<em class="parameter"><code><span class="type">MMSmsDeliveryState</span> val</code></em>);</pre>
<p>
-Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsDeliveryState"><span class="type">MMSmsDeliveryState</span></a> specified at <em class="parameter"><code>val</code></em>.
+Gets the nickname string for the <span class="type">MMSmsDeliveryState</span> specified at <em class="parameter"><code>val</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -737,9 +775,9 @@ Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/M
<hr>
<div class="refsect2">
<a name="mm-sms-storage-get-string"></a><h3>mm_sms_storage_get_string ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_sms_storage_get_string (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsStorage"><span class="type">MMSmsStorage</span></a> val</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_sms_storage_get_string (<em class="parameter"><code><span class="type">MMSmsStorage</span> val</code></em>);</pre>
<p>
-Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsStorage"><span class="type">MMSmsStorage</span></a> specified at <em class="parameter"><code>val</code></em>.
+Gets the nickname string for the <span class="type">MMSmsStorage</span> specified at <em class="parameter"><code>val</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -762,9 +800,9 @@ Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/M
<hr>
<div class="refsect2">
<a name="mm-sms-validity-type-get-string"></a><h3>mm_sms_validity_type_get_string ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_sms_validity_type_get_string (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsValidityType"><span class="type">MMSmsValidityType</span></a> val</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_sms_validity_type_get_string (<em class="parameter"><code><span class="type">MMSmsValidityType</span> val</code></em>);</pre>
<p>
-Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMSmsValidityType"><span class="type">MMSmsValidityType</span></a> specified at <em class="parameter"><code>val</code></em>.
+Gets the nickname string for the <span class="type">MMSmsValidityType</span> specified at <em class="parameter"><code>val</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -786,10 +824,62 @@ Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/M
</div>
<hr>
<div class="refsect2">
+<a name="mm-sms-cdma-teleservice-id-get-string"></a><h3>mm_sms_cdma_teleservice_id_get_string ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_sms_cdma_teleservice_id_get_string
+ (<em class="parameter"><code><span class="type">MMSmsCdmaTeleserviceId</span> val</code></em>);</pre>
+<p>
+Gets the nickname string for the <span class="type">MMSmsCdmaTeleserviceId</span> specified at <em class="parameter"><code>val</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
+<td>a MMSmsCdmaTeleserviceId.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a string with the nickname, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if not found. Do not free the returned value. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-sms-cdma-service-category-get-string"></a><h3>mm_sms_cdma_service_category_get_string ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_sms_cdma_service_category_get_string
+ (<em class="parameter"><code><span class="type">MMSmsCdmaServiceCategory</span> val</code></em>);</pre>
+<p>
+Gets the nickname string for the <span class="type">MMSmsCdmaServiceCategory</span> specified at <em class="parameter"><code>val</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
+<td>a MMSmsCdmaServiceCategory.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a string with the nickname, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if not found. Do not free the returned value. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
<a name="mm-firmware-image-type-get-string"></a><h3>mm_firmware_image_type_get_string ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_firmware_image_type_get_string (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMFirmwareImageType"><span class="type">MMFirmwareImageType</span></a> val</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_firmware_image_type_get_string (<em class="parameter"><code><span class="type">MMFirmwareImageType</span> val</code></em>);</pre>
<p>
-Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/ModemManager-Flags-and-Enumerations.html#MMFirmwareImageType"><span class="type">MMFirmwareImageType</span></a> specified at <em class="parameter"><code>val</code></em>.
+Gets the nickname string for the <span class="type">MMFirmwareImageType</span> specified at <em class="parameter"><code>val</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
@@ -809,10 +899,113 @@ Gets the nickname string for the <a href="/usr/share/gtk-doc/html/ModemManager/M
</tbody>
</table></div>
</div>
+<hr>
+<div class="refsect2">
+<a name="mm-oma-feature-build-string-from-mask"></a><h3>mm_oma_feature_build_string_from_mask ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_oma_feature_build_string_from_mask
+ (<em class="parameter"><code><span class="type">MMOmaFeature</span> mask</code></em>);</pre>
+<p>
+Builds a string containing a comma-separated list of nicknames for
+each <span class="type">MMOmaFeature</span> in <em class="parameter"><code>mask</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mask</code></em> :</span></p></td>
+<td>bitmask of MMOmaFeature values.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a string with the list of nicknames, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none given. The returned value should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-oma-session-type-get-string"></a><h3>mm_oma_session_type_get_string ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_oma_session_type_get_string (<em class="parameter"><code><span class="type">MMOmaSessionType</span> val</code></em>);</pre>
+<p>
+Gets the nickname string for the <span class="type">MMOmaSessionType</span> specified at <em class="parameter"><code>val</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
+<td>a MMOmaSessionType.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a string with the nickname, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if not found. Do not free the returned value. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-oma-session-state-get-string"></a><h3>mm_oma_session_state_get_string ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_oma_session_state_get_string (<em class="parameter"><code><span class="type">MMOmaSessionState</span> val</code></em>);</pre>
+<p>
+Gets the nickname string for the <span class="type">MMOmaSessionState</span> specified at <em class="parameter"><code>val</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
+<td>a MMOmaSessionState.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a string with the nickname, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if not found. Do not free the returned value. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mm-oma-session-state-failed-reason-get-string"></a><h3>mm_oma_session_state_failed_reason_get_string ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * mm_oma_session_state_failed_reason_get_string
+ (<em class="parameter"><code><span class="type">MMOmaSessionStateFailedReason</span> val</code></em>);</pre>
+<p>
+Gets the nickname string for the <span class="type">MMOmaSessionStateFailedReason</span> specified at <em class="parameter"><code>val</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
+<td>a MMOmaSessionStateFailedReason.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a string with the nickname, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if not found. Do not free the returned value. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/libmm-glib.devhelp2 b/docs/reference/libmm-glib/html/libmm-glib.devhelp2
index 93c9d52..b8dc014 100644
--- a/docs/reference/libmm-glib/html/libmm-glib.devhelp2
+++ b/docs/reference/libmm-glib/html/libmm-glib.devhelp2
@@ -11,11 +11,12 @@
</sub>
<sub name="The Modem object" link="ch03.html">
<sub name="MMObject" link="MMObject.html"/>
- <sub name="Generic interfaces" link="ch03.html#idm211869297872">
+ <sub name="Generic interfaces" link="ch03.html#id-1.2.4.3">
<sub name="MMModem" link="MMModem.html"/>
<sub name="MMModem3gpp" link="MMModem3gpp.html"/>
<sub name="MMModem3gppUssd" link="MMModem3gppUssd.html"/>
<sub name="MMModemCdma" link="MMModemCdma.html"/>
+ <sub name="MMCdmaManualActivationProperties" link="MMCdmaManualActivationProperties.html"/>
<sub name="MMUnlockRetries" link="MMUnlockRetries.html"/>
</sub>
<sub name="Simple interface support" link="ch03s02.html">
@@ -41,6 +42,13 @@
<sub name="MMModemFirmware" link="MMModemFirmware.html"/>
<sub name="MMFirmwareProperties" link="MMFirmwareProperties.html"/>
</sub>
+ <sub name="Extended signal information" link="ch03s07.html">
+ <sub name="MMModemSignal" link="MMModemSignal.html"/>
+ <sub name="MMSignal" link="MMSignal.html"/>
+ </sub>
+ <sub name="OMA support" link="ch03s08.html">
+ <sub name="MMModemOma" link="MMModemOma.html"/>
+ </sub>
</sub>
<sub name="The Bearer object" link="ch04.html">
<sub name="MMBearer" link="MMBearer.html"/>
@@ -87,6 +95,12 @@
<sub name="MmGdbusModemFirmware" link="MmGdbusModemFirmware.html"/>
<sub name="MmGdbusModemFirmwareProxy" link="MmGdbusModemFirmwareProxy.html"/>
<sub name="MmGdbusModemFirmwareSkeleton" link="MmGdbusModemFirmwareSkeleton.html"/>
+ <sub name="MmGdbusModemSignal" link="MmGdbusModemSignal.html"/>
+ <sub name="MmGdbusModemSignalProxy" link="MmGdbusModemSignalProxy.html"/>
+ <sub name="MmGdbusModemSignalSkeleton" link="MmGdbusModemSignalSkeleton.html"/>
+ <sub name="MmGdbusModemOma" link="MmGdbusModemOma.html"/>
+ <sub name="MmGdbusModemOmaProxy" link="MmGdbusModemOmaProxy.html"/>
+ <sub name="MmGdbusModemOmaSkeleton" link="MmGdbusModemOmaSkeleton.html"/>
<sub name="MmGdbusModemSimple" link="MmGdbusModemSimple.html"/>
<sub name="MmGdbusModemSimpleProxy" link="MmGdbusModemSimpleProxy.html"/>
<sub name="MmGdbusModemSimpleSkeleton" link="MmGdbusModemSimpleSkeleton.html"/>
@@ -120,6 +134,7 @@
<keyword type="function" name="mm_modem_band_get_string ()" link="libmm-glib-Flags-and-Enumerations.html#mm-modem-band-get-string"/>
<keyword type="function" name="mm_modem_port_type_get_string ()" link="libmm-glib-Flags-and-Enumerations.html#mm-modem-port-type-get-string"/>
<keyword type="function" name="mm_modem_3gpp_registration_state_get_string ()" link="libmm-glib-Flags-and-Enumerations.html#mm-modem-3gpp-registration-state-get-string"/>
+ <keyword type="function" name="mm_modem_3gpp_subscription_state_get_string ()" link="libmm-glib-Flags-and-Enumerations.html#mm-modem-3gpp-subscription-state-get-string"/>
<keyword type="function" name="mm_modem_3gpp_facility_build_string_from_mask ()" link="libmm-glib-Flags-and-Enumerations.html#mm-modem-3gpp-facility-build-string-from-mask"/>
<keyword type="function" name="mm_modem_3gpp_network_availability_get_string ()" link="libmm-glib-Flags-and-Enumerations.html#mm-modem-3gpp-network-availability-get-string"/>
<keyword type="function" name="mm_modem_3gpp_ussd_session_state_get_string ()" link="libmm-glib-Flags-and-Enumerations.html#mm-modem-3gpp-ussd-session-state-get-string"/>
@@ -133,7 +148,13 @@
<keyword type="function" name="mm_sms_delivery_state_get_string ()" link="libmm-glib-Flags-and-Enumerations.html#mm-sms-delivery-state-get-string"/>
<keyword type="function" name="mm_sms_storage_get_string ()" link="libmm-glib-Flags-and-Enumerations.html#mm-sms-storage-get-string"/>
<keyword type="function" name="mm_sms_validity_type_get_string ()" link="libmm-glib-Flags-and-Enumerations.html#mm-sms-validity-type-get-string"/>
+ <keyword type="function" name="mm_sms_cdma_teleservice_id_get_string ()" link="libmm-glib-Flags-and-Enumerations.html#mm-sms-cdma-teleservice-id-get-string"/>
+ <keyword type="function" name="mm_sms_cdma_service_category_get_string ()" link="libmm-glib-Flags-and-Enumerations.html#mm-sms-cdma-service-category-get-string"/>
<keyword type="function" name="mm_firmware_image_type_get_string ()" link="libmm-glib-Flags-and-Enumerations.html#mm-firmware-image-type-get-string"/>
+ <keyword type="function" name="mm_oma_feature_build_string_from_mask ()" link="libmm-glib-Flags-and-Enumerations.html#mm-oma-feature-build-string-from-mask"/>
+ <keyword type="function" name="mm_oma_session_type_get_string ()" link="libmm-glib-Flags-and-Enumerations.html#mm-oma-session-type-get-string"/>
+ <keyword type="function" name="mm_oma_session_state_get_string ()" link="libmm-glib-Flags-and-Enumerations.html#mm-oma-session-state-get-string"/>
+ <keyword type="function" name="mm_oma_session_state_failed_reason_get_string ()" link="libmm-glib-Flags-and-Enumerations.html#mm-oma-session-state-failed-reason-get-string"/>
<keyword type="struct" name="struct MMManager" link="MMManager.html#MMManager-struct"/>
<keyword type="function" name="mm_manager_peek_proxy ()" link="MMManager.html#mm-manager-peek-proxy"/>
<keyword type="function" name="mm_manager_get_proxy ()" link="MMManager.html#mm-manager-get-proxy"/>
@@ -165,11 +186,15 @@
<keyword type="function" name="mm_object_get_modem_time ()" link="MMObject.html#mm-object-get-modem-time"/>
<keyword type="function" name="mm_object_peek_modem_firmware ()" link="MMObject.html#mm-object-peek-modem-firmware"/>
<keyword type="function" name="mm_object_get_modem_firmware ()" link="MMObject.html#mm-object-get-modem-firmware"/>
+ <keyword type="function" name="mm_object_peek_modem_oma ()" link="MMObject.html#mm-object-peek-modem-oma"/>
+ <keyword type="function" name="mm_object_get_modem_oma ()" link="MMObject.html#mm-object-get-modem-oma"/>
<keyword type="function" name="mm_object_peek_modem_simple ()" link="MMObject.html#mm-object-peek-modem-simple"/>
<keyword type="function" name="mm_object_get_modem_simple ()" link="MMObject.html#mm-object-get-modem-simple"/>
+ <keyword type="function" name="mm_object_peek_modem_signal ()" link="MMObject.html#mm-object-peek-modem-signal"/>
+ <keyword type="function" name="mm_object_get_modem_signal ()" link="MMObject.html#mm-object-get-modem-signal"/>
<keyword type="struct" name="struct MMModem" link="MMModem.html#MMModem-struct"/>
- <keyword type="struct" name="MMModemModeCombination" link="MMModem.html#MMModemModeCombination"/>
- <keyword type="struct" name="MMModemPortInfo" link="MMModem.html#MMModemPortInfo"/>
+ <keyword type="struct" name="struct MMModemModeCombination" link="MMModem.html#MMModemModeCombination"/>
+ <keyword type="struct" name="struct MMModemPortInfo" link="MMModem.html#MMModemPortInfo"/>
<keyword type="function" name="mm_modem_get_path ()" link="MMModem.html#mm-modem-get-path"/>
<keyword type="function" name="mm_modem_dup_path ()" link="MMModem.html#mm-modem-dup-path"/>
<keyword type="function" name="mm_modem_get_state ()" link="MMModem.html#mm-modem-get-state"/>
@@ -203,6 +228,8 @@
<keyword type="function" name="mm_modem_get_unlock_retries ()" link="MMModem.html#mm-modem-get-unlock-retries"/>
<keyword type="function" name="mm_modem_get_max_bearers ()" link="MMModem.html#mm-modem-get-max-bearers"/>
<keyword type="function" name="mm_modem_get_max_active_bearers ()" link="MMModem.html#mm-modem-get-max-active-bearers"/>
+ <keyword type="function" name="mm_modem_get_bearer_paths ()" link="MMModem.html#mm-modem-get-bearer-paths"/>
+ <keyword type="function" name="mm_modem_dup_bearer_paths ()" link="MMModem.html#mm-modem-dup-bearer-paths"/>
<keyword type="function" name="mm_modem_get_own_numbers ()" link="MMModem.html#mm-modem-get-own-numbers"/>
<keyword type="function" name="mm_modem_dup_own_numbers ()" link="MMModem.html#mm-modem-dup-own-numbers"/>
<keyword type="function" name="mm_modem_peek_supported_modes ()" link="MMModem.html#mm-modem-peek-supported-modes"/>
@@ -275,6 +302,7 @@
<keyword type="function" name="mm_modem_3gpp_dup_operator_name ()" link="MMModem3gpp.html#mm-modem-3gpp-dup-operator-name"/>
<keyword type="function" name="mm_modem_3gpp_get_enabled_facility_locks ()" link="MMModem3gpp.html#mm-modem-3gpp-get-enabled-facility-locks"/>
<keyword type="function" name="mm_modem_3gpp_get_registration_state ()" link="MMModem3gpp.html#mm-modem-3gpp-get-registration-state"/>
+ <keyword type="function" name="mm_modem_3gpp_get_subscription_state ()" link="MMModem3gpp.html#mm-modem-3gpp-get-subscription-state"/>
<keyword type="function" name="mm_modem_3gpp_register ()" link="MMModem3gpp.html#mm-modem-3gpp-register"/>
<keyword type="function" name="mm_modem_3gpp_register_finish ()" link="MMModem3gpp.html#mm-modem-3gpp-register-finish"/>
<keyword type="function" name="mm_modem_3gpp_register_sync ()" link="MMModem3gpp.html#mm-modem-3gpp-register-sync"/>
@@ -315,6 +343,28 @@
<keyword type="function" name="mm_modem_cdma_activate ()" link="MMModemCdma.html#mm-modem-cdma-activate"/>
<keyword type="function" name="mm_modem_cdma_activate_finish ()" link="MMModemCdma.html#mm-modem-cdma-activate-finish"/>
<keyword type="function" name="mm_modem_cdma_activate_sync ()" link="MMModemCdma.html#mm-modem-cdma-activate-sync"/>
+ <keyword type="function" name="mm_modem_cdma_activate_manual ()" link="MMModemCdma.html#mm-modem-cdma-activate-manual"/>
+ <keyword type="function" name="mm_modem_cdma_activate_manual_finish ()" link="MMModemCdma.html#mm-modem-cdma-activate-manual-finish"/>
+ <keyword type="function" name="mm_modem_cdma_activate_manual_sync ()" link="MMModemCdma.html#mm-modem-cdma-activate-manual-sync"/>
+ <keyword type="struct" name="struct MMCdmaManualActivationProperties" link="MMCdmaManualActivationProperties.html#MMCdmaManualActivationProperties-struct"/>
+ <keyword type="function" name="mm_cdma_manual_activation_properties_new ()" link="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-new"/>
+ <keyword type="function" name="mm_cdma_manual_activation_properties_get_spc ()" link="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-get-spc"/>
+ <keyword type="function" name="mm_cdma_manual_activation_properties_set_spc ()" link="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-set-spc"/>
+ <keyword type="function" name="mm_cdma_manual_activation_properties_get_sid ()" link="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-get-sid"/>
+ <keyword type="function" name="mm_cdma_manual_activation_properties_set_sid ()" link="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-set-sid"/>
+ <keyword type="function" name="mm_cdma_manual_activation_properties_get_mdn ()" link="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-get-mdn"/>
+ <keyword type="function" name="mm_cdma_manual_activation_properties_set_mdn ()" link="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-set-mdn"/>
+ <keyword type="function" name="mm_cdma_manual_activation_properties_get_min ()" link="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-get-min"/>
+ <keyword type="function" name="mm_cdma_manual_activation_properties_set_min ()" link="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-set-min"/>
+ <keyword type="function" name="mm_cdma_manual_activation_properties_get_mn_ha_key ()" link="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-get-mn-ha-key"/>
+ <keyword type="function" name="mm_cdma_manual_activation_properties_set_mn_ha_key ()" link="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-set-mn-ha-key"/>
+ <keyword type="function" name="mm_cdma_manual_activation_properties_get_mn_aaa_key ()" link="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-get-mn-aaa-key"/>
+ <keyword type="function" name="mm_cdma_manual_activation_properties_set_mn_aaa_key ()" link="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-set-mn-aaa-key"/>
+ <keyword type="function" name="mm_cdma_manual_activation_properties_get_prl ()" link="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-get-prl"/>
+ <keyword type="function" name="mm_cdma_manual_activation_properties_peek_prl_bytearray ()" link="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-peek-prl-bytearray"/>
+ <keyword type="function" name="mm_cdma_manual_activation_properties_get_prl_bytearray ()" link="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-get-prl-bytearray"/>
+ <keyword type="function" name="mm_cdma_manual_activation_properties_set_prl ()" link="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-set-prl"/>
+ <keyword type="function" name="mm_cdma_manual_activation_properties_set_prl_bytearray ()" link="MMCdmaManualActivationProperties.html#mm-cdma-manual-activation-properties-set-prl-bytearray"/>
<keyword type="struct" name="struct MMUnlockRetries" link="MMUnlockRetries.html#MMUnlockRetries-struct"/>
<keyword type="macro" name="MM_UNLOCK_RETRIES_UNKNOWN" link="MMUnlockRetries.html#MM-UNLOCK-RETRIES-UNKNOWN:CAPS"/>
<keyword type="function" name="mm_unlock_retries_get ()" link="MMUnlockRetries.html#mm-unlock-retries-get"/>
@@ -360,6 +410,7 @@
<keyword type="function" name="mm_simple_status_get_3gpp_registration_state ()" link="MMSimpleStatus.html#mm-simple-status-get-3gpp-registration-state"/>
<keyword type="function" name="mm_simple_status_get_3gpp_operator_code ()" link="MMSimpleStatus.html#mm-simple-status-get-3gpp-operator-code"/>
<keyword type="function" name="mm_simple_status_get_3gpp_operator_name ()" link="MMSimpleStatus.html#mm-simple-status-get-3gpp-operator-name"/>
+ <keyword type="function" name="mm_simple_status_get_3gpp_subscription_state ()" link="MMSimpleStatus.html#mm-simple-status-get-3gpp-subscription-state"/>
<keyword type="function" name="mm_simple_status_get_cdma_cdma1x_registration_state ()" link="MMSimpleStatus.html#mm-simple-status-get-cdma-cdma1x-registration-state"/>
<keyword type="function" name="mm_simple_status_get_cdma_evdo_registration_state ()" link="MMSimpleStatus.html#mm-simple-status-get-cdma-evdo-registration-state"/>
<keyword type="function" name="mm_simple_status_get_cdma_nid ()" link="MMSimpleStatus.html#mm-simple-status-get-cdma-nid"/>
@@ -373,6 +424,7 @@
<keyword type="property" name="The &quot;m3gpp-operator-code&quot; property" link="MMSimpleStatus.html#MMSimpleStatus--m3gpp-operator-code"/>
<keyword type="property" name="The &quot;m3gpp-operator-name&quot; property" link="MMSimpleStatus.html#MMSimpleStatus--m3gpp-operator-name"/>
<keyword type="property" name="The &quot;m3gpp-registration-state&quot; property" link="MMSimpleStatus.html#MMSimpleStatus--m3gpp-registration-state"/>
+ <keyword type="property" name="The &quot;m3gpp-subscription-state&quot; property" link="MMSimpleStatus.html#MMSimpleStatus--m3gpp-subscription-state"/>
<keyword type="property" name="The &quot;signal-quality&quot; property" link="MMSimpleStatus.html#MMSimpleStatus--signal-quality"/>
<keyword type="property" name="The &quot;state&quot; property" link="MMSimpleStatus.html#MMSimpleStatus--state"/>
<keyword type="struct" name="struct MMModemLocation" link="MMModemLocation.html#MMModemLocation-struct"/>
@@ -464,6 +516,53 @@
<keyword type="function" name="mm_firmware_properties_get_gobi_boot_version ()" link="MMFirmwareProperties.html#mm-firmware-properties-get-gobi-boot-version"/>
<keyword type="function" name="mm_firmware_properties_get_gobi_pri_unique_id ()" link="MMFirmwareProperties.html#mm-firmware-properties-get-gobi-pri-unique-id"/>
<keyword type="function" name="mm_firmware_properties_get_gobi_modem_unique_id ()" link="MMFirmwareProperties.html#mm-firmware-properties-get-gobi-modem-unique-id"/>
+ <keyword type="struct" name="struct MMModemSignal" link="MMModemSignal.html#MMModemSignal-struct"/>
+ <keyword type="function" name="mm_modem_signal_get_path ()" link="MMModemSignal.html#mm-modem-signal-get-path"/>
+ <keyword type="function" name="mm_modem_signal_dup_path ()" link="MMModemSignal.html#mm-modem-signal-dup-path"/>
+ <keyword type="function" name="mm_modem_signal_get_rate ()" link="MMModemSignal.html#mm-modem-signal-get-rate"/>
+ <keyword type="function" name="mm_modem_signal_peek_cdma ()" link="MMModemSignal.html#mm-modem-signal-peek-cdma"/>
+ <keyword type="function" name="mm_modem_signal_get_cdma ()" link="MMModemSignal.html#mm-modem-signal-get-cdma"/>
+ <keyword type="function" name="mm_modem_signal_peek_evdo ()" link="MMModemSignal.html#mm-modem-signal-peek-evdo"/>
+ <keyword type="function" name="mm_modem_signal_get_evdo ()" link="MMModemSignal.html#mm-modem-signal-get-evdo"/>
+ <keyword type="function" name="mm_modem_signal_peek_gsm ()" link="MMModemSignal.html#mm-modem-signal-peek-gsm"/>
+ <keyword type="function" name="mm_modem_signal_get_gsm ()" link="MMModemSignal.html#mm-modem-signal-get-gsm"/>
+ <keyword type="function" name="mm_modem_signal_peek_umts ()" link="MMModemSignal.html#mm-modem-signal-peek-umts"/>
+ <keyword type="function" name="mm_modem_signal_get_umts ()" link="MMModemSignal.html#mm-modem-signal-get-umts"/>
+ <keyword type="function" name="mm_modem_signal_peek_lte ()" link="MMModemSignal.html#mm-modem-signal-peek-lte"/>
+ <keyword type="function" name="mm_modem_signal_get_lte ()" link="MMModemSignal.html#mm-modem-signal-get-lte"/>
+ <keyword type="function" name="mm_modem_signal_setup ()" link="MMModemSignal.html#mm-modem-signal-setup"/>
+ <keyword type="function" name="mm_modem_signal_setup_finish ()" link="MMModemSignal.html#mm-modem-signal-setup-finish"/>
+ <keyword type="function" name="mm_modem_signal_setup_sync ()" link="MMModemSignal.html#mm-modem-signal-setup-sync"/>
+ <keyword type="struct" name="struct MMSignal" link="MMSignal.html#MMSignal-struct"/>
+ <keyword type="macro" name="MM_SIGNAL_UNKNOWN" link="MMSignal.html#MM-SIGNAL-UNKNOWN:CAPS"/>
+ <keyword type="function" name="mm_signal_get_rssi ()" link="MMSignal.html#mm-signal-get-rssi"/>
+ <keyword type="function" name="mm_signal_get_ecio ()" link="MMSignal.html#mm-signal-get-ecio"/>
+ <keyword type="function" name="mm_signal_get_sinr ()" link="MMSignal.html#mm-signal-get-sinr"/>
+ <keyword type="function" name="mm_signal_get_io ()" link="MMSignal.html#mm-signal-get-io"/>
+ <keyword type="function" name="mm_signal_get_rsrp ()" link="MMSignal.html#mm-signal-get-rsrp"/>
+ <keyword type="function" name="mm_signal_get_rsrq ()" link="MMSignal.html#mm-signal-get-rsrq"/>
+ <keyword type="function" name="mm_signal_get_snr ()" link="MMSignal.html#mm-signal-get-snr"/>
+ <keyword type="struct" name="struct MMModemOma" link="MMModemOma.html#MMModemOma-struct"/>
+ <keyword type="struct" name="struct MMOmaPendingNetworkInitiatedSession" link="MMModemOma.html#MMOmaPendingNetworkInitiatedSession"/>
+ <keyword type="function" name="mm_modem_oma_get_path ()" link="MMModemOma.html#mm-modem-oma-get-path"/>
+ <keyword type="function" name="mm_modem_oma_dup_path ()" link="MMModemOma.html#mm-modem-oma-dup-path"/>
+ <keyword type="function" name="mm_modem_oma_setup ()" link="MMModemOma.html#mm-modem-oma-setup"/>
+ <keyword type="function" name="mm_modem_oma_setup_finish ()" link="MMModemOma.html#mm-modem-oma-setup-finish"/>
+ <keyword type="function" name="mm_modem_oma_setup_sync ()" link="MMModemOma.html#mm-modem-oma-setup-sync"/>
+ <keyword type="function" name="mm_modem_oma_start_client_initiated_session ()" link="MMModemOma.html#mm-modem-oma-start-client-initiated-session"/>
+ <keyword type="function" name="mm_modem_oma_start_client_initiated_session_finish ()" link="MMModemOma.html#mm-modem-oma-start-client-initiated-session-finish"/>
+ <keyword type="function" name="mm_modem_oma_start_client_initiated_session_sync ()" link="MMModemOma.html#mm-modem-oma-start-client-initiated-session-sync"/>
+ <keyword type="function" name="mm_modem_oma_accept_network_initiated_session ()" link="MMModemOma.html#mm-modem-oma-accept-network-initiated-session"/>
+ <keyword type="function" name="mm_modem_oma_accept_network_initiated_session_finish ()" link="MMModemOma.html#mm-modem-oma-accept-network-initiated-session-finish"/>
+ <keyword type="function" name="mm_modem_oma_accept_network_initiated_session_sync ()" link="MMModemOma.html#mm-modem-oma-accept-network-initiated-session-sync"/>
+ <keyword type="function" name="mm_modem_oma_cancel_session ()" link="MMModemOma.html#mm-modem-oma-cancel-session"/>
+ <keyword type="function" name="mm_modem_oma_cancel_session_finish ()" link="MMModemOma.html#mm-modem-oma-cancel-session-finish"/>
+ <keyword type="function" name="mm_modem_oma_cancel_session_sync ()" link="MMModemOma.html#mm-modem-oma-cancel-session-sync"/>
+ <keyword type="function" name="mm_modem_oma_get_features ()" link="MMModemOma.html#mm-modem-oma-get-features"/>
+ <keyword type="function" name="mm_modem_oma_get_session_type ()" link="MMModemOma.html#mm-modem-oma-get-session-type"/>
+ <keyword type="function" name="mm_modem_oma_get_session_state ()" link="MMModemOma.html#mm-modem-oma-get-session-state"/>
+ <keyword type="function" name="mm_modem_peek_pending_network_initiated_sessions ()" link="MMModemOma.html#mm-modem-peek-pending-network-initiated-sessions"/>
+ <keyword type="function" name="mm_modem_get_pending_network_initiated_sessions ()" link="MMModemOma.html#mm-modem-get-pending-network-initiated-sessions"/>
<keyword type="struct" name="struct MMBearer" link="MMBearer.html#MMBearer-struct"/>
<keyword type="function" name="mm_bearer_get_path ()" link="MMBearer.html#mm-bearer-get-path"/>
<keyword type="function" name="mm_bearer_dup_path ()" link="MMBearer.html#mm-bearer-dup-path"/>
@@ -550,6 +649,8 @@
<keyword type="function" name="mm_sms_dup_smsc ()" link="MMSms.html#mm-sms-dup-smsc"/>
<keyword type="function" name="mm_sms_get_message_reference ()" link="MMSms.html#mm-sms-get-message-reference"/>
<keyword type="function" name="mm_sms_get_class ()" link="MMSms.html#mm-sms-get-class"/>
+ <keyword type="function" name="mm_sms_get_teleservice_id ()" link="MMSms.html#mm-sms-get-teleservice-id"/>
+ <keyword type="function" name="mm_sms_get_service_category ()" link="MMSms.html#mm-sms-get-service-category"/>
<keyword type="function" name="mm_sms_get_validity_type ()" link="MMSms.html#mm-sms-get-validity-type"/>
<keyword type="function" name="mm_sms_get_validity_relative ()" link="MMSms.html#mm-sms-get-validity-relative"/>
<keyword type="function" name="mm_sms_get_timestamp ()" link="MMSms.html#mm-sms-get-timestamp"/>
@@ -584,6 +685,10 @@
<keyword type="function" name="mm_sms_properties_set_class ()" link="MMSmsProperties.html#mm-sms-properties-set-class"/>
<keyword type="function" name="mm_sms_properties_get_delivery_report_request ()" link="MMSmsProperties.html#mm-sms-properties-get-delivery-report-request"/>
<keyword type="function" name="mm_sms_properties_set_delivery_report_request ()" link="MMSmsProperties.html#mm-sms-properties-set-delivery-report-request"/>
+ <keyword type="function" name="mm_sms_properties_get_teleservice_id ()" link="MMSmsProperties.html#mm-sms-properties-get-teleservice-id"/>
+ <keyword type="function" name="mm_sms_properties_set_teleservice_id ()" link="MMSmsProperties.html#mm-sms-properties-set-teleservice-id"/>
+ <keyword type="function" name="mm_sms_properties_get_service_category ()" link="MMSmsProperties.html#mm-sms-properties-get-service-category"/>
+ <keyword type="function" name="mm_sms_properties_set_service_category ()" link="MMSmsProperties.html#mm-sms-properties-set-service-category"/>
<keyword type="struct" name="MmGdbusOrgFreedesktopModemManager1" link="MmGdbusOrgFreedesktopModemManager1.html#MmGdbusOrgFreedesktopModemManager1-struct"/>
<keyword type="struct" name="struct MmGdbusOrgFreedesktopModemManager1Iface" link="MmGdbusOrgFreedesktopModemManager1.html#MmGdbusOrgFreedesktopModemManager1Iface"/>
<keyword type="function" name="mm_gdbus_org_freedesktop_modem_manager1_call_scan_devices ()" link="MmGdbusOrgFreedesktopModemManager1.html#mm-gdbus-org-freedesktop-modem-manager1-call-scan-devices"/>
@@ -629,13 +734,19 @@
<keyword type="function" name="mm_gdbus_object_get_modem_time ()" link="MmGdbusObject.html#mm-gdbus-object-get-modem-time"/>
<keyword type="function" name="mm_gdbus_object_peek_modem_firmware ()" link="MmGdbusObject.html#mm-gdbus-object-peek-modem-firmware"/>
<keyword type="function" name="mm_gdbus_object_get_modem_firmware ()" link="MmGdbusObject.html#mm-gdbus-object-get-modem-firmware"/>
+ <keyword type="function" name="mm_gdbus_object_peek_modem_oma ()" link="MmGdbusObject.html#mm-gdbus-object-peek-modem-oma"/>
+ <keyword type="function" name="mm_gdbus_object_get_modem_oma ()" link="MmGdbusObject.html#mm-gdbus-object-get-modem-oma"/>
<keyword type="function" name="mm_gdbus_object_peek_modem_simple ()" link="MmGdbusObject.html#mm-gdbus-object-peek-modem-simple"/>
<keyword type="function" name="mm_gdbus_object_get_modem_simple ()" link="MmGdbusObject.html#mm-gdbus-object-get-modem-simple"/>
+ <keyword type="function" name="mm_gdbus_object_peek_modem_signal ()" link="MmGdbusObject.html#mm-gdbus-object-peek-modem-signal"/>
+ <keyword type="function" name="mm_gdbus_object_get_modem_signal ()" link="MmGdbusObject.html#mm-gdbus-object-get-modem-signal"/>
<keyword type="property" name="The &quot;modem&quot; property" link="MmGdbusObject.html#MmGdbusObject--modem"/>
<keyword type="property" name="The &quot;modem-cdma&quot; property" link="MmGdbusObject.html#MmGdbusObject--modem-cdma"/>
<keyword type="property" name="The &quot;modem-firmware&quot; property" link="MmGdbusObject.html#MmGdbusObject--modem-firmware"/>
<keyword type="property" name="The &quot;modem-location&quot; property" link="MmGdbusObject.html#MmGdbusObject--modem-location"/>
<keyword type="property" name="The &quot;modem-messaging&quot; property" link="MmGdbusObject.html#MmGdbusObject--modem-messaging"/>
+ <keyword type="property" name="The &quot;modem-oma&quot; property" link="MmGdbusObject.html#MmGdbusObject--modem-oma"/>
+ <keyword type="property" name="The &quot;modem-signal&quot; property" link="MmGdbusObject.html#MmGdbusObject--modem-signal"/>
<keyword type="property" name="The &quot;modem-simple&quot; property" link="MmGdbusObject.html#MmGdbusObject--modem-simple"/>
<keyword type="property" name="The &quot;modem-time&quot; property" link="MmGdbusObject.html#MmGdbusObject--modem-time"/>
<keyword type="property" name="The &quot;modem3gpp&quot; property" link="MmGdbusObject.html#MmGdbusObject--modem3gpp"/>
@@ -649,13 +760,17 @@
<keyword type="function" name="mm_gdbus_object_skeleton_set_modem3gpp_ussd ()" link="MmGdbusObjectSkeleton.html#mm-gdbus-object-skeleton-set-modem3gpp-ussd"/>
<keyword type="function" name="mm_gdbus_object_skeleton_set_modem_cdma ()" link="MmGdbusObjectSkeleton.html#mm-gdbus-object-skeleton-set-modem-cdma"/>
<keyword type="function" name="mm_gdbus_object_skeleton_set_modem_firmware ()" link="MmGdbusObjectSkeleton.html#mm-gdbus-object-skeleton-set-modem-firmware"/>
+ <keyword type="function" name="mm_gdbus_object_skeleton_set_modem_oma ()" link="MmGdbusObjectSkeleton.html#mm-gdbus-object-skeleton-set-modem-oma"/>
<keyword type="function" name="mm_gdbus_object_skeleton_set_modem_location ()" link="MmGdbusObjectSkeleton.html#mm-gdbus-object-skeleton-set-modem-location"/>
<keyword type="function" name="mm_gdbus_object_skeleton_set_modem_messaging ()" link="MmGdbusObjectSkeleton.html#mm-gdbus-object-skeleton-set-modem-messaging"/>
<keyword type="function" name="mm_gdbus_object_skeleton_set_modem_simple ()" link="MmGdbusObjectSkeleton.html#mm-gdbus-object-skeleton-set-modem-simple"/>
<keyword type="function" name="mm_gdbus_object_skeleton_set_modem_time ()" link="MmGdbusObjectSkeleton.html#mm-gdbus-object-skeleton-set-modem-time"/>
+ <keyword type="function" name="mm_gdbus_object_skeleton_set_modem_signal ()" link="MmGdbusObjectSkeleton.html#mm-gdbus-object-skeleton-set-modem-signal"/>
<keyword type="struct" name="MmGdbusModem" link="MmGdbusModem.html#MmGdbusModem-struct"/>
<keyword type="struct" name="struct MmGdbusModemIface" link="MmGdbusModem.html#MmGdbusModemIface"/>
<keyword type="function" name="mm_gdbus_modem_get_access_technologies ()" link="MmGdbusModem.html#mm-gdbus-modem-get-access-technologies"/>
+ <keyword type="function" name="mm_gdbus_modem_get_bearers ()" link="MmGdbusModem.html#mm-gdbus-modem-get-bearers"/>
+ <keyword type="function" name="mm_gdbus_modem_dup_bearers ()" link="MmGdbusModem.html#mm-gdbus-modem-dup-bearers"/>
<keyword type="function" name="mm_gdbus_modem_get_current_modes ()" link="MmGdbusModem.html#mm-gdbus-modem-get-current-modes"/>
<keyword type="function" name="mm_gdbus_modem_dup_current_modes ()" link="MmGdbusModem.html#mm-gdbus-modem-dup-current-modes"/>
<keyword type="function" name="mm_gdbus_modem_get_current_bands ()" link="MmGdbusModem.html#mm-gdbus-modem-get-current-bands"/>
@@ -736,6 +851,7 @@
<keyword type="function" name="mm_gdbus_modem_call_command_finish ()" link="MmGdbusModem.html#mm-gdbus-modem-call-command-finish"/>
<keyword type="function" name="mm_gdbus_modem_call_command_sync ()" link="MmGdbusModem.html#mm-gdbus-modem-call-command-sync"/>
<keyword type="property" name="The &quot;access-technologies&quot; property" link="MmGdbusModem.html#MmGdbusModem--access-technologies"/>
+ <keyword type="property" name="The &quot;bearers&quot; property" link="MmGdbusModem.html#MmGdbusModem--bearers"/>
<keyword type="property" name="The &quot;current-bands&quot; property" link="MmGdbusModem.html#MmGdbusModem--current-bands"/>
<keyword type="property" name="The &quot;current-capabilities&quot; property" link="MmGdbusModem.html#MmGdbusModem--current-capabilities"/>
<keyword type="property" name="The &quot;current-modes&quot; property" link="MmGdbusModem.html#MmGdbusModem--current-modes"/>
@@ -794,6 +910,7 @@
<keyword type="function" name="mm_gdbus_modem3gpp_get_operator_name ()" link="MmGdbusModem3gpp.html#mm-gdbus-modem3gpp-get-operator-name"/>
<keyword type="function" name="mm_gdbus_modem3gpp_dup_operator_name ()" link="MmGdbusModem3gpp.html#mm-gdbus-modem3gpp-dup-operator-name"/>
<keyword type="function" name="mm_gdbus_modem3gpp_get_enabled_facility_locks ()" link="MmGdbusModem3gpp.html#mm-gdbus-modem3gpp-get-enabled-facility-locks"/>
+ <keyword type="function" name="mm_gdbus_modem3gpp_get_subscription_state ()" link="MmGdbusModem3gpp.html#mm-gdbus-modem3gpp-get-subscription-state"/>
<keyword type="function" name="mm_gdbus_modem3gpp_call_register ()" link="MmGdbusModem3gpp.html#mm-gdbus-modem3gpp-call-register"/>
<keyword type="function" name="mm_gdbus_modem3gpp_call_register_finish ()" link="MmGdbusModem3gpp.html#mm-gdbus-modem3gpp-call-register-finish"/>
<keyword type="function" name="mm_gdbus_modem3gpp_call_register_sync ()" link="MmGdbusModem3gpp.html#mm-gdbus-modem3gpp-call-register-sync"/>
@@ -805,6 +922,7 @@
<keyword type="property" name="The &quot;operator-code&quot; property" link="MmGdbusModem3gpp.html#MmGdbusModem3gpp--operator-code"/>
<keyword type="property" name="The &quot;operator-name&quot; property" link="MmGdbusModem3gpp.html#MmGdbusModem3gpp--operator-name"/>
<keyword type="property" name="The &quot;registration-state&quot; property" link="MmGdbusModem3gpp.html#MmGdbusModem3gpp--registration-state"/>
+ <keyword type="property" name="The &quot;subscription-state&quot; property" link="MmGdbusModem3gpp.html#MmGdbusModem3gpp--subscription-state"/>
<keyword type="signal" name="The &quot;handle-register&quot; signal" link="MmGdbusModem3gpp.html#MmGdbusModem3gpp-handle-register"/>
<keyword type="signal" name="The &quot;handle-scan&quot; signal" link="MmGdbusModem3gpp.html#MmGdbusModem3gpp-handle-scan"/>
<keyword type="struct" name="struct MmGdbusModem3gppProxy" link="MmGdbusModem3gppProxy.html#MmGdbusModem3gppProxy-struct"/>
@@ -913,6 +1031,8 @@
<keyword type="function" name="mm_gdbus_modem_location_skeleton_new ()" link="MmGdbusModemLocationSkeleton.html#mm-gdbus-modem-location-skeleton-new"/>
<keyword type="struct" name="MmGdbusModemMessaging" link="MmGdbusModemMessaging.html#MmGdbusModemMessaging-struct"/>
<keyword type="struct" name="struct MmGdbusModemMessagingIface" link="MmGdbusModemMessaging.html#MmGdbusModemMessagingIface"/>
+ <keyword type="function" name="mm_gdbus_modem_messaging_get_messages ()" link="MmGdbusModemMessaging.html#mm-gdbus-modem-messaging-get-messages"/>
+ <keyword type="function" name="mm_gdbus_modem_messaging_dup_messages ()" link="MmGdbusModemMessaging.html#mm-gdbus-modem-messaging-dup-messages"/>
<keyword type="function" name="mm_gdbus_modem_messaging_get_supported_storages ()" link="MmGdbusModemMessaging.html#mm-gdbus-modem-messaging-get-supported-storages"/>
<keyword type="function" name="mm_gdbus_modem_messaging_dup_supported_storages ()" link="MmGdbusModemMessaging.html#mm-gdbus-modem-messaging-dup-supported-storages"/>
<keyword type="function" name="mm_gdbus_modem_messaging_get_default_storage ()" link="MmGdbusModemMessaging.html#mm-gdbus-modem-messaging-get-default-storage"/>
@@ -926,6 +1046,7 @@
<keyword type="function" name="mm_gdbus_modem_messaging_call_list_finish ()" link="MmGdbusModemMessaging.html#mm-gdbus-modem-messaging-call-list-finish"/>
<keyword type="function" name="mm_gdbus_modem_messaging_call_list_sync ()" link="MmGdbusModemMessaging.html#mm-gdbus-modem-messaging-call-list-sync"/>
<keyword type="property" name="The &quot;default-storage&quot; property" link="MmGdbusModemMessaging.html#MmGdbusModemMessaging--default-storage"/>
+ <keyword type="property" name="The &quot;messages&quot; property" link="MmGdbusModemMessaging.html#MmGdbusModemMessaging--messages"/>
<keyword type="property" name="The &quot;supported-storages&quot; property" link="MmGdbusModemMessaging.html#MmGdbusModemMessaging--supported-storages"/>
<keyword type="signal" name="The &quot;added&quot; signal" link="MmGdbusModemMessaging.html#MmGdbusModemMessaging-added"/>
<keyword type="signal" name="The &quot;deleted&quot; signal" link="MmGdbusModemMessaging.html#MmGdbusModemMessaging-deleted"/>
@@ -979,6 +1100,75 @@
<keyword type="function" name="mm_gdbus_modem_firmware_proxy_new_sync ()" link="MmGdbusModemFirmwareProxy.html#mm-gdbus-modem-firmware-proxy-new-sync"/>
<keyword type="struct" name="struct MmGdbusModemFirmwareSkeleton" link="MmGdbusModemFirmwareSkeleton.html#MmGdbusModemFirmwareSkeleton-struct"/>
<keyword type="function" name="mm_gdbus_modem_firmware_skeleton_new ()" link="MmGdbusModemFirmwareSkeleton.html#mm-gdbus-modem-firmware-skeleton-new"/>
+ <keyword type="struct" name="MmGdbusModemSignal" link="MmGdbusModemSignal.html#MmGdbusModemSignal-struct"/>
+ <keyword type="struct" name="struct MmGdbusModemSignalIface" link="MmGdbusModemSignal.html#MmGdbusModemSignalIface"/>
+ <keyword type="function" name="mm_gdbus_modem_signal_get_rate ()" link="MmGdbusModemSignal.html#mm-gdbus-modem-signal-get-rate"/>
+ <keyword type="function" name="mm_gdbus_modem_signal_get_cdma ()" link="MmGdbusModemSignal.html#mm-gdbus-modem-signal-get-cdma"/>
+ <keyword type="function" name="mm_gdbus_modem_signal_get_evdo ()" link="MmGdbusModemSignal.html#mm-gdbus-modem-signal-get-evdo"/>
+ <keyword type="function" name="mm_gdbus_modem_signal_get_gsm ()" link="MmGdbusModemSignal.html#mm-gdbus-modem-signal-get-gsm"/>
+ <keyword type="function" name="mm_gdbus_modem_signal_get_umts ()" link="MmGdbusModemSignal.html#mm-gdbus-modem-signal-get-umts"/>
+ <keyword type="function" name="mm_gdbus_modem_signal_get_lte ()" link="MmGdbusModemSignal.html#mm-gdbus-modem-signal-get-lte"/>
+ <keyword type="function" name="mm_gdbus_modem_signal_dup_cdma ()" link="MmGdbusModemSignal.html#mm-gdbus-modem-signal-dup-cdma"/>
+ <keyword type="function" name="mm_gdbus_modem_signal_dup_evdo ()" link="MmGdbusModemSignal.html#mm-gdbus-modem-signal-dup-evdo"/>
+ <keyword type="function" name="mm_gdbus_modem_signal_dup_gsm ()" link="MmGdbusModemSignal.html#mm-gdbus-modem-signal-dup-gsm"/>
+ <keyword type="function" name="mm_gdbus_modem_signal_dup_umts ()" link="MmGdbusModemSignal.html#mm-gdbus-modem-signal-dup-umts"/>
+ <keyword type="function" name="mm_gdbus_modem_signal_dup_lte ()" link="MmGdbusModemSignal.html#mm-gdbus-modem-signal-dup-lte"/>
+ <keyword type="function" name="mm_gdbus_modem_signal_call_setup ()" link="MmGdbusModemSignal.html#mm-gdbus-modem-signal-call-setup"/>
+ <keyword type="function" name="mm_gdbus_modem_signal_call_setup_finish ()" link="MmGdbusModemSignal.html#mm-gdbus-modem-signal-call-setup-finish"/>
+ <keyword type="function" name="mm_gdbus_modem_signal_call_setup_sync ()" link="MmGdbusModemSignal.html#mm-gdbus-modem-signal-call-setup-sync"/>
+ <keyword type="property" name="The &quot;cdma&quot; property" link="MmGdbusModemSignal.html#MmGdbusModemSignal--cdma"/>
+ <keyword type="property" name="The &quot;evdo&quot; property" link="MmGdbusModemSignal.html#MmGdbusModemSignal--evdo"/>
+ <keyword type="property" name="The &quot;gsm&quot; property" link="MmGdbusModemSignal.html#MmGdbusModemSignal--gsm"/>
+ <keyword type="property" name="The &quot;lte&quot; property" link="MmGdbusModemSignal.html#MmGdbusModemSignal--lte"/>
+ <keyword type="property" name="The &quot;rate&quot; property" link="MmGdbusModemSignal.html#MmGdbusModemSignal--rate"/>
+ <keyword type="property" name="The &quot;umts&quot; property" link="MmGdbusModemSignal.html#MmGdbusModemSignal--umts"/>
+ <keyword type="signal" name="The &quot;handle-setup&quot; signal" link="MmGdbusModemSignal.html#MmGdbusModemSignal-handle-setup"/>
+ <keyword type="struct" name="struct MmGdbusModemSignalProxy" link="MmGdbusModemSignalProxy.html#MmGdbusModemSignalProxy-struct"/>
+ <keyword type="function" name="mm_gdbus_modem_signal_proxy_new ()" link="MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new"/>
+ <keyword type="function" name="mm_gdbus_modem_signal_proxy_new_finish ()" link="MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new-finish"/>
+ <keyword type="function" name="mm_gdbus_modem_signal_proxy_new_for_bus ()" link="MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new-for-bus"/>
+ <keyword type="function" name="mm_gdbus_modem_signal_proxy_new_for_bus_finish ()" link="MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new-for-bus-finish"/>
+ <keyword type="function" name="mm_gdbus_modem_signal_proxy_new_for_bus_sync ()" link="MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new-for-bus-sync"/>
+ <keyword type="function" name="mm_gdbus_modem_signal_proxy_new_sync ()" link="MmGdbusModemSignalProxy.html#mm-gdbus-modem-signal-proxy-new-sync"/>
+ <keyword type="struct" name="struct MmGdbusModemSignalSkeleton" link="MmGdbusModemSignalSkeleton.html#MmGdbusModemSignalSkeleton-struct"/>
+ <keyword type="function" name="mm_gdbus_modem_signal_skeleton_new ()" link="MmGdbusModemSignalSkeleton.html#mm-gdbus-modem-signal-skeleton-new"/>
+ <keyword type="struct" name="MmGdbusModemOma" link="MmGdbusModemOma.html#MmGdbusModemOma-struct"/>
+ <keyword type="struct" name="struct MmGdbusModemOmaIface" link="MmGdbusModemOma.html#MmGdbusModemOmaIface"/>
+ <keyword type="function" name="mm_gdbus_modem_oma_call_accept_network_initiated_session ()" link="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-accept-network-initiated-session"/>
+ <keyword type="function" name="mm_gdbus_modem_oma_call_accept_network_initiated_session_finish ()" link="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-accept-network-initiated-session-finish"/>
+ <keyword type="function" name="mm_gdbus_modem_oma_call_accept_network_initiated_session_sync ()" link="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-accept-network-initiated-session-sync"/>
+ <keyword type="function" name="mm_gdbus_modem_oma_call_cancel_session ()" link="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-cancel-session"/>
+ <keyword type="function" name="mm_gdbus_modem_oma_call_cancel_session_finish ()" link="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-cancel-session-finish"/>
+ <keyword type="function" name="mm_gdbus_modem_oma_call_cancel_session_sync ()" link="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-cancel-session-sync"/>
+ <keyword type="function" name="mm_gdbus_modem_oma_call_setup ()" link="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-setup"/>
+ <keyword type="function" name="mm_gdbus_modem_oma_call_setup_finish ()" link="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-setup-finish"/>
+ <keyword type="function" name="mm_gdbus_modem_oma_call_setup_sync ()" link="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-setup-sync"/>
+ <keyword type="function" name="mm_gdbus_modem_oma_call_start_client_initiated_session ()" link="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-start-client-initiated-session"/>
+ <keyword type="function" name="mm_gdbus_modem_oma_call_start_client_initiated_session_finish ()" link="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-start-client-initiated-session-finish"/>
+ <keyword type="function" name="mm_gdbus_modem_oma_call_start_client_initiated_session_sync ()" link="MmGdbusModemOma.html#mm-gdbus-modem-oma-call-start-client-initiated-session-sync"/>
+ <keyword type="function" name="mm_gdbus_modem_oma_get_features ()" link="MmGdbusModemOma.html#mm-gdbus-modem-oma-get-features"/>
+ <keyword type="function" name="mm_gdbus_modem_oma_get_session_state ()" link="MmGdbusModemOma.html#mm-gdbus-modem-oma-get-session-state"/>
+ <keyword type="function" name="mm_gdbus_modem_oma_get_session_type ()" link="MmGdbusModemOma.html#mm-gdbus-modem-oma-get-session-type"/>
+ <keyword type="function" name="mm_gdbus_modem_oma_get_pending_network_initiated_sessions ()" link="MmGdbusModemOma.html#mm-gdbus-modem-oma-get-pending-network-initiated-sessions"/>
+ <keyword type="function" name="mm_gdbus_modem_oma_dup_pending_network_initiated_sessions ()" link="MmGdbusModemOma.html#mm-gdbus-modem-oma-dup-pending-network-initiated-sessions"/>
+ <keyword type="property" name="The &quot;features&quot; property" link="MmGdbusModemOma.html#MmGdbusModemOma--features"/>
+ <keyword type="property" name="The &quot;pending-network-initiated-sessions&quot; property" link="MmGdbusModemOma.html#MmGdbusModemOma--pending-network-initiated-sessions"/>
+ <keyword type="property" name="The &quot;session-state&quot; property" link="MmGdbusModemOma.html#MmGdbusModemOma--session-state"/>
+ <keyword type="property" name="The &quot;session-type&quot; property" link="MmGdbusModemOma.html#MmGdbusModemOma--session-type"/>
+ <keyword type="signal" name="The &quot;handle-accept-network-initiated-session&quot; signal" link="MmGdbusModemOma.html#MmGdbusModemOma-handle-accept-network-initiated-session"/>
+ <keyword type="signal" name="The &quot;handle-cancel-session&quot; signal" link="MmGdbusModemOma.html#MmGdbusModemOma-handle-cancel-session"/>
+ <keyword type="signal" name="The &quot;handle-setup&quot; signal" link="MmGdbusModemOma.html#MmGdbusModemOma-handle-setup"/>
+ <keyword type="signal" name="The &quot;handle-start-client-initiated-session&quot; signal" link="MmGdbusModemOma.html#MmGdbusModemOma-handle-start-client-initiated-session"/>
+ <keyword type="signal" name="The &quot;session-state-changed&quot; signal" link="MmGdbusModemOma.html#MmGdbusModemOma-session-state-changed"/>
+ <keyword type="struct" name="struct MmGdbusModemOmaProxy" link="MmGdbusModemOmaProxy.html#MmGdbusModemOmaProxy-struct"/>
+ <keyword type="function" name="mm_gdbus_modem_oma_proxy_new ()" link="MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new"/>
+ <keyword type="function" name="mm_gdbus_modem_oma_proxy_new_finish ()" link="MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new-finish"/>
+ <keyword type="function" name="mm_gdbus_modem_oma_proxy_new_for_bus ()" link="MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new-for-bus"/>
+ <keyword type="function" name="mm_gdbus_modem_oma_proxy_new_for_bus_finish ()" link="MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new-for-bus-finish"/>
+ <keyword type="function" name="mm_gdbus_modem_oma_proxy_new_for_bus_sync ()" link="MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new-for-bus-sync"/>
+ <keyword type="function" name="mm_gdbus_modem_oma_proxy_new_sync ()" link="MmGdbusModemOmaProxy.html#mm-gdbus-modem-oma-proxy-new-sync"/>
+ <keyword type="struct" name="struct MmGdbusModemOmaSkeleton" link="MmGdbusModemOmaSkeleton.html#MmGdbusModemOmaSkeleton-struct"/>
+ <keyword type="function" name="mm_gdbus_modem_oma_skeleton_new ()" link="MmGdbusModemOmaSkeleton.html#mm-gdbus-modem-oma-skeleton-new"/>
<keyword type="struct" name="MmGdbusModemSimple" link="MmGdbusModemSimple.html#MmGdbusModemSimple-struct"/>
<keyword type="struct" name="struct MmGdbusModemSimpleIface" link="MmGdbusModemSimple.html#MmGdbusModemSimpleIface"/>
<keyword type="function" name="mm_gdbus_modem_simple_call_connect ()" link="MmGdbusModemSimple.html#mm-gdbus-modem-simple-call-connect"/>
@@ -1095,6 +1285,8 @@
<keyword type="function" name="mm_gdbus_sms_get_validity ()" link="MmGdbusSms.html#mm-gdbus-sms-get-validity"/>
<keyword type="function" name="mm_gdbus_sms_dup_validity ()" link="MmGdbusSms.html#mm-gdbus-sms-dup-validity"/>
<keyword type="function" name="mm_gdbus_sms_get_class ()" link="MmGdbusSms.html#mm-gdbus-sms-get-class"/>
+ <keyword type="function" name="mm_gdbus_sms_get_teleservice_id ()" link="MmGdbusSms.html#mm-gdbus-sms-get-teleservice-id"/>
+ <keyword type="function" name="mm_gdbus_sms_get_service_category ()" link="MmGdbusSms.html#mm-gdbus-sms-get-service-category"/>
<keyword type="function" name="mm_gdbus_sms_get_timestamp ()" link="MmGdbusSms.html#mm-gdbus-sms-get-timestamp"/>
<keyword type="function" name="mm_gdbus_sms_dup_timestamp ()" link="MmGdbusSms.html#mm-gdbus-sms-dup-timestamp"/>
<keyword type="function" name="mm_gdbus_sms_get_discharge_timestamp ()" link="MmGdbusSms.html#mm-gdbus-sms-get-discharge-timestamp"/>
@@ -1115,9 +1307,11 @@
<keyword type="property" name="The &quot;message-reference&quot; property" link="MmGdbusSms.html#MmGdbusSms--message-reference"/>
<keyword type="property" name="The &quot;number&quot; property" link="MmGdbusSms.html#MmGdbusSms--number"/>
<keyword type="property" name="The &quot;pdu-type&quot; property" link="MmGdbusSms.html#MmGdbusSms--pdu-type"/>
+ <keyword type="property" name="The &quot;service-category&quot; property" link="MmGdbusSms.html#MmGdbusSms--service-category"/>
<keyword type="property" name="The &quot;smsc&quot; property" link="MmGdbusSms.html#MmGdbusSms--smsc"/>
<keyword type="property" name="The &quot;state&quot; property" link="MmGdbusSms.html#MmGdbusSms--state"/>
<keyword type="property" name="The &quot;storage&quot; property" link="MmGdbusSms.html#MmGdbusSms--storage"/>
+ <keyword type="property" name="The &quot;teleservice-id&quot; property" link="MmGdbusSms.html#MmGdbusSms--teleservice-id"/>
<keyword type="property" name="The &quot;text&quot; property" link="MmGdbusSms.html#MmGdbusSms--text"/>
<keyword type="property" name="The &quot;timestamp&quot; property" link="MmGdbusSms.html#MmGdbusSms--timestamp"/>
<keyword type="property" name="The &quot;validity&quot; property" link="MmGdbusSms.html#MmGdbusSms--validity"/>
diff --git a/docs/reference/libmm-glib/html/object-tree.html b/docs/reference/libmm-glib/html/object-tree.html
index dc699ed..b6a5dbe 100644
--- a/docs/reference/libmm-glib/html/object-tree.html
+++ b/docs/reference/libmm-glib/html/object-tree.html
@@ -8,7 +8,7 @@
<link rel="up" href="index.html" title="libmm-glib Reference Manual">
<link rel="prev" href="MmGdbusSmsSkeleton.html" title="MmGdbusSmsSkeleton">
<link rel="next" href="api-index-full.html" title="API Index">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -39,8 +39,12 @@
<a class="link" href="MMModemLocation.html" title="MMModemLocation">MMModemLocation</a>
<a class="link" href="MmGdbusModemMessagingProxy.html" title="MmGdbusModemMessagingProxy">MmGdbusModemMessagingProxy</a>
<a class="link" href="MMModemMessaging.html" title="MMModemMessaging">MMModemMessaging</a>
+ <a class="link" href="MmGdbusModemOmaProxy.html" title="MmGdbusModemOmaProxy">MmGdbusModemOmaProxy</a>
+ <a class="link" href="MMModemOma.html" title="MMModemOma">MMModemOma</a>
<a class="link" href="MmGdbusModemProxy.html" title="MmGdbusModemProxy">MmGdbusModemProxy</a>
<a class="link" href="MMModem.html" title="MMModem">MMModem</a>
+ <a class="link" href="MmGdbusModemSignalProxy.html" title="MmGdbusModemSignalProxy">MmGdbusModemSignalProxy</a>
+ <a class="link" href="MMModemSignal.html" title="MMModemSignal">MMModemSignal</a>
<a class="link" href="MmGdbusModemSimpleProxy.html" title="MmGdbusModemSimpleProxy">MmGdbusModemSimpleProxy</a>
<a class="link" href="MMModemSimple.html" title="MMModemSimple">MMModemSimple</a>
<a class="link" href="MmGdbusModemTimeProxy.html" title="MmGdbusModemTimeProxy">MmGdbusModemTimeProxy</a>
@@ -52,7 +56,9 @@
<a class="link" href="MMSms.html" title="MMSms">MMSms</a>
<a class="link" href="MMBearerIpConfig.html" title="MMBearerIpConfig">MMBearerIpConfig</a>
<a class="link" href="MMBearerProperties.html" title="MMBearerProperties">MMBearerProperties</a>
+ <a class="link" href="MMCdmaManualActivationProperties.html" title="MMCdmaManualActivationProperties">MMCdmaManualActivationProperties</a>
<a class="link" href="MMFirmwareProperties.html" title="MMFirmwareProperties">MMFirmwareProperties</a>
+ <a class="link" href="MMSignal.html" title="MMSignal">MMSignal</a>
<a href="http://library.gnome.org/devel/gio/unstable/GDBusInterfaceSkeleton.html">GDBusInterfaceSkeleton</a>
<a class="link" href="MmGdbusBearerSkeleton.html" title="MmGdbusBearerSkeleton">MmGdbusBearerSkeleton</a>
<a class="link" href="MmGdbusModem3gppSkeleton.html" title="MmGdbusModem3gppSkeleton">MmGdbusModem3gppSkeleton</a>
@@ -61,6 +67,8 @@
<a class="link" href="MmGdbusModemFirmwareSkeleton.html" title="MmGdbusModemFirmwareSkeleton">MmGdbusModemFirmwareSkeleton</a>
<a class="link" href="MmGdbusModemLocationSkeleton.html" title="MmGdbusModemLocationSkeleton">MmGdbusModemLocationSkeleton</a>
<a class="link" href="MmGdbusModemMessagingSkeleton.html" title="MmGdbusModemMessagingSkeleton">MmGdbusModemMessagingSkeleton</a>
+ <a class="link" href="MmGdbusModemOmaSkeleton.html" title="MmGdbusModemOmaSkeleton">MmGdbusModemOmaSkeleton</a>
+ <a class="link" href="MmGdbusModemSignalSkeleton.html" title="MmGdbusModemSignalSkeleton">MmGdbusModemSignalSkeleton</a>
<a class="link" href="MmGdbusModemSimpleSkeleton.html" title="MmGdbusModemSimpleSkeleton">MmGdbusModemSimpleSkeleton</a>
<a class="link" href="MmGdbusModemSkeleton.html" title="MmGdbusModemSkeleton">MmGdbusModemSkeleton</a>
<a class="link" href="MmGdbusModemTimeSkeleton.html" title="MmGdbusModemTimeSkeleton">MmGdbusModemTimeSkeleton</a>
@@ -93,6 +101,8 @@
<a class="link" href="MmGdbusModem.html" title="MmGdbusModem">MmGdbusModem</a>
<a class="link" href="MmGdbusModemLocation.html" title="MmGdbusModemLocation">MmGdbusModemLocation</a>
<a class="link" href="MmGdbusModemMessaging.html" title="MmGdbusModemMessaging">MmGdbusModemMessaging</a>
+ <a class="link" href="MmGdbusModemOma.html" title="MmGdbusModemOma">MmGdbusModemOma</a>
+ <a class="link" href="MmGdbusModemSignal.html" title="MmGdbusModemSignal">MmGdbusModemSignal</a>
<a class="link" href="MmGdbusModemSimple.html" title="MmGdbusModemSimple">MmGdbusModemSimple</a>
<a class="link" href="MmGdbusModemTime.html" title="MmGdbusModemTime">MmGdbusModemTime</a>
<a class="link" href="MmGdbusObject.html" title="MmGdbusObject">MmGdbusObject</a>
@@ -103,6 +113,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/pt01.html b/docs/reference/libmm-glib/html/pt01.html
index 13c5d0d..3f75b50 100644
--- a/docs/reference/libmm-glib/html/pt01.html
+++ b/docs/reference/libmm-glib/html/pt01.html
@@ -8,7 +8,7 @@
<link rel="up" href="index.html" title="libmm-glib Reference Manual">
<link rel="prev" href="index.html" title="libmm-glib Reference Manual">
<link rel="next" href="ch01.html" title="Common enums and flags helpers">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -21,7 +21,7 @@
</tr></table>
<div class="part">
<div class="titlepage"><div><div><h1 class="title">
-<a name="idm211866944944"></a>Part I. High level API</h1></div></div></div>
+<a name="id-1.2"></a>Part I. High level API</h1></div></div></div>
<div class="toc">
<p><b>Table of Contents</b></p>
<dl class="toc">
@@ -38,7 +38,7 @@
<dt>
<span class="refentrytitle"><a href="MMObject.html">MMObject</a></span><span class="refpurpose"> — Generic object representing a modem in ModemManager</span>
</dt>
-<dt><span class="section"><a href="ch03.html#idm211869297872">Generic interfaces</a></span></dt>
+<dt><span class="section"><a href="ch03.html#id-1.2.4.3">Generic interfaces</a></span></dt>
<dd><dl>
<dt>
<span class="refentrytitle"><a href="MMModem.html">MMModem</a></span><span class="refpurpose"> — The Modem interface</span>
@@ -53,6 +53,9 @@
<span class="refentrytitle"><a href="MMModemCdma.html">MMModemCdma</a></span><span class="refpurpose"> — The CDMA interface</span>
</dt>
<dt>
+<span class="refentrytitle"><a href="MMCdmaManualActivationProperties.html">MMCdmaManualActivationProperties</a></span><span class="refpurpose"> — Helper object to handle manual CDMA activation properties.</span>
+</dt>
+<dt>
<span class="refentrytitle"><a href="MMUnlockRetries.html">MMUnlockRetries</a></span><span class="refpurpose"> — Helper object to report unlock retries.</span>
</dt>
</dl></dd>
@@ -108,6 +111,19 @@
<span class="refentrytitle"><a href="MMFirmwareProperties.html">MMFirmwareProperties</a></span><span class="refpurpose"> — Helper object to handle firmware information.</span>
</dt>
</dl></dd>
+<dt><span class="section"><a href="ch03s07.html">Extended signal information</a></span></dt>
+<dd><dl>
+<dt>
+<span class="refentrytitle"><a href="MMModemSignal.html">MMModemSignal</a></span><span class="refpurpose"> — The extended Signal interface</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="MMSignal.html">MMSignal</a></span><span class="refpurpose"> — Helper object to handle extended Signal information.</span>
+</dt>
+</dl></dd>
+<dt><span class="section"><a href="ch03s08.html">OMA support</a></span></dt>
+<dd><dl><dt>
+<span class="refentrytitle"><a href="MMModemOma.html">MMModemOma</a></span><span class="refpurpose"> — The OMA interface</span>
+</dt></dl></dd>
</dl></dd>
<dt><span class="chapter"><a href="ch04.html">The Bearer object</a></span></dt>
<dd><dl>
@@ -139,6 +155,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/html/pt02.html b/docs/reference/libmm-glib/html/pt02.html
index d9f16a4..fcec2d6 100644
--- a/docs/reference/libmm-glib/html/pt02.html
+++ b/docs/reference/libmm-glib/html/pt02.html
@@ -8,7 +8,7 @@
<link rel="up" href="index.html" title="libmm-glib Reference Manual">
<link rel="prev" href="MMSmsProperties.html" title="MMSmsProperties">
<link rel="next" href="MmGdbusOrgFreedesktopModemManager1.html" title="MmGdbusOrgFreedesktopModemManager1">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -21,7 +21,7 @@
</tr></table>
<div class="part">
<div class="titlepage"><div><div><h1 class="title">
-<a name="idm211869424752"></a>Part II. Low level API</h1></div></div></div>
+<a name="id-1.3"></a>Part II. Low level API</h1></div></div></div>
<div class="toc">
<p><b>Table of Contents</b></p>
<dl class="toc">
@@ -119,6 +119,24 @@
<span class="refentrytitle"><a href="MmGdbusModemFirmwareSkeleton.html">MmGdbusModemFirmwareSkeleton</a></span><span class="refpurpose"></span>
</dt>
<dt>
+<span class="refentrytitle"><a href="MmGdbusModemSignal.html">MmGdbusModemSignal</a></span><span class="refpurpose"> — Generated C code for the org.freedesktop.ModemManager1.Modem.Signal D-Bus interface</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="MmGdbusModemSignalProxy.html">MmGdbusModemSignalProxy</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="MmGdbusModemSignalSkeleton.html">MmGdbusModemSignalSkeleton</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="MmGdbusModemOma.html">MmGdbusModemOma</a></span><span class="refpurpose"> — Generated C code for the org.freedesktop.ModemManager1.Modem.Oma D-Bus interface</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="MmGdbusModemOmaProxy.html">MmGdbusModemOmaProxy</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="MmGdbusModemOmaSkeleton.html">MmGdbusModemOmaSkeleton</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
<span class="refentrytitle"><a href="MmGdbusModemSimple.html">MmGdbusModemSimple</a></span><span class="refpurpose"> — Generated C code for the org.freedesktop.ModemManager1.Modem.Simple D-Bus interface</span>
</dt>
<dt>
@@ -159,6 +177,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18.1</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/reference/libmm-glib/libmm-glib-docs.xml b/docs/reference/libmm-glib/libmm-glib-docs.xml
index 4e0e1fd..87c714a 100644
--- a/docs/reference/libmm-glib/libmm-glib-docs.xml
+++ b/docs/reference/libmm-glib/libmm-glib-docs.xml
@@ -79,6 +79,7 @@
<xi:include href="xml/mm-modem-3gpp.xml"/>
<xi:include href="xml/mm-modem-3gpp-ussd.xml"/>
<xi:include href="xml/mm-modem-cdma.xml"/>
+ <xi:include href="xml/mm-cdma-manual-activation-properties.xml"/>
<xi:include href="xml/mm-unlock-retries.xml"/>
</section>
<section>
@@ -109,6 +110,15 @@
<xi:include href="xml/mm-modem-firmware.xml"/>
<xi:include href="xml/mm-firmware-properties.xml"/>
</section>
+ <section>
+ <title>Extended signal information</title>
+ <xi:include href="xml/mm-modem-signal.xml"/>
+ <xi:include href="xml/mm-signal.xml"/>
+ </section>
+ <section>
+ <title>OMA support</title>
+ <xi:include href="xml/mm-modem-oma.xml"/>
+ </section>
</chapter>
<chapter>
@@ -174,6 +184,14 @@
<xi:include href="xml/MmGdbusModemFirmwareProxy.xml"/>
<xi:include href="xml/MmGdbusModemFirmwareSkeleton.xml"/>
+ <xi:include href="xml/MmGdbusModemSignal.xml"/>
+ <xi:include href="xml/MmGdbusModemSignalProxy.xml"/>
+ <xi:include href="xml/MmGdbusModemSignalSkeleton.xml"/>
+
+ <xi:include href="xml/MmGdbusModemOma.xml"/>
+ <xi:include href="xml/MmGdbusModemOmaProxy.xml"/>
+ <xi:include href="xml/MmGdbusModemOmaSkeleton.xml"/>
+
<!--xi:include href="xml/MmGdbusModemContacts.xml"/>
<xi:include href="xml/MmGdbusModemContactsProxy.xml"/>
<xi:include href="xml/MmGdbusModemContactsSkeleton.xml"/-->
diff --git a/docs/reference/libmm-glib/libmm-glib-sections.txt b/docs/reference/libmm-glib/libmm-glib-sections.txt
index 1784b4c..415962f 100644
--- a/docs/reference/libmm-glib/libmm-glib-sections.txt
+++ b/docs/reference/libmm-glib/libmm-glib-sections.txt
@@ -56,8 +56,12 @@ mm_object_peek_modem_time
mm_object_get_modem_time
mm_object_peek_modem_firmware
mm_object_get_modem_firmware
+mm_object_peek_modem_oma
+mm_object_get_modem_oma
mm_object_peek_modem_simple
mm_object_get_modem_simple
+mm_object_peek_modem_signal
+mm_object_get_modem_signal
<SUBSECTION Standard>
MMObjectClass
MM_IS_OBJECT
@@ -109,6 +113,8 @@ mm_modem_peek_unlock_retries
mm_modem_get_unlock_retries
mm_modem_get_max_bearers
mm_modem_get_max_active_bearers
+mm_modem_get_bearer_paths
+mm_modem_dup_bearer_paths
mm_modem_get_own_numbers
mm_modem_dup_own_numbers
mm_modem_peek_supported_modes
@@ -231,6 +237,7 @@ mm_modem_3gpp_get_operator_name
mm_modem_3gpp_dup_operator_name
mm_modem_3gpp_get_enabled_facility_locks
mm_modem_3gpp_get_registration_state
+mm_modem_3gpp_get_subscription_state
<SUBSECTION Methods>
mm_modem_3gpp_register
mm_modem_3gpp_register_finish
@@ -283,6 +290,46 @@ mm_modem_3gpp_ussd_get_type
</SECTION>
<SECTION>
+<FILE>mm-cdma-manual-activation-properties</FILE>
+<TITLE>MMCdmaManualActivationProperties</TITLE>
+MMCdmaManualActivationProperties
+
+<SUBSECTION Methods>
+mm_cdma_manual_activation_properties_new
+mm_cdma_manual_activation_properties_get_spc
+mm_cdma_manual_activation_properties_set_spc
+mm_cdma_manual_activation_properties_get_sid
+mm_cdma_manual_activation_properties_set_sid
+mm_cdma_manual_activation_properties_get_mdn
+mm_cdma_manual_activation_properties_set_mdn
+mm_cdma_manual_activation_properties_get_min
+mm_cdma_manual_activation_properties_set_min
+mm_cdma_manual_activation_properties_get_mn_ha_key
+mm_cdma_manual_activation_properties_set_mn_ha_key
+mm_cdma_manual_activation_properties_get_mn_aaa_key
+mm_cdma_manual_activation_properties_set_mn_aaa_key
+mm_cdma_manual_activation_properties_get_prl
+mm_cdma_manual_activation_properties_peek_prl_bytearray
+mm_cdma_manual_activation_properties_get_prl_bytearray
+mm_cdma_manual_activation_properties_set_prl
+mm_cdma_manual_activation_properties_set_prl_bytearray
+<SUBSECTION Private>
+mm_cdma_manual_activation_properties_new_from_string
+mm_cdma_manual_activation_properties_new_from_dictionary
+mm_cdma_manual_activation_properties_get_dictionary
+<SUBSECTION Standard>
+MMCdmaManualActivationPropertiesClass
+MMCdmaManualActivationPropertiesPrivate
+MM_CDMA_MANUAL_ACTIVATION_PROPERTIES
+MM_CDMA_MANUAL_ACTIVATION_PROPERTIES_CLASS
+MM_CDMA_MANUAL_ACTIVATION_PROPERTIES_GET_CLASS
+MM_IS_CDMA_MANUAL_ACTIVATION_PROPERTIES
+MM_IS_CDMA_MANUAL_ACTIVATION_PROPERTIES_CLASS
+MM_TYPE_CDMA_MANUAL_ACTIVATION_PROPERTIES
+mm_cdma_manual_activation_properties_get_type
+</SECTION>
+
+<SECTION>
<FILE>mm-modem-cdma</FILE>
<TITLE>MMModemCdma</TITLE>
MMModemCdma
@@ -304,6 +351,9 @@ mm_modem_cdma_get_activation_state
mm_modem_cdma_activate
mm_modem_cdma_activate_finish
mm_modem_cdma_activate_sync
+mm_modem_cdma_activate_manual
+mm_modem_cdma_activate_manual_finish
+mm_modem_cdma_activate_manual_sync
<SUBSECTION Standard>
MMModemCdmaClass
MM_IS_MODEM_CDMA
@@ -606,6 +656,44 @@ mm_firmware_properties_get_type
</SECTION>
<SECTION>
+<FILE>mm-modem-oma</FILE>
+<TITLE>MMModemOma</TITLE>
+MMModemOma
+MMOmaPendingNetworkInitiatedSession
+<SUBSECTION Getters>
+mm_modem_oma_get_path
+mm_modem_oma_dup_path
+<SUBSECTION Methods>
+mm_modem_oma_setup
+mm_modem_oma_setup_finish
+mm_modem_oma_setup_sync
+mm_modem_oma_start_client_initiated_session
+mm_modem_oma_start_client_initiated_session_finish
+mm_modem_oma_start_client_initiated_session_sync
+mm_modem_oma_accept_network_initiated_session
+mm_modem_oma_accept_network_initiated_session_finish
+mm_modem_oma_accept_network_initiated_session_sync
+mm_modem_oma_cancel_session
+mm_modem_oma_cancel_session_finish
+mm_modem_oma_cancel_session_sync
+mm_modem_oma_get_features
+mm_modem_oma_get_session_type
+mm_modem_oma_get_session_state
+mm_modem_peek_pending_network_initiated_sessions
+mm_modem_get_pending_network_initiated_sessions
+<SUBSECTION Standard>
+MMModemOmaClass
+MMModemOmaPrivate
+MM_IS_MODEM_OMA
+MM_IS_MODEM_OMA_CLASS
+MM_MODEM_OMA
+MM_MODEM_OMA_CLASS
+MM_MODEM_OMA_GET_CLASS
+MM_TYPE_MODEM_OMA
+mm_modem_oma_get_type
+</SECTION>
+
+<SECTION>
<FILE>mm-modem-simple</FILE>
<TITLE>MMModemSimple</TITLE>
MMModemSimple
@@ -687,6 +775,7 @@ mm_simple_status_get_current_bands
mm_simple_status_get_3gpp_registration_state
mm_simple_status_get_3gpp_operator_code
mm_simple_status_get_3gpp_operator_name
+mm_simple_status_get_3gpp_subscription_state
mm_simple_status_get_cdma_cdma1x_registration_state
mm_simple_status_get_cdma_evdo_registration_state
mm_simple_status_get_cdma_nid
@@ -695,6 +784,7 @@ mm_simple_status_get_cdma_sid
MM_SIMPLE_PROPERTY_3GPP_OPERATOR_CODE
MM_SIMPLE_PROPERTY_3GPP_OPERATOR_NAME
MM_SIMPLE_PROPERTY_3GPP_REGISTRATION_STATE
+MM_SIMPLE_PROPERTY_3GPP_SUBSCRIPTION_STATE
MM_SIMPLE_PROPERTY_ACCESS_TECHNOLOGIES
MM_SIMPLE_PROPERTY_CURRENT_BANDS
MM_SIMPLE_PROPERTY_CDMA_CDMA1X_REGISTRATION_STATE
@@ -719,6 +809,76 @@ mm_simple_status_get_type
</SECTION>
<SECTION>
+<FILE>mm-modem-signal</FILE>
+<TITLE>MMModemSignal</TITLE>
+MMModemSignal
+<SUBSECTION Getters>
+mm_modem_signal_get_path
+mm_modem_signal_dup_path
+mm_modem_signal_get_rate
+mm_modem_signal_peek_cdma
+mm_modem_signal_get_cdma
+mm_modem_signal_peek_evdo
+mm_modem_signal_get_evdo
+mm_modem_signal_peek_gsm
+mm_modem_signal_get_gsm
+mm_modem_signal_peek_umts
+mm_modem_signal_get_umts
+mm_modem_signal_peek_lte
+mm_modem_signal_get_lte
+<SUBSECTION Methods>
+mm_modem_signal_setup
+mm_modem_signal_setup_finish
+mm_modem_signal_setup_sync
+<SUBSECTION Standard>
+MMModemSignalPrivate
+MMModemSignalClass
+MM_IS_MODEM_SIGNAL
+MM_IS_MODEM_SIGNAL_CLASS
+MM_MODEM_SIGNAL
+MM_MODEM_SIGNAL_CLASS
+MM_MODEM_SIGNAL_GET_CLASS
+MM_TYPE_MODEM_SIGNAL
+mm_modem_signal_get_type
+</SECTION>
+
+<SECTION>
+<FILE>mm-signal</FILE>
+<TITLE>MMSignal</TITLE>
+MMSignal
+MM_SIGNAL_UNKNOWN
+<SUBSECTION Getters>
+mm_signal_get_rssi
+mm_signal_get_ecio
+mm_signal_get_sinr
+mm_signal_get_io
+mm_signal_get_rsrp
+mm_signal_get_rsrq
+mm_signal_get_snr
+<SUBSECTION Private>
+mm_signal_new
+mm_signal_new_from_dictionary
+mm_signal_get_dictionary
+mm_signal_set_rssi
+mm_signal_set_ecio
+mm_signal_set_sinr
+mm_signal_set_io
+mm_signal_set_rsrp
+mm_signal_set_rsrq
+mm_signal_set_snr
+<SUBSECTION Standard>
+MMSignalClass
+MMSignalPrivate
+MM_SIGNAL
+MM_SIGNAL_CLASS
+MM_SIGNAL_GET_CLASS
+MM_IS_SIGNAL
+MM_IS_SIGNAL_CLASS
+MM_TYPE_SIGNAL
+mm_signal_get_type
+</SECTION>
+
+<SECTION>
<FILE>mm-bearer</FILE>
<TITLE>MMBearer</TITLE>
MMBearer
@@ -892,6 +1052,8 @@ mm_sms_get_smsc
mm_sms_dup_smsc
mm_sms_get_message_reference
mm_sms_get_class
+mm_sms_get_teleservice_id
+mm_sms_get_service_category
mm_sms_get_validity_type
mm_sms_get_validity_relative
mm_sms_get_timestamp
@@ -943,6 +1105,10 @@ mm_sms_properties_get_class
mm_sms_properties_set_class
mm_sms_properties_get_delivery_report_request
mm_sms_properties_set_delivery_report_request
+mm_sms_properties_get_teleservice_id
+mm_sms_properties_set_teleservice_id
+mm_sms_properties_get_service_category
+mm_sms_properties_set_service_category
<SUBSECTION Private>
mm_sms_properties_get_dictionary
mm_sms_properties_dup
@@ -977,6 +1143,7 @@ mm_modem_mode_build_string_from_mask
mm_modem_band_get_string
mm_modem_port_type_get_string
mm_modem_3gpp_registration_state_get_string
+mm_modem_3gpp_subscription_state_get_string
mm_modem_3gpp_facility_build_string_from_mask
mm_modem_3gpp_network_availability_get_string
mm_modem_3gpp_ussd_session_state_get_string
@@ -990,7 +1157,13 @@ mm_sms_state_get_string
mm_sms_delivery_state_get_string
mm_sms_storage_get_string
mm_sms_validity_type_get_string
+mm_sms_cdma_teleservice_id_get_string
+mm_sms_cdma_service_category_get_string
mm_firmware_image_type_get_string
+mm_oma_feature_build_string_from_mask
+mm_oma_session_type_get_string
+mm_oma_session_state_get_string
+mm_oma_session_state_failed_reason_get_string
<SUBSECTION Private>
mm_modem_capability_get_string
mm_modem_lock_build_string_from_mask
@@ -1006,6 +1179,8 @@ mm_sms_state_build_string_from_mask
mm_sms_delivery_state_build_string_from_mask
mm_sms_storage_build_string_from_mask
mm_sms_validity_type_build_string_from_mask
+mm_sms_cdma_teleservice_id_build_string_from_mask
+mm_sms_cdma_service_category_build_string_from_mask
mm_modem_location_source_get_string
mm_modem_contacts_storage_build_string_from_mask
mm_bearer_ip_family_build_string_from_mask
@@ -1015,11 +1190,16 @@ mm_modem_cdma_registration_state_build_string_from_mask
mm_modem_cdma_activation_state_build_string_from_mask
mm_modem_cdma_rm_protocol_build_string_from_mask
mm_modem_3gpp_registration_state_build_string_from_mask
+mm_modem_3gpp_subscription_state_build_string_from_mask
mm_modem_3gpp_facility_get_string
mm_modem_3gpp_network_availability_build_string_from_mask
mm_modem_3gpp_ussd_session_state_build_string_from_mask
mm_firmware_image_type_build_string_from_mask
mm_modem_port_type_build_string_from_mask
+mm_oma_feature_get_string
+mm_oma_session_type_build_string_from_mask
+mm_oma_session_state_build_string_from_mask
+mm_oma_session_state_failed_reason_build_string_from_mask
<SUBSECTION Standard>
MM_TYPE_BEARER_IP_FAMILY
MM_TYPE_BEARER_IP_METHOD
@@ -1028,6 +1208,7 @@ MM_TYPE_FIRMWARE_IMAGE_TYPE
MM_TYPE_MODEM_3GPP_FACILITY
MM_TYPE_MODEM_3GPP_NETWORK_AVAILABILITY
MM_TYPE_MODEM_3GPP_REGISTRATION_STATE
+MM_TYPE_MODEM_3GPP_SUBSCRIPTION_STATE
MM_TYPE_MODEM_3GPP_USSD_SESSION_STATE
MM_TYPE_MODEM_ACCESS_TECHNOLOGY
MM_TYPE_MODEM_BAND
@@ -1049,6 +1230,12 @@ MM_TYPE_SMS_PDU_TYPE
MM_TYPE_SMS_STATE
MM_TYPE_SMS_STORAGE
MM_TYPE_SMS_VALIDITY_TYPE
+MM_TYPE_SMS_CDMA_TELESERVICE_ID
+MM_TYPE_SMS_CDMA_SERVICE_CATEGORY
+MM_TYPE_OMA_FEATURE
+MM_TYPE_OMA_SESSION_STATE
+MM_TYPE_OMA_SESSION_STATE_FAILED_REASON
+MM_TYPE_OMA_SESSION_TYPE
mm_bearer_ip_family_get_type
mm_bearer_ip_method_get_type
mm_bearer_allowed_auth_get_type
@@ -1056,6 +1243,7 @@ mm_firmware_image_type_get_type
mm_modem_3gpp_facility_get_type
mm_modem_3gpp_network_availability_get_type
mm_modem_3gpp_registration_state_get_type
+mm_modem_3gpp_subscription_state_get_type
mm_modem_3gpp_ussd_session_state_get_type
mm_modem_access_technology_get_type
mm_modem_band_get_type
@@ -1077,6 +1265,12 @@ mm_sms_pdu_type_get_type
mm_sms_state_get_type
mm_sms_storage_get_type
mm_sms_validity_type_get_type
+mm_sms_cdma_teleservice_id_get_type
+mm_sms_cdma_service_category_get_type
+mm_oma_feature_get_type
+mm_oma_session_state_failed_reason_get_type
+mm_oma_session_state_get_type
+mm_oma_session_type_get_type
</SECTION>
<SECTION>
@@ -1274,6 +1468,7 @@ mm_gdbus_modem3gpp_dup_operator_code
mm_gdbus_modem3gpp_get_operator_name
mm_gdbus_modem3gpp_dup_operator_name
mm_gdbus_modem3gpp_get_enabled_facility_locks
+mm_gdbus_modem3gpp_get_subscription_state
<SUBSECTION Methods>
mm_gdbus_modem3gpp_call_register
mm_gdbus_modem3gpp_call_register_finish
@@ -1291,6 +1486,7 @@ mm_gdbus_modem3gpp_set_imei
mm_gdbus_modem3gpp_set_operator_code
mm_gdbus_modem3gpp_set_operator_name
mm_gdbus_modem3gpp_set_registration_state
+mm_gdbus_modem3gpp_set_subscription_state
<SUBSECTION Standard>
MM_GDBUS_IS_MODEM3GPP
MM_GDBUS_MODEM3GPP
@@ -1426,6 +1622,8 @@ MmGdbusModem
MmGdbusModemIface
<SUBSECTION Getters>
mm_gdbus_modem_get_access_technologies
+mm_gdbus_modem_get_bearers
+mm_gdbus_modem_dup_bearers
mm_gdbus_modem_get_current_modes
mm_gdbus_modem_dup_current_modes
mm_gdbus_modem_get_current_bands
@@ -1508,6 +1706,7 @@ mm_gdbus_modem_call_command_finish
mm_gdbus_modem_call_command_sync
<SUBSECTION Private>
mm_gdbus_modem_set_access_technologies
+mm_gdbus_modem_set_bearers
mm_gdbus_modem_set_current_modes
mm_gdbus_modem_set_current_bands
mm_gdbus_modem_set_current_capabilities
@@ -1766,6 +1965,8 @@ mm_gdbus_modem_location_skeleton_get_type
MmGdbusModemMessaging
MmGdbusModemMessagingIface
<SUBSECTION Getters>
+mm_gdbus_modem_messaging_get_messages
+mm_gdbus_modem_messaging_dup_messages
mm_gdbus_modem_messaging_get_supported_storages
mm_gdbus_modem_messaging_dup_supported_storages
mm_gdbus_modem_messaging_get_default_storage
@@ -1780,6 +1981,7 @@ mm_gdbus_modem_messaging_call_list
mm_gdbus_modem_messaging_call_list_finish
mm_gdbus_modem_messaging_call_list_sync
<SUBSECTION Private>
+mm_gdbus_modem_messaging_set_messages
mm_gdbus_modem_messaging_set_default_storage
mm_gdbus_modem_messaging_set_supported_storages
mm_gdbus_modem_messaging_emit_added
@@ -1975,6 +2177,91 @@ mm_gdbus_modem_firmware_skeleton_get_type
</SECTION>
<SECTION>
+<FILE>MmGdbusModemOma</FILE>
+<TITLE>MmGdbusModemOma</TITLE>
+MmGdbusModemOma
+MmGdbusModemOmaIface
+<SUBSECTION Getters>
+<SUBSECTION Methods>
+mm_gdbus_modem_oma_call_accept_network_initiated_session
+mm_gdbus_modem_oma_call_accept_network_initiated_session_finish
+mm_gdbus_modem_oma_call_accept_network_initiated_session_sync
+mm_gdbus_modem_oma_call_cancel_session
+mm_gdbus_modem_oma_call_cancel_session_finish
+mm_gdbus_modem_oma_call_cancel_session_sync
+mm_gdbus_modem_oma_call_setup
+mm_gdbus_modem_oma_call_setup_finish
+mm_gdbus_modem_oma_call_setup_sync
+mm_gdbus_modem_oma_call_start_client_initiated_session
+mm_gdbus_modem_oma_call_start_client_initiated_session_finish
+mm_gdbus_modem_oma_call_start_client_initiated_session_sync
+mm_gdbus_modem_oma_get_features
+mm_gdbus_modem_oma_get_session_state
+mm_gdbus_modem_oma_get_session_type
+mm_gdbus_modem_oma_get_pending_network_initiated_sessions
+mm_gdbus_modem_oma_dup_pending_network_initiated_sessions
+<SUBSECTION Private>
+mm_gdbus_modem_oma_set_pending_network_initiated_sessions
+mm_gdbus_modem_oma_set_features
+mm_gdbus_modem_oma_set_session_state
+mm_gdbus_modem_oma_set_session_type
+mm_gdbus_modem_oma_emit_session_state_changed
+mm_gdbus_modem_oma_complete_accept_network_initiated_session
+mm_gdbus_modem_oma_complete_cancel_session
+mm_gdbus_modem_oma_complete_setup
+mm_gdbus_modem_oma_complete_start_client_initiated_session
+mm_gdbus_modem_oma_interface_info
+mm_gdbus_modem_oma_override_properties
+<SUBSECTION Standard>
+MM_GDBUS_IS_MODEM_OMA
+MM_GDBUS_MODEM_OMA
+MM_GDBUS_MODEM_OMA_GET_IFACE
+MM_GDBUS_TYPE_MODEM_OMA
+mm_gdbus_modem_oma_get_type
+</SECTION>
+
+<SECTION>
+<FILE>MmGdbusModemOmaProxy</FILE>
+<TITLE>MmGdbusModemOmaProxy</TITLE>
+MmGdbusModemOmaProxy
+<SUBSECTION New>
+mm_gdbus_modem_oma_proxy_new
+mm_gdbus_modem_oma_proxy_new_finish
+mm_gdbus_modem_oma_proxy_new_for_bus
+mm_gdbus_modem_oma_proxy_new_for_bus_finish
+mm_gdbus_modem_oma_proxy_new_for_bus_sync
+mm_gdbus_modem_oma_proxy_new_sync
+<SUBSECTION Standard>
+MmGdbusModemOmaProxyClass
+MM_GDBUS_IS_MODEM_OMA_PROXY
+MM_GDBUS_IS_MODEM_OMA_PROXY_CLASS
+MM_GDBUS_MODEM_OMA_PROXY
+MM_GDBUS_MODEM_OMA_PROXY_CLASS
+MM_GDBUS_MODEM_OMA_PROXY_GET_CLASS
+MM_GDBUS_TYPE_MODEM_OMA_PROXY
+MmGdbusModemOmaProxyPrivate
+mm_gdbus_modem_oma_proxy_get_type
+</SECTION>
+
+<SECTION>
+<FILE>MmGdbusModemOmaSkeleton</FILE>
+<TITLE>MmGdbusModemOmaSkeleton</TITLE>
+MmGdbusModemOmaSkeleton
+<SUBSECTION New>
+mm_gdbus_modem_oma_skeleton_new
+<SUBSECTION Standard>
+MmGdbusModemOmaSkeletonClass
+MM_GDBUS_IS_MODEM_OMA_SKELETON
+MM_GDBUS_IS_MODEM_OMA_SKELETON_CLASS
+MM_GDBUS_MODEM_OMA_SKELETON
+MM_GDBUS_MODEM_OMA_SKELETON_CLASS
+MM_GDBUS_MODEM_OMA_SKELETON_GET_CLASS
+MM_GDBUS_TYPE_MODEM_OMA_SKELETON
+MmGdbusModemOmaSkeletonPrivate
+mm_gdbus_modem_oma_skeleton_get_type
+</SECTION>
+
+<SECTION>
<FILE>MmGdbusModemSimple</FILE>
<TITLE>MmGdbusModemSimple</TITLE>
MmGdbusModemSimple
@@ -2044,6 +2331,85 @@ MmGdbusModemSimpleSkeletonPrivate
mm_gdbus_modem_simple_skeleton_get_type
</SECTION>
+<SECTION>
+<FILE>MmGdbusModemSignal</FILE>
+<TITLE>MmGdbusModemSignal</TITLE>
+MmGdbusModemSignal
+MmGdbusModemSignalIface
+<SUBSECTION Getters>
+mm_gdbus_modem_signal_get_rate
+mm_gdbus_modem_signal_get_cdma
+mm_gdbus_modem_signal_get_evdo
+mm_gdbus_modem_signal_get_gsm
+mm_gdbus_modem_signal_get_umts
+mm_gdbus_modem_signal_get_lte
+mm_gdbus_modem_signal_dup_cdma
+mm_gdbus_modem_signal_dup_evdo
+mm_gdbus_modem_signal_dup_gsm
+mm_gdbus_modem_signal_dup_umts
+mm_gdbus_modem_signal_dup_lte
+<SUBSECTION Methods>
+mm_gdbus_modem_signal_call_setup
+mm_gdbus_modem_signal_call_setup_finish
+mm_gdbus_modem_signal_call_setup_sync
+<SUBSECTION Private>
+mm_gdbus_modem_signal_set_cdma
+mm_gdbus_modem_signal_set_evdo
+mm_gdbus_modem_signal_set_gsm
+mm_gdbus_modem_signal_set_lte
+mm_gdbus_modem_signal_set_rate
+mm_gdbus_modem_signal_set_umts
+mm_gdbus_modem_signal_complete_setup
+mm_gdbus_modem_signal_interface_info
+mm_gdbus_modem_signal_override_properties
+<SUBSECTION Standard>
+MM_GDBUS_IS_MODEM_SIGNAL
+MM_GDBUS_MODEM_SIGNAL
+MM_GDBUS_MODEM_SIGNAL_GET_IFACE
+MM_GDBUS_TYPE_MODEM_SIGNAL
+mm_gdbus_modem_signal_get_type
+</SECTION>
+
+<SECTION>
+<FILE>MmGdbusModemSignalProxy</FILE>
+<TITLE>MmGdbusModemSignalProxy</TITLE>
+MmGdbusModemSignalProxy
+<SUBSECTION New>
+mm_gdbus_modem_signal_proxy_new
+mm_gdbus_modem_signal_proxy_new_finish
+mm_gdbus_modem_signal_proxy_new_for_bus
+mm_gdbus_modem_signal_proxy_new_for_bus_finish
+mm_gdbus_modem_signal_proxy_new_for_bus_sync
+mm_gdbus_modem_signal_proxy_new_sync
+<SUBSECTION Standard>
+MmGdbusModemSignalProxyClass
+MM_GDBUS_IS_MODEM_SIGNAL_PROXY
+MM_GDBUS_IS_MODEM_SIGNAL_PROXY_CLASS
+MM_GDBUS_MODEM_SIGNAL_PROXY
+MM_GDBUS_MODEM_SIGNAL_PROXY_CLASS
+MM_GDBUS_MODEM_SIGNAL_PROXY_GET_CLASS
+MM_GDBUS_TYPE_MODEM_SIGNAL_PROXY
+MmGdbusModemSignalProxyPrivate
+mm_gdbus_modem_signal_proxy_get_type
+</SECTION>
+
+<SECTION>
+<FILE>MmGdbusModemSignalSkeleton</FILE>
+<TITLE>MmGdbusModemSignalSkeleton</TITLE>
+MmGdbusModemSignalSkeleton
+<SUBSECTION New>
+mm_gdbus_modem_signal_skeleton_new
+<SUBSECTION Standard>
+MmGdbusModemSignalSkeletonClass
+MM_GDBUS_IS_MODEM_SIGNAL_SKELETON
+MM_GDBUS_IS_MODEM_SIGNAL_SKELETON_CLASS
+MM_GDBUS_MODEM_SIGNAL_SKELETON
+MM_GDBUS_MODEM_SIGNAL_SKELETON_CLASS
+MM_GDBUS_MODEM_SIGNAL_SKELETON_GET_CLASS
+MM_GDBUS_TYPE_MODEM_SIGNAL_SKELETON
+MmGdbusModemSignalSkeletonPrivate
+mm_gdbus_modem_signal_skeleton_get_type
+</SECTION>
<SECTION>
<FILE>MmGdbusObject</FILE>
@@ -2067,8 +2433,12 @@ mm_gdbus_object_peek_modem_time
mm_gdbus_object_get_modem_time
mm_gdbus_object_peek_modem_firmware
mm_gdbus_object_get_modem_firmware
+mm_gdbus_object_peek_modem_oma
+mm_gdbus_object_get_modem_oma
mm_gdbus_object_peek_modem_simple
mm_gdbus_object_get_modem_simple
+mm_gdbus_object_peek_modem_signal
+mm_gdbus_object_get_modem_signal
<SUBSECTION Methods>
<SUBSECTION Private>
<SUBSECTION Standard>
@@ -2109,10 +2479,12 @@ mm_gdbus_object_skeleton_set_modem3gpp
mm_gdbus_object_skeleton_set_modem3gpp_ussd
mm_gdbus_object_skeleton_set_modem_cdma
mm_gdbus_object_skeleton_set_modem_firmware
+mm_gdbus_object_skeleton_set_modem_oma
mm_gdbus_object_skeleton_set_modem_location
mm_gdbus_object_skeleton_set_modem_messaging
mm_gdbus_object_skeleton_set_modem_simple
mm_gdbus_object_skeleton_set_modem_time
+mm_gdbus_object_skeleton_set_modem_signal
<SUBSECTION Standard>
MmGdbusObjectSkeletonClass
MM_GDBUS_IS_OBJECT_SKELETON
@@ -2258,6 +2630,8 @@ mm_gdbus_sms_dup_smsc
mm_gdbus_sms_get_validity
mm_gdbus_sms_dup_validity
mm_gdbus_sms_get_class
+mm_gdbus_sms_get_teleservice_id
+mm_gdbus_sms_get_service_category
mm_gdbus_sms_get_timestamp
mm_gdbus_sms_dup_timestamp
mm_gdbus_sms_get_discharge_timestamp
@@ -2273,6 +2647,8 @@ mm_gdbus_sms_call_store_finish
mm_gdbus_sms_call_store_sync
<SUBSECTION Private>
mm_gdbus_sms_set_class
+mm_gdbus_sms_set_teleservice_id
+mm_gdbus_sms_set_service_category
mm_gdbus_sms_set_data
mm_gdbus_sms_set_delivery_report_request
mm_gdbus_sms_set_delivery_state
diff --git a/docs/reference/libmm-glib/libmm-glib.types b/docs/reference/libmm-glib/libmm-glib.types
index 1864f00..1996156 100644
--- a/docs/reference/libmm-glib/libmm-glib.types
+++ b/docs/reference/libmm-glib/libmm-glib.types
@@ -5,10 +5,12 @@ mm_bearer_ip_family_get_type
mm_bearer_ip_method_get_type
mm_bearer_properties_get_type
mm_cdma_activation_error_get_type
+mm_cdma_manual_activation_properties_get_type
mm_connection_error_get_type
mm_core_error_get_type
mm_firmware_image_type_get_type
mm_firmware_properties_get_type
+mm_signal_get_type
mm_gdbus_bearer_get_type
mm_gdbus_bearer_proxy_get_type
mm_gdbus_bearer_skeleton_get_type
@@ -31,7 +33,13 @@ mm_gdbus_modem_location_skeleton_get_type
mm_gdbus_modem_messaging_get_type
mm_gdbus_modem_messaging_proxy_get_type
mm_gdbus_modem_messaging_skeleton_get_type
+mm_gdbus_modem_oma_get_type
+mm_gdbus_modem_oma_proxy_get_type
+mm_gdbus_modem_oma_skeleton_get_type
mm_gdbus_modem_proxy_get_type
+mm_gdbus_modem_signal_get_type
+mm_gdbus_modem_signal_proxy_get_type
+mm_gdbus_modem_signal_skeleton_get_type
mm_gdbus_modem_simple_get_type
mm_gdbus_modem_simple_proxy_get_type
mm_gdbus_modem_simple_skeleton_get_type
@@ -63,6 +71,7 @@ mm_modem_3gpp_facility_get_type
mm_modem_3gpp_get_type
mm_modem_3gpp_network_availability_get_type
mm_modem_3gpp_registration_state_get_type
+mm_modem_3gpp_subscription_state_get_type
mm_modem_3gpp_ussd_get_type
mm_modem_3gpp_ussd_session_state_get_type
mm_modem_access_technology_get_type
@@ -80,8 +89,10 @@ mm_modem_location_source_get_type
mm_modem_lock_get_type
mm_modem_messaging_get_type
mm_modem_mode_get_type
+mm_modem_oma_get_type
mm_modem_port_type_get_type
mm_modem_power_state_get_type
+mm_modem_signal_get_type
mm_modem_simple_get_type
mm_modem_state_change_reason_get_type
mm_modem_state_failed_reason_get_type
@@ -89,6 +100,10 @@ mm_modem_state_get_type
mm_modem_time_get_type
mm_network_timezone_get_type
mm_object_get_type
+mm_oma_feature_get_type
+mm_oma_session_state_failed_reason_get_type
+mm_oma_session_state_get_type
+mm_oma_session_type_get_type
mm_serial_error_get_type
mm_sim_get_type
mm_simple_connect_properties_get_type
diff --git a/docs/reference/libmm-glib/tmpl/MmGdbusModem.sgml b/docs/reference/libmm-glib/tmpl/MmGdbusModem.sgml
index 61687dd..5141302 100644
--- a/docs/reference/libmm-glib/tmpl/MmGdbusModem.sgml
+++ b/docs/reference/libmm-glib/tmpl/MmGdbusModem.sgml
@@ -152,6 +152,11 @@ MmGdbusModem
</para>
+<!-- ##### ARG MmGdbusModem:bearers ##### -->
+<para>
+
+</para>
+
<!-- ##### ARG MmGdbusModem:current-bands ##### -->
<para>
@@ -305,6 +310,7 @@ MmGdbusModem
@handle_set_current_modes:
@handle_set_power_state:
@get_access_technologies:
+@get_bearers:
@get_current_bands:
@get_current_capabilities:
@get_current_modes:
@@ -343,6 +349,24 @@ MmGdbusModem
@Returns:
+<!-- ##### FUNCTION mm_gdbus_modem_get_bearers ##### -->
+<para>
+
+</para>
+
+@object:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_dup_bearers ##### -->
+<para>
+
+</para>
+
+@object:
+@Returns:
+
+
<!-- ##### FUNCTION mm_gdbus_modem_get_current_modes ##### -->
<para>
diff --git a/docs/reference/libmm-glib/tmpl/MmGdbusModem3gpp.sgml b/docs/reference/libmm-glib/tmpl/MmGdbusModem3gpp.sgml
index c789867..f6b5bd8 100644
--- a/docs/reference/libmm-glib/tmpl/MmGdbusModem3gpp.sgml
+++ b/docs/reference/libmm-glib/tmpl/MmGdbusModem3gpp.sgml
@@ -72,6 +72,11 @@ MmGdbusModem3gpp
</para>
+<!-- ##### ARG MmGdbusModem3gpp:subscription-state ##### -->
+<para>
+
+</para>
+
<!-- ##### STRUCT MmGdbusModem3gppIface ##### -->
<para>
@@ -85,6 +90,7 @@ MmGdbusModem3gpp
@get_operator_code:
@get_operator_name:
@get_registration_state:
+@get_subscription_state:
<!-- ##### FUNCTION mm_gdbus_modem3gpp_get_registration_state ##### -->
<para>
@@ -158,6 +164,15 @@ MmGdbusModem3gpp
@Returns:
+<!-- ##### FUNCTION mm_gdbus_modem3gpp_get_subscription_state ##### -->
+<para>
+
+</para>
+
+@object:
+@Returns:
+
+
<!-- ##### FUNCTION mm_gdbus_modem3gpp_call_register ##### -->
<para>
diff --git a/docs/reference/libmm-glib/tmpl/MmGdbusModemMessaging.sgml b/docs/reference/libmm-glib/tmpl/MmGdbusModemMessaging.sgml
index e812ba8..34b1fe6 100644
--- a/docs/reference/libmm-glib/tmpl/MmGdbusModemMessaging.sgml
+++ b/docs/reference/libmm-glib/tmpl/MmGdbusModemMessaging.sgml
@@ -79,6 +79,11 @@ MmGdbusModemMessaging
</para>
+<!-- ##### ARG MmGdbusModemMessaging:messages ##### -->
+<para>
+
+</para>
+
<!-- ##### ARG MmGdbusModemMessaging:supported-storages ##### -->
<para>
@@ -94,10 +99,29 @@ MmGdbusModemMessaging
@handle_delete:
@handle_list:
@get_default_storage:
+@get_messages:
@get_supported_storages:
@added:
@deleted:
+<!-- ##### FUNCTION mm_gdbus_modem_messaging_get_messages ##### -->
+<para>
+
+</para>
+
+@object:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_messaging_dup_messages ##### -->
+<para>
+
+</para>
+
+@object:
+@Returns:
+
+
<!-- ##### FUNCTION mm_gdbus_modem_messaging_get_supported_storages ##### -->
<para>
diff --git a/docs/reference/libmm-glib/tmpl/MmGdbusModemOma.sgml b/docs/reference/libmm-glib/tmpl/MmGdbusModemOma.sgml
new file mode 100644
index 0000000..f56a8eb
--- /dev/null
+++ b/docs/reference/libmm-glib/tmpl/MmGdbusModemOma.sgml
@@ -0,0 +1,301 @@
+<!-- ##### SECTION Title ##### -->
+MmGdbusModemOma
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### STRUCT MmGdbusModemOma ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SIGNAL MmGdbusModemOma::handle-accept-network-initiated-session ##### -->
+<para>
+
+</para>
+
+@mmgdbusmodemoma: the object which received the signal.
+@arg1:
+@arg2:
+@arg3:
+@Returns:
+
+<!-- ##### SIGNAL MmGdbusModemOma::handle-cancel-session ##### -->
+<para>
+
+</para>
+
+@mmgdbusmodemoma: the object which received the signal.
+@arg1:
+@Returns:
+
+<!-- ##### SIGNAL MmGdbusModemOma::handle-setup ##### -->
+<para>
+
+</para>
+
+@mmgdbusmodemoma: the object which received the signal.
+@arg1:
+@arg2:
+@Returns:
+
+<!-- ##### SIGNAL MmGdbusModemOma::handle-start-client-initiated-session ##### -->
+<para>
+
+</para>
+
+@mmgdbusmodemoma: the object which received the signal.
+@arg1:
+@arg2:
+@Returns:
+
+<!-- ##### SIGNAL MmGdbusModemOma::session-state-changed ##### -->
+<para>
+
+</para>
+
+@mmgdbusmodemoma: the object which received the signal.
+@arg1:
+@arg2:
+@arg3:
+
+<!-- ##### ARG MmGdbusModemOma:features ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG MmGdbusModemOma:pending-network-initiated-sessions ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG MmGdbusModemOma:session-state ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG MmGdbusModemOma:session-type ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT MmGdbusModemOmaIface ##### -->
+<para>
+
+</para>
+
+@parent_iface:
+@handle_accept_network_initiated_session:
+@handle_cancel_session:
+@handle_setup:
+@handle_start_client_initiated_session:
+@get_features:
+@get_pending_network_initiated_sessions:
+@get_session_state:
+@get_session_type:
+@session_state_changed:
+
+<!-- ##### FUNCTION mm_gdbus_modem_oma_call_accept_network_initiated_session ##### -->
+<para>
+
+</para>
+
+@proxy:
+@arg_session_id:
+@arg_accept:
+@cancellable:
+@callback:
+@user_data:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_oma_call_accept_network_initiated_session_finish ##### -->
+<para>
+
+</para>
+
+@proxy:
+@res:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_oma_call_accept_network_initiated_session_sync ##### -->
+<para>
+
+</para>
+
+@proxy:
+@arg_session_id:
+@arg_accept:
+@cancellable:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_oma_call_cancel_session ##### -->
+<para>
+
+</para>
+
+@proxy:
+@cancellable:
+@callback:
+@user_data:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_oma_call_cancel_session_finish ##### -->
+<para>
+
+</para>
+
+@proxy:
+@res:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_oma_call_cancel_session_sync ##### -->
+<para>
+
+</para>
+
+@proxy:
+@cancellable:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_oma_call_setup ##### -->
+<para>
+
+</para>
+
+@proxy:
+@arg_features:
+@cancellable:
+@callback:
+@user_data:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_oma_call_setup_finish ##### -->
+<para>
+
+</para>
+
+@proxy:
+@res:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_oma_call_setup_sync ##### -->
+<para>
+
+</para>
+
+@proxy:
+@arg_features:
+@cancellable:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_oma_call_start_client_initiated_session ##### -->
+<para>
+
+</para>
+
+@proxy:
+@arg_session_type:
+@cancellable:
+@callback:
+@user_data:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_oma_call_start_client_initiated_session_finish ##### -->
+<para>
+
+</para>
+
+@proxy:
+@res:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_oma_call_start_client_initiated_session_sync ##### -->
+<para>
+
+</para>
+
+@proxy:
+@arg_session_type:
+@cancellable:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_oma_get_features ##### -->
+<para>
+
+</para>
+
+@object:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_oma_get_session_state ##### -->
+<para>
+
+</para>
+
+@object:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_oma_get_session_type ##### -->
+<para>
+
+</para>
+
+@object:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_oma_get_pending_network_initiated_sessions ##### -->
+<para>
+
+</para>
+
+@object:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_oma_dup_pending_network_initiated_sessions ##### -->
+<para>
+
+</para>
+
+@object:
+@Returns:
+
+
diff --git a/docs/reference/libmm-glib/tmpl/MmGdbusModemOmaProxy.sgml b/docs/reference/libmm-glib/tmpl/MmGdbusModemOmaProxy.sgml
new file mode 100644
index 0000000..9e848ff
--- /dev/null
+++ b/docs/reference/libmm-glib/tmpl/MmGdbusModemOmaProxy.sgml
@@ -0,0 +1,106 @@
+<!-- ##### SECTION Title ##### -->
+MmGdbusModemOmaProxy
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### STRUCT MmGdbusModemOmaProxy ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_oma_proxy_new ##### -->
+<para>
+
+</para>
+
+@connection:
+@flags:
+@name:
+@object_path:
+@cancellable:
+@callback:
+@user_data:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_oma_proxy_new_finish ##### -->
+<para>
+
+</para>
+
+@res:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_oma_proxy_new_for_bus ##### -->
+<para>
+
+</para>
+
+@bus_type:
+@flags:
+@name:
+@object_path:
+@cancellable:
+@callback:
+@user_data:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_oma_proxy_new_for_bus_finish ##### -->
+<para>
+
+</para>
+
+@res:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_oma_proxy_new_for_bus_sync ##### -->
+<para>
+
+</para>
+
+@bus_type:
+@flags:
+@name:
+@object_path:
+@cancellable:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_oma_proxy_new_sync ##### -->
+<para>
+
+</para>
+
+@connection:
+@flags:
+@name:
+@object_path:
+@cancellable:
+@error:
+@Returns:
+
+
diff --git a/docs/reference/libmm-glib/tmpl/MmGdbusModemOmaSkeleton.sgml b/docs/reference/libmm-glib/tmpl/MmGdbusModemOmaSkeleton.sgml
new file mode 100644
index 0000000..4776911
--- /dev/null
+++ b/docs/reference/libmm-glib/tmpl/MmGdbusModemOmaSkeleton.sgml
@@ -0,0 +1,39 @@
+<!-- ##### SECTION Title ##### -->
+MmGdbusModemOmaSkeleton
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### STRUCT MmGdbusModemOmaSkeleton ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_oma_skeleton_new ##### -->
+<para>
+
+</para>
+
+@void:
+@Returns:
+
+
diff --git a/docs/reference/libmm-glib/tmpl/MmGdbusModemSignal.sgml b/docs/reference/libmm-glib/tmpl/MmGdbusModemSignal.sgml
new file mode 100644
index 0000000..43cd001
--- /dev/null
+++ b/docs/reference/libmm-glib/tmpl/MmGdbusModemSignal.sgml
@@ -0,0 +1,218 @@
+<!-- ##### SECTION Title ##### -->
+MmGdbusModemSignal
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### STRUCT MmGdbusModemSignal ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SIGNAL MmGdbusModemSignal::handle-setup ##### -->
+<para>
+
+</para>
+
+@mmgdbusmodemsignal: the object which received the signal.
+@arg1:
+@arg2:
+@Returns:
+
+<!-- ##### ARG MmGdbusModemSignal:cdma ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG MmGdbusModemSignal:evdo ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG MmGdbusModemSignal:gsm ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG MmGdbusModemSignal:lte ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG MmGdbusModemSignal:rate ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG MmGdbusModemSignal:umts ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT MmGdbusModemSignalIface ##### -->
+<para>
+
+</para>
+
+@parent_iface:
+@handle_setup:
+@get_cdma:
+@get_evdo:
+@get_gsm:
+@get_lte:
+@get_rate:
+@get_umts:
+
+<!-- ##### FUNCTION mm_gdbus_modem_signal_get_rate ##### -->
+<para>
+
+</para>
+
+@object:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_signal_get_cdma ##### -->
+<para>
+
+</para>
+
+@object:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_signal_get_evdo ##### -->
+<para>
+
+</para>
+
+@object:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_signal_get_gsm ##### -->
+<para>
+
+</para>
+
+@object:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_signal_get_umts ##### -->
+<para>
+
+</para>
+
+@object:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_signal_get_lte ##### -->
+<para>
+
+</para>
+
+@object:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_signal_dup_cdma ##### -->
+<para>
+
+</para>
+
+@object:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_signal_dup_evdo ##### -->
+<para>
+
+</para>
+
+@object:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_signal_dup_gsm ##### -->
+<para>
+
+</para>
+
+@object:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_signal_dup_umts ##### -->
+<para>
+
+</para>
+
+@object:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_signal_dup_lte ##### -->
+<para>
+
+</para>
+
+@object:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_signal_call_setup ##### -->
+<para>
+
+</para>
+
+@proxy:
+@arg_rate:
+@cancellable:
+@callback:
+@user_data:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_signal_call_setup_finish ##### -->
+<para>
+
+</para>
+
+@proxy:
+@res:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_signal_call_setup_sync ##### -->
+<para>
+
+</para>
+
+@proxy:
+@arg_rate:
+@cancellable:
+@error:
+@Returns:
+
+
diff --git a/docs/reference/libmm-glib/tmpl/MmGdbusModemSignalProxy.sgml b/docs/reference/libmm-glib/tmpl/MmGdbusModemSignalProxy.sgml
new file mode 100644
index 0000000..1ad497c
--- /dev/null
+++ b/docs/reference/libmm-glib/tmpl/MmGdbusModemSignalProxy.sgml
@@ -0,0 +1,106 @@
+<!-- ##### SECTION Title ##### -->
+MmGdbusModemSignalProxy
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### STRUCT MmGdbusModemSignalProxy ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_signal_proxy_new ##### -->
+<para>
+
+</para>
+
+@connection:
+@flags:
+@name:
+@object_path:
+@cancellable:
+@callback:
+@user_data:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_signal_proxy_new_finish ##### -->
+<para>
+
+</para>
+
+@res:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_signal_proxy_new_for_bus ##### -->
+<para>
+
+</para>
+
+@bus_type:
+@flags:
+@name:
+@object_path:
+@cancellable:
+@callback:
+@user_data:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_signal_proxy_new_for_bus_finish ##### -->
+<para>
+
+</para>
+
+@res:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_signal_proxy_new_for_bus_sync ##### -->
+<para>
+
+</para>
+
+@bus_type:
+@flags:
+@name:
+@object_path:
+@cancellable:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_signal_proxy_new_sync ##### -->
+<para>
+
+</para>
+
+@connection:
+@flags:
+@name:
+@object_path:
+@cancellable:
+@error:
+@Returns:
+
+
diff --git a/docs/reference/libmm-glib/tmpl/MmGdbusModemSignalSkeleton.sgml b/docs/reference/libmm-glib/tmpl/MmGdbusModemSignalSkeleton.sgml
new file mode 100644
index 0000000..da906a7
--- /dev/null
+++ b/docs/reference/libmm-glib/tmpl/MmGdbusModemSignalSkeleton.sgml
@@ -0,0 +1,39 @@
+<!-- ##### SECTION Title ##### -->
+MmGdbusModemSignalSkeleton
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### STRUCT MmGdbusModemSignalSkeleton ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION mm_gdbus_modem_signal_skeleton_new ##### -->
+<para>
+
+</para>
+
+@void:
+@Returns:
+
+
diff --git a/docs/reference/libmm-glib/tmpl/MmGdbusObject.sgml b/docs/reference/libmm-glib/tmpl/MmGdbusObject.sgml
index cd9ad31..df8ca67 100644
--- a/docs/reference/libmm-glib/tmpl/MmGdbusObject.sgml
+++ b/docs/reference/libmm-glib/tmpl/MmGdbusObject.sgml
@@ -53,6 +53,16 @@ MmGdbusObject
</para>
+<!-- ##### ARG MmGdbusObject:modem-oma ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG MmGdbusObject:modem-signal ##### -->
+<para>
+
+</para>
+
<!-- ##### ARG MmGdbusObject:modem-simple ##### -->
<para>
@@ -224,6 +234,24 @@ MmGdbusObject
@Returns:
+<!-- ##### FUNCTION mm_gdbus_object_peek_modem_oma ##### -->
+<para>
+
+</para>
+
+@object:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_object_get_modem_oma ##### -->
+<para>
+
+</para>
+
+@object:
+@Returns:
+
+
<!-- ##### FUNCTION mm_gdbus_object_peek_modem_simple ##### -->
<para>
@@ -242,3 +270,21 @@ MmGdbusObject
@Returns:
+<!-- ##### FUNCTION mm_gdbus_object_peek_modem_signal ##### -->
+<para>
+
+</para>
+
+@object:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_object_get_modem_signal ##### -->
+<para>
+
+</para>
+
+@object:
+@Returns:
+
+
diff --git a/docs/reference/libmm-glib/tmpl/MmGdbusObjectSkeleton.sgml b/docs/reference/libmm-glib/tmpl/MmGdbusObjectSkeleton.sgml
index c9c538a..0db4c51 100644
--- a/docs/reference/libmm-glib/tmpl/MmGdbusObjectSkeleton.sgml
+++ b/docs/reference/libmm-glib/tmpl/MmGdbusObjectSkeleton.sgml
@@ -82,6 +82,15 @@ MmGdbusObjectSkeleton
@interface_:
+<!-- ##### FUNCTION mm_gdbus_object_skeleton_set_modem_oma ##### -->
+<para>
+
+</para>
+
+@object:
+@interface_:
+
+
<!-- ##### FUNCTION mm_gdbus_object_skeleton_set_modem_location ##### -->
<para>
@@ -118,3 +127,12 @@ MmGdbusObjectSkeleton
@interface_:
+<!-- ##### FUNCTION mm_gdbus_object_skeleton_set_modem_signal ##### -->
+<para>
+
+</para>
+
+@object:
+@interface_:
+
+
diff --git a/docs/reference/libmm-glib/tmpl/MmGdbusSms.sgml b/docs/reference/libmm-glib/tmpl/MmGdbusSms.sgml
index 8394bbb..d5b3938 100644
--- a/docs/reference/libmm-glib/tmpl/MmGdbusSms.sgml
+++ b/docs/reference/libmm-glib/tmpl/MmGdbusSms.sgml
@@ -87,6 +87,11 @@ MmGdbusSms
</para>
+<!-- ##### ARG MmGdbusSms:service-category ##### -->
+<para>
+
+</para>
+
<!-- ##### ARG MmGdbusSms:smsc ##### -->
<para>
@@ -102,6 +107,11 @@ MmGdbusSms
</para>
+<!-- ##### ARG MmGdbusSms:teleservice-id ##### -->
+<para>
+
+</para>
+
<!-- ##### ARG MmGdbusSms:text ##### -->
<para>
@@ -133,9 +143,11 @@ MmGdbusSms
@get_message_reference:
@get_number:
@get_pdu_type:
+@get_service_category:
@get_smsc:
@get_state:
@get_storage:
+@get_teleservice_id:
@get_text:
@get_timestamp:
@get_validity:
@@ -275,6 +287,24 @@ MmGdbusSms
@Returns:
+<!-- ##### FUNCTION mm_gdbus_sms_get_teleservice_id ##### -->
+<para>
+
+</para>
+
+@object:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_gdbus_sms_get_service_category ##### -->
+<para>
+
+</para>
+
+@object:
+@Returns:
+
+
<!-- ##### FUNCTION mm_gdbus_sms_get_timestamp ##### -->
<para>
diff --git a/docs/reference/libmm-glib/tmpl/mm-cdma-manual-activation-properties.sgml b/docs/reference/libmm-glib/tmpl/mm-cdma-manual-activation-properties.sgml
new file mode 100644
index 0000000..a65cf94
--- /dev/null
+++ b/docs/reference/libmm-glib/tmpl/mm-cdma-manual-activation-properties.sgml
@@ -0,0 +1,208 @@
+<!-- ##### SECTION Title ##### -->
+MMCdmaManualActivationProperties
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### STRUCT MMCdmaManualActivationProperties ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION mm_cdma_manual_activation_properties_new ##### -->
+<para>
+
+</para>
+
+@void:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_cdma_manual_activation_properties_get_spc ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_cdma_manual_activation_properties_set_spc ##### -->
+<para>
+
+</para>
+
+@self:
+@spc:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_cdma_manual_activation_properties_get_sid ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_cdma_manual_activation_properties_set_sid ##### -->
+<para>
+
+</para>
+
+@self:
+@sid:
+
+
+<!-- ##### FUNCTION mm_cdma_manual_activation_properties_get_mdn ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_cdma_manual_activation_properties_set_mdn ##### -->
+<para>
+
+</para>
+
+@self:
+@mdn:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_cdma_manual_activation_properties_get_min ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_cdma_manual_activation_properties_set_min ##### -->
+<para>
+
+</para>
+
+@self:
+@min:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_cdma_manual_activation_properties_get_mn_ha_key ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_cdma_manual_activation_properties_set_mn_ha_key ##### -->
+<para>
+
+</para>
+
+@self:
+@mn_ha_key:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_cdma_manual_activation_properties_get_mn_aaa_key ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_cdma_manual_activation_properties_set_mn_aaa_key ##### -->
+<para>
+
+</para>
+
+@self:
+@mn_aaa_key:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_cdma_manual_activation_properties_get_prl ##### -->
+<para>
+
+</para>
+
+@self:
+@prl_len:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_cdma_manual_activation_properties_peek_prl_bytearray ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_cdma_manual_activation_properties_get_prl_bytearray ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_cdma_manual_activation_properties_set_prl ##### -->
+<para>
+
+</para>
+
+@self:
+@prl:
+@prl_length:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_cdma_manual_activation_properties_set_prl_bytearray ##### -->
+<para>
+
+</para>
+
+@self:
+@prl:
+@error:
+@Returns:
+
+
diff --git a/docs/reference/libmm-glib/tmpl/mm-enums-types.sgml b/docs/reference/libmm-glib/tmpl/mm-enums-types.sgml
index c056956..abbdc5f 100644
--- a/docs/reference/libmm-glib/tmpl/mm-enums-types.sgml
+++ b/docs/reference/libmm-glib/tmpl/mm-enums-types.sgml
@@ -148,6 +148,15 @@ Flags and Enumerations
@Returns:
+<!-- ##### FUNCTION mm_modem_3gpp_subscription_state_get_string ##### -->
+<para>
+
+</para>
+
+@val:
+@Returns:
+
+
<!-- ##### FUNCTION mm_modem_3gpp_facility_build_string_from_mask ##### -->
<para>
@@ -265,6 +274,24 @@ Flags and Enumerations
@Returns:
+<!-- ##### FUNCTION mm_sms_cdma_teleservice_id_get_string ##### -->
+<para>
+
+</para>
+
+@val:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_sms_cdma_service_category_get_string ##### -->
+<para>
+
+</para>
+
+@val:
+@Returns:
+
+
<!-- ##### FUNCTION mm_firmware_image_type_get_string ##### -->
<para>
@@ -274,3 +301,39 @@ Flags and Enumerations
@Returns:
+<!-- ##### FUNCTION mm_oma_feature_build_string_from_mask ##### -->
+<para>
+
+</para>
+
+@mask:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_oma_session_type_get_string ##### -->
+<para>
+
+</para>
+
+@val:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_oma_session_state_get_string ##### -->
+<para>
+
+</para>
+
+@val:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_oma_session_state_failed_reason_get_string ##### -->
+<para>
+
+</para>
+
+@val:
+@Returns:
+
+
diff --git a/docs/reference/libmm-glib/tmpl/mm-modem-3gpp.sgml b/docs/reference/libmm-glib/tmpl/mm-modem-3gpp.sgml
index 4e7862b..8b3b266 100644
--- a/docs/reference/libmm-glib/tmpl/mm-modem-3gpp.sgml
+++ b/docs/reference/libmm-glib/tmpl/mm-modem-3gpp.sgml
@@ -177,6 +177,15 @@ MMModem3gpp
@Returns:
+<!-- ##### FUNCTION mm_modem_3gpp_get_subscription_state ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
<!-- ##### FUNCTION mm_modem_3gpp_register ##### -->
<para>
diff --git a/docs/reference/libmm-glib/tmpl/mm-modem-cdma.sgml b/docs/reference/libmm-glib/tmpl/mm-modem-cdma.sgml
index 369a71a..209b6bd 100644
--- a/docs/reference/libmm-glib/tmpl/mm-modem-cdma.sgml
+++ b/docs/reference/libmm-glib/tmpl/mm-modem-cdma.sgml
@@ -176,3 +176,38 @@ MMModemCdma
@Returns:
+<!-- ##### FUNCTION mm_modem_cdma_activate_manual ##### -->
+<para>
+
+</para>
+
+@self:
+@properties:
+@cancellable:
+@callback:
+@user_data:
+
+
+<!-- ##### FUNCTION mm_modem_cdma_activate_manual_finish ##### -->
+<para>
+
+</para>
+
+@self:
+@res:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_modem_cdma_activate_manual_sync ##### -->
+<para>
+
+</para>
+
+@self:
+@properties:
+@cancellable:
+@error:
+@Returns:
+
+
diff --git a/docs/reference/libmm-glib/tmpl/mm-modem-oma.sgml b/docs/reference/libmm-glib/tmpl/mm-modem-oma.sgml
new file mode 100644
index 0000000..0cfa6d1
--- /dev/null
+++ b/docs/reference/libmm-glib/tmpl/mm-modem-oma.sgml
@@ -0,0 +1,245 @@
+<!-- ##### SECTION Title ##### -->
+MMModemOma
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### STRUCT MMModemOma ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT MMOmaPendingNetworkInitiatedSession ##### -->
+<para>
+
+</para>
+
+@session_type:
+@session_id:
+
+<!-- ##### FUNCTION mm_modem_oma_get_path ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_modem_oma_dup_path ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_modem_oma_setup ##### -->
+<para>
+
+</para>
+
+@self:
+@features:
+@cancellable:
+@callback:
+@user_data:
+
+
+<!-- ##### FUNCTION mm_modem_oma_setup_finish ##### -->
+<para>
+
+</para>
+
+@self:
+@res:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_modem_oma_setup_sync ##### -->
+<para>
+
+</para>
+
+@self:
+@features:
+@cancellable:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_modem_oma_start_client_initiated_session ##### -->
+<para>
+
+</para>
+
+@self:
+@session_type:
+@cancellable:
+@callback:
+@user_data:
+
+
+<!-- ##### FUNCTION mm_modem_oma_start_client_initiated_session_finish ##### -->
+<para>
+
+</para>
+
+@self:
+@res:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_modem_oma_start_client_initiated_session_sync ##### -->
+<para>
+
+</para>
+
+@self:
+@session_type:
+@cancellable:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_modem_oma_accept_network_initiated_session ##### -->
+<para>
+
+</para>
+
+@self:
+@session_id:
+@accept:
+@cancellable:
+@callback:
+@user_data:
+
+
+<!-- ##### FUNCTION mm_modem_oma_accept_network_initiated_session_finish ##### -->
+<para>
+
+</para>
+
+@self:
+@res:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_modem_oma_accept_network_initiated_session_sync ##### -->
+<para>
+
+</para>
+
+@self:
+@session_id:
+@accept:
+@cancellable:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_modem_oma_cancel_session ##### -->
+<para>
+
+</para>
+
+@self:
+@cancellable:
+@callback:
+@user_data:
+
+
+<!-- ##### FUNCTION mm_modem_oma_cancel_session_finish ##### -->
+<para>
+
+</para>
+
+@self:
+@res:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_modem_oma_cancel_session_sync ##### -->
+<para>
+
+</para>
+
+@self:
+@cancellable:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_modem_oma_get_features ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_modem_oma_get_session_type ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_modem_oma_get_session_state ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_modem_peek_pending_network_initiated_sessions ##### -->
+<para>
+
+</para>
+
+@self:
+@sessions:
+@n_sessions:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_modem_get_pending_network_initiated_sessions ##### -->
+<para>
+
+</para>
+
+@self:
+@sessions:
+@n_sessions:
+@Returns:
+
+
diff --git a/docs/reference/libmm-glib/tmpl/mm-modem-signal.sgml b/docs/reference/libmm-glib/tmpl/mm-modem-signal.sgml
new file mode 100644
index 0000000..0b300d7
--- /dev/null
+++ b/docs/reference/libmm-glib/tmpl/mm-modem-signal.sgml
@@ -0,0 +1,182 @@
+<!-- ##### SECTION Title ##### -->
+MMModemSignal
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### STRUCT MMModemSignal ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION mm_modem_signal_get_path ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_modem_signal_dup_path ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_modem_signal_get_rate ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_modem_signal_peek_cdma ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_modem_signal_get_cdma ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_modem_signal_peek_evdo ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_modem_signal_get_evdo ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_modem_signal_peek_gsm ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_modem_signal_get_gsm ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_modem_signal_peek_umts ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_modem_signal_get_umts ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_modem_signal_peek_lte ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_modem_signal_get_lte ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_modem_signal_setup ##### -->
+<para>
+
+</para>
+
+@self:
+@rate:
+@cancellable:
+@callback:
+@user_data:
+
+
+<!-- ##### FUNCTION mm_modem_signal_setup_finish ##### -->
+<para>
+
+</para>
+
+@self:
+@res:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_modem_signal_setup_sync ##### -->
+<para>
+
+</para>
+
+@self:
+@rate:
+@cancellable:
+@error:
+@Returns:
+
+
diff --git a/docs/reference/libmm-glib/tmpl/mm-modem.sgml b/docs/reference/libmm-glib/tmpl/mm-modem.sgml
index ecc3cc5..f051488 100644
--- a/docs/reference/libmm-glib/tmpl/mm-modem.sgml
+++ b/docs/reference/libmm-glib/tmpl/mm-modem.sgml
@@ -349,6 +349,24 @@ MMModem
@Returns:
+<!-- ##### FUNCTION mm_modem_get_bearer_paths ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_modem_dup_bearer_paths ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
<!-- ##### FUNCTION mm_modem_get_own_numbers ##### -->
<para>
diff --git a/docs/reference/libmm-glib/tmpl/mm-object.sgml b/docs/reference/libmm-glib/tmpl/mm-object.sgml
index c8045ce..33671a5 100644
--- a/docs/reference/libmm-glib/tmpl/mm-object.sgml
+++ b/docs/reference/libmm-glib/tmpl/mm-object.sgml
@@ -190,6 +190,24 @@ MMObject
@Returns:
+<!-- ##### FUNCTION mm_object_peek_modem_oma ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_object_get_modem_oma ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
<!-- ##### FUNCTION mm_object_peek_modem_simple ##### -->
<para>
@@ -208,3 +226,21 @@ MMObject
@Returns:
+<!-- ##### FUNCTION mm_object_peek_modem_signal ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_object_get_modem_signal ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
diff --git a/docs/reference/libmm-glib/tmpl/mm-signal.sgml b/docs/reference/libmm-glib/tmpl/mm-signal.sgml
new file mode 100644
index 0000000..c29f6d9
--- /dev/null
+++ b/docs/reference/libmm-glib/tmpl/mm-signal.sgml
@@ -0,0 +1,100 @@
+<!-- ##### SECTION Title ##### -->
+MMSignal
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### STRUCT MMSignal ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO MM_SIGNAL_UNKNOWN ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION mm_signal_get_rssi ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_signal_get_ecio ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_signal_get_sinr ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_signal_get_io ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_signal_get_rsrp ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_signal_get_rsrq ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_signal_get_snr ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
diff --git a/docs/reference/libmm-glib/tmpl/mm-simple-status.sgml b/docs/reference/libmm-glib/tmpl/mm-simple-status.sgml
index 9820252..bae35a9 100644
--- a/docs/reference/libmm-glib/tmpl/mm-simple-status.sgml
+++ b/docs/reference/libmm-glib/tmpl/mm-simple-status.sgml
@@ -73,6 +73,11 @@ MMSimpleStatus
</para>
+<!-- ##### ARG MMSimpleStatus:m3gpp-subscription-state ##### -->
+<para>
+
+</para>
+
<!-- ##### ARG MMSimpleStatus:signal-quality ##### -->
<para>
@@ -148,6 +153,15 @@ MMSimpleStatus
@Returns:
+<!-- ##### FUNCTION mm_simple_status_get_3gpp_subscription_state ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
<!-- ##### FUNCTION mm_simple_status_get_cdma_cdma1x_registration_state ##### -->
<para>
diff --git a/docs/reference/libmm-glib/tmpl/mm-sms-properties.sgml b/docs/reference/libmm-glib/tmpl/mm-sms-properties.sgml
index 894063e..c95f025 100644
--- a/docs/reference/libmm-glib/tmpl/mm-sms-properties.sgml
+++ b/docs/reference/libmm-glib/tmpl/mm-sms-properties.sgml
@@ -201,3 +201,39 @@ MMSmsProperties
@request:
+<!-- ##### FUNCTION mm_sms_properties_get_teleservice_id ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_sms_properties_set_teleservice_id ##### -->
+<para>
+
+</para>
+
+@self:
+@teleservice_id:
+
+
+<!-- ##### FUNCTION mm_sms_properties_get_service_category ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_sms_properties_set_service_category ##### -->
+<para>
+
+</para>
+
+@self:
+@service_category:
+
+
diff --git a/docs/reference/libmm-glib/tmpl/mm-sms.sgml b/docs/reference/libmm-glib/tmpl/mm-sms.sgml
index ef57d4e..026f281 100644
--- a/docs/reference/libmm-glib/tmpl/mm-sms.sgml
+++ b/docs/reference/libmm-glib/tmpl/mm-sms.sgml
@@ -165,6 +165,24 @@ MMSms
@Returns:
+<!-- ##### FUNCTION mm_sms_get_teleservice_id ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
+<!-- ##### FUNCTION mm_sms_get_service_category ##### -->
+<para>
+
+</para>
+
+@self:
+@Returns:
+
+
<!-- ##### FUNCTION mm_sms_get_validity_type ##### -->
<para>
diff --git a/gtk-doc.make b/gtk-doc.make
index 6664c16..3b5bed0 100644
--- a/gtk-doc.make
+++ b/gtk-doc.make
@@ -74,33 +74,42 @@ $(REPORT_FILES): sgml-build.stamp
#### setup ####
+GTK_DOC_V_SETUP=$(GTK_DOC_V_SETUP_$(V))
+GTK_DOC_V_SETUP_=$(GTK_DOC_V_SETUP_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_SETUP_0=@echo " DOC Preparing build";
+
setup-build.stamp:
- -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
- echo ' DOC Preparing build'; \
+ -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \
if test "x$$files" != "x" ; then \
for file in $$files ; do \
test -f $(abs_srcdir)/$$file && \
- cp -pu $(abs_srcdir)/$$file $(abs_builddir)/ || true; \
+ cp -pu $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \
done; \
fi; \
test -d $(abs_srcdir)/tmpl && \
{ cp -rp $(abs_srcdir)/tmpl $(abs_builddir)/; \
chmod -R u+w $(abs_builddir)/tmpl; } \
fi
- @touch setup-build.stamp
+ $(AM_V_at)touch setup-build.stamp
#### scan ####
+GTK_DOC_V_SCAN=$(GTK_DOC_V_SCAN_$(V))
+GTK_DOC_V_SCAN_=$(GTK_DOC_V_SCAN_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_SCAN_0=@echo " DOC Scanning header files";
+
+GTK_DOC_V_INTROSPECT=$(GTK_DOC_V_INTROSPECT_$(V))
+GTK_DOC_V_INTROSPECT_=$(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_INTROSPECT_0=@echo " DOC Introspecting gobjects";
+
scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
- @echo ' DOC Scanning header files'
- @_source_dir='' ; \
+ $(GTK_DOC_V_SCAN)_source_dir='' ; \
for i in $(DOC_SOURCE_DIR) ; do \
_source_dir="$${_source_dir} --source-dir=$$i" ; \
done ; \
gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)
- @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
- echo " DOC Introspecting gobjects"; \
+ $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
scanobj_options=""; \
gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \
if test "$(?)" = "0"; then \
@@ -115,22 +124,25 @@ scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
test -f $$i || touch $$i ; \
done \
fi
- @touch scan-build.stamp
+ $(AM_V_at)touch scan-build.stamp
$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp
@true
#### templates ####
+GTK_DOC_V_TMPL=$(GTK_DOC_V_TMPL_$(V))
+GTK_DOC_V_TMPL_=$(GTK_DOC_V_TMPL_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_TMPL_0=@echo " DOC Rebuilding template files";
+
tmpl-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
- @echo ' DOC Rebuilding template files'
- @gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS)
- @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
+ $(GTK_DOC_V_TMPL)gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS)
+ $(AM_V_at)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
if test -w $(abs_srcdir) ; then \
cp -rp $(abs_builddir)/tmpl $(abs_srcdir)/; \
fi \
fi
- @touch tmpl-build.stamp
+ $(AM_V_at)touch tmpl-build.stamp
tmpl.stamp: tmpl-build.stamp
@true
@@ -140,26 +152,34 @@ $(srcdir)/tmpl/*.sgml:
#### xml ####
+GTK_DOC_V_XML=$(GTK_DOC_V_XML_$(V))
+GTK_DOC_V_XML_=$(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_XML_0=@echo " DOC Building XML";
+
sgml-build.stamp: tmpl.stamp $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files)
- @echo ' DOC Building XML'
- @-chmod -R u+w $(srcdir)
- @_source_dir='' ; \
+ $(GTK_DOC_V_XML)-chmod -R u+w $(srcdir) && _source_dir='' ; \
for i in $(DOC_SOURCE_DIR) ; do \
_source_dir="$${_source_dir} --source-dir=$$i" ; \
done ; \
gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS)
- @touch sgml-build.stamp
+ $(AM_V_at)touch sgml-build.stamp
sgml.stamp: sgml-build.stamp
@true
#### html ####
+GTK_DOC_V_HTML=$(GTK_DOC_V_HTML_$(V))
+GTK_DOC_V_HTML_=$(GTK_DOC_V_HTML_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_HTML_0=@echo " DOC Building HTML";
+
+GTK_DOC_V_XREF=$(GTK_DOC_V_XREF_$(V))
+GTK_DOC_V_XREF_=$(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_XREF_0=@echo " DOC Fixing cross-references";
+
html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
- @echo ' DOC Building HTML'
- @rm -rf html
- @mkdir html
- @mkhtml_options=""; \
+ $(GTK_DOC_V_HTML)rm -rf html && mkdir html && \
+ mkhtml_options=""; \
gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \
if test "$(?)" = "0"; then \
if test "x$(V)" = "x1"; then \
@@ -180,16 +200,18 @@ html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
cp $(abs_builddir)/$$file $(abs_builddir)/html; \
fi; \
done;
- @echo ' DOC Fixing cross-references'
- @gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
- @touch html-build.stamp
+ $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
+ $(AM_V_at)touch html-build.stamp
#### pdf ####
+GTK_DOC_V_PDF=$(GTK_DOC_V_PDF_$(V))
+GTK_DOC_V_PDF_=$(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_PDF_0=@echo " DOC Building PDF";
+
pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
- @echo ' DOC Building PDF'
- @rm -f $(DOC_MODULE).pdf
- @mkpdf_options=""; \
+ $(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \
+ mkpdf_options=""; \
gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \
if test "$(?)" = "0"; then \
if test "x$(V)" = "x1"; then \
@@ -206,7 +228,7 @@ pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
done; \
fi; \
gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)
- @touch pdf-build.stamp
+ $(AM_V_at)touch pdf-build.stamp
##############
diff --git a/include/Makefile.in b/include/Makefile.in
index 5968e98..50ee16a 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -85,12 +85,13 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \
$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
- $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
- $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/introspection.m4 \
+ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
@@ -224,6 +225,14 @@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
@@ -290,6 +299,9 @@ STRIP = @STRIP@
SYSTEMD_UNIT_DIR = @SYSTEMD_UNIT_DIR@
UDEV_BASE_DIR = @UDEV_BASE_DIR@
USE_NLS = @USE_NLS@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
diff --git a/include/ModemManager-enums.h b/include/ModemManager-enums.h
index f90b223..fd3e982 100644
--- a/include/ModemManager-enums.h
+++ b/include/ModemManager-enums.h
@@ -419,17 +419,29 @@ typedef enum { /*< underscore_name=mm_modem_port_type >*/
/**
* MMSmsPduType:
* @MM_SMS_PDU_TYPE_UNKNOWN: Unknown type.
- * @MM_SMS_PDU_TYPE_DELIVER: SMS has been received from the SMSC.
- * @MM_SMS_PDU_TYPE_SUBMIT: SMS is sent, or to be sent to the SMSC.
- * @MM_SMS_PDU_TYPE_STATUS_REPORT: SMS is a status report received from the SMSC.
+ * @MM_SMS_PDU_TYPE_DELIVER: 3GPP Mobile-Terminated (MT) message.
+ * @MM_SMS_PDU_TYPE_SUBMIT: 3GPP Mobile-Originated (MO) message.
+ * @MM_SMS_PDU_TYPE_STATUS_REPORT: 3GPP status report (MT).
+ * @MM_SMS_PDU_TYPE_CDMA_DELIVER: 3GPP2 Mobile-Terminated (MT) message.
+ * @MM_SMS_PDU_TYPE_CDMA_SUBMIT: 3GPP2 Mobile-Originated (MO) message.
+ * @MM_SMS_PDU_TYPE_CDMA_CANCELLATION: 3GPP2 Cancellation (MO) message.
+ * @MM_SMS_PDU_TYPE_CDMA_DELIVERY_ACKNOWLEDGEMENT: 3GPP2 Delivery Acknowledgement (MT) message.
+ * @MM_SMS_PDU_TYPE_CDMA_USER_ACKNOWLEDGEMENT: 3GPP2 User Acknowledgement (MT or MO) message.
+ * @MM_SMS_PDU_TYPE_CDMA_READ_ACKNOWLEDGEMENT: 3GPP2 Read Acknowledgement (MT or MO) message.
*
* Type of PDUs used in the SMS.
*/
typedef enum { /*< underscore_name=mm_sms_pdu_type >*/
- MM_SMS_PDU_TYPE_UNKNOWN = 0,
+ MM_SMS_PDU_TYPE_UNKNOWN = 0,
MM_SMS_PDU_TYPE_DELIVER = 1,
MM_SMS_PDU_TYPE_SUBMIT = 2,
- MM_SMS_PDU_TYPE_STATUS_REPORT = 3
+ MM_SMS_PDU_TYPE_STATUS_REPORT = 3,
+ MM_SMS_PDU_TYPE_CDMA_DELIVER = 32,
+ MM_SMS_PDU_TYPE_CDMA_SUBMIT = 33,
+ MM_SMS_PDU_TYPE_CDMA_CANCELLATION = 34,
+ MM_SMS_PDU_TYPE_CDMA_DELIVERY_ACKNOWLEDGEMENT = 35,
+ MM_SMS_PDU_TYPE_CDMA_USER_ACKNOWLEDGEMENT = 36,
+ MM_SMS_PDU_TYPE_CDMA_READ_ACKNOWLEDGEMENT = 37,
} MMSmsPduType;
/**
@@ -480,12 +492,71 @@ typedef enum { /*< underscore_name=mm_sms_state >*/
* @MM_SMS_DELIVERY_STATE_TEMPORARY_FATAL_ERROR_QOS_NOT_AVAILABLE: Permanent error, QoS not available.
* @MM_SMS_DELIVERY_STATE_TEMPORARY_FATAL_ERROR_IN_SME: Permanent error in SME.
* @MM_SMS_DELIVERY_STATE_UNKNOWN: Unknown state.
+ * @MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_ADDRESS_VACANT: Permanent error in network, address vacant.
+ * @MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_ADDRESS_TRANSLATION_FAILURE: Permanent error in network, address translation failure.
+ * @MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_NETWORK_RESOURCE_OUTAGE: Permanent error in network, network resource outage.
+ * @MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_NETWORK_FAILURE: Permanent error in network, network failure.
+ * @MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_INVALID_TELESERVICE_ID: Permanent error in network, invalid teleservice id.
+ * @MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_OTHER: Permanent error, other network problem.
+ * @MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_NO_PAGE_RESPONSE: Permanent error in terminal, no page response.
+ * @MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_DESTINATION_BUSY: Permanent error in terminal, destination busy.
+ * @MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_NO_ACKNOWLEDGMENT: Permanent error in terminal, no acknowledgement.
+ * @MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_DESTINATION_RESOURCE_SHORTAGE: Permanent error in terminal, destination resource shortage.
+ * @MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_SMS_DELIVERY_POSTPONED: Permanent error in terminal, SMS delivery postponed.
+ * @MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_DESTINATION_OUT_OF_SERVICE: Permanent error in terminal, destination out of service.
+ * @MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_DESTINATION_NO_LONGER_AT_THIS_ADDRESS: Permanent error in terminal, destination no longer at this address.
+ * @MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_OTHER: Permanent error, other terminal problem.
+ * @MM_SMS_DELIVERY_STATE_RADIO_INTERFACE_PROBLEM_RESOURCE_SHORTAGE: Permanent error in radio interface, resource shortage.
+ * @MM_SMS_DELIVERY_STATE_RADIO_INTERFACE_PROBLEM_INCOMPATIBILITY: Permanent error in radio interface, problem incompatibility.
+ * @MM_SMS_DELIVERY_STATE_RADIO_INTERFACE_PROBLEM_OTHER: Permanent error, other radio interface problem.
+ * @MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_ENCODING: Permanent error, encoding.
+ * @MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_SMS_ORIGINATION_DENIED: Permanent error, SMS origination denied.
+ * @MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_SMS_TERMINATION_DENIED: Permanent error, SMS termination denied.
+ * @MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_SUPPLEMENTARY_SERVICE_NOT_SUPPORTED: Permanent error, supplementary service not supported.
+ * @MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_SMS_NOT_SUPPORTED: Permanent error, SMS not supported.
+ * @MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_MISSING_EXPECTED_PARAMETER: Permanent error, missing expected parameter.
+ * @MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_MISSING_MANDATORY_PARAMETER: Permanent error, missing mandatory parameter.
+ * @MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_UNRECOGNIZED_PARAMETER_VALUE: Permanent error, unrecognized parameter value.
+ * @MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_UNEXPECTED_PARAMETER_VALUE: Permanent error, unexpected parameter value.
+ * @MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_USER_DATA_SIZE_ERROR: Permanent error, user data size error.
+ * @MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_OTHER: Permanent error, other general problem.
+ * @MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_ADDRESS_VACANT: Temporary error in network, address vacant.
+ * @MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_ADDRESS_TRANSLATION_FAILURE: Temporary error in network, address translation failure.
+ * @MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_NETWORK_RESOURCE_OUTAGE: Temporary error in network, network resource outage.
+ * @MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_NETWORK_FAILURE: Temporary error in network, network failure.
+ * @MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_INVALID_TELESERVICE_ID: Temporary error in network, invalid teleservice id.
+ * @MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_OTHER: Temporary error, other network problem.
+ * @MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_NO_PAGE_RESPONSE: Temporary error in terminal, no page response.
+ * @MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_DESTINATION_BUSY: Temporary error in terminal, destination busy.
+ * @MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_NO_ACKNOWLEDGMENT: Temporary error in terminal, no acknowledgement.
+ * @MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_DESTINATION_RESOURCE_SHORTAGE: Temporary error in terminal, destination resource shortage.
+ * @MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_SMS_DELIVERY_POSTPONED: Temporary error in terminal, SMS delivery postponed.
+ * @MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_DESTINATION_OUT_OF_SERVICE: Temporary error in terminal, destination out of service.
+ * @MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_DESTINATION_NO_LONGER_AT_THIS_ADDRESS: Temporary error in terminal, destination no longer at this address.
+ * @MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_OTHER: Temporary error, other terminal problem.
+ * @MM_SMS_DELIVERY_STATE_TEMPORARY_RADIO_INTERFACE_PROBLEM_RESOURCE_SHORTAGE: Temporary error in radio interface, resource shortage.
+ * @MM_SMS_DELIVERY_STATE_TEMPORARY_RADIO_INTERFACE_PROBLEM_INCOMPATIBILITY: Temporary error in radio interface, problem incompatibility.
+ * @MM_SMS_DELIVERY_STATE_TEMPORARY_RADIO_INTERFACE_PROBLEM_OTHER: Temporary error, other radio interface problem.
+ * @MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_ENCODING: Temporary error, encoding.
+ * @MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_SMS_ORIGINATION_DENIED: Temporary error, SMS origination denied.
+ * @MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_SMS_TERMINATION_DENIED: Temporary error, SMS termination denied.
+ * @MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_SUPPLEMENTARY_SERVICE_NOT_SUPPORTED: Temporary error, supplementary service not supported.
+ * @MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_SMS_NOT_SUPPORTED: Temporary error, SMS not supported.
+ * @MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_MISSING_EXPECTED_PARAMETER: Temporary error, missing expected parameter.
+ * @MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_MISSING_MANDATORY_PARAMETER: Temporary error, missing mandatory parameter.
+ * @MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_UNRECOGNIZED_PARAMETER_VALUE: Temporary error, unrecognized parameter value.
+ * @MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_UNEXPECTED_PARAMETER_VALUE: Temporary error, unexpected parameter value.
+ * @MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_USER_DATA_SIZE_ERROR: Temporary error, user data size error.
+ * @MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_OTHER: Temporary error, other general problem.
*
- * Enumeration of known SMS delivery states as defined in 3GPP TS 03.40.
+ * Enumeration of known SMS delivery states as defined in 3GPP TS 03.40 and
+ * 3GPP2 N.S0005-O, section 6.5.2.125.
*
* States out of the known ranges may also be valid (either reserved or SC-specific).
*/
typedef enum { /*< underscore_name=mm_sms_delivery_state >*/
+ /* --------------- 3GPP specific errors ---------------------- */
+
/* Completed deliveries */
MM_SMS_DELIVERY_STATE_COMPLETED_RECEIVED = 0x00,
MM_SMS_DELIVERY_STATE_COMPLETED_FORWARDED_UNCONFIRMED = 0x01,
@@ -520,7 +591,75 @@ typedef enum { /*< underscore_name=mm_sms_delivery_state >*/
MM_SMS_DELIVERY_STATE_TEMPORARY_FATAL_ERROR_IN_SME = 0x65,
/* Unknown, out of any possible valid value [0x00-0xFF] */
- MM_SMS_DELIVERY_STATE_UNKNOWN = 0x100
+ MM_SMS_DELIVERY_STATE_UNKNOWN = 0x100,
+
+ /* --------------- 3GPP2 specific errors ---------------------- */
+
+ /* Network problems */
+ MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_ADDRESS_VACANT = 0x200,
+ MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_ADDRESS_TRANSLATION_FAILURE = 0x201,
+ MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_NETWORK_RESOURCE_OUTAGE = 0x202,
+ MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_NETWORK_FAILURE = 0x203,
+ MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_INVALID_TELESERVICE_ID = 0x204,
+ MM_SMS_DELIVERY_STATE_NETWORK_PROBLEM_OTHER = 0x205,
+ /* Terminal problems */
+ MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_NO_PAGE_RESPONSE = 0x220,
+ MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_DESTINATION_BUSY = 0x221,
+ MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_NO_ACKNOWLEDGMENT = 0x222,
+ MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_DESTINATION_RESOURCE_SHORTAGE = 0x223,
+ MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_SMS_DELIVERY_POSTPONED = 0x224,
+ MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_DESTINATION_OUT_OF_SERVICE = 0x225,
+ MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_DESTINATION_NO_LONGER_AT_THIS_ADDRESS = 0x226,
+ MM_SMS_DELIVERY_STATE_TERMINAL_PROBLEM_OTHER = 0x227,
+ /* Radio problems */
+ MM_SMS_DELIVERY_STATE_RADIO_INTERFACE_PROBLEM_RESOURCE_SHORTAGE = 0x240,
+ MM_SMS_DELIVERY_STATE_RADIO_INTERFACE_PROBLEM_INCOMPATIBILITY = 0x241,
+ MM_SMS_DELIVERY_STATE_RADIO_INTERFACE_PROBLEM_OTHER = 0x242,
+ /* General problems */
+ MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_ENCODING = 0x260,
+ MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_SMS_ORIGINATION_DENIED = 0x261,
+ MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_SMS_TERMINATION_DENIED = 0x262,
+ MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_SUPPLEMENTARY_SERVICE_NOT_SUPPORTED = 0x263,
+ MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_SMS_NOT_SUPPORTED = 0x264,
+ MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_MISSING_EXPECTED_PARAMETER = 0x266,
+ MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_MISSING_MANDATORY_PARAMETER = 0x267,
+ MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_UNRECOGNIZED_PARAMETER_VALUE = 0x268,
+ MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_UNEXPECTED_PARAMETER_VALUE = 0x269,
+ MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_USER_DATA_SIZE_ERROR = 0x26A,
+ MM_SMS_DELIVERY_STATE_GENERAL_PROBLEM_OTHER = 0x26B,
+
+ /* Temporary network problems */
+ MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_ADDRESS_VACANT = 0x300,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_ADDRESS_TRANSLATION_FAILURE = 0x301,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_NETWORK_RESOURCE_OUTAGE = 0x302,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_NETWORK_FAILURE = 0x303,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_INVALID_TELESERVICE_ID = 0x304,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_NETWORK_PROBLEM_OTHER = 0x305,
+ /* Temporary terminal problems */
+ MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_NO_PAGE_RESPONSE = 0x320,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_DESTINATION_BUSY = 0x321,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_NO_ACKNOWLEDGMENT = 0x322,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_DESTINATION_RESOURCE_SHORTAGE = 0x323,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_SMS_DELIVERY_POSTPONED = 0x324,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_DESTINATION_OUT_OF_SERVICE = 0x325,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_DESTINATION_NO_LONGER_AT_THIS_ADDRESS = 0x326,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_TERMINAL_PROBLEM_OTHER = 0x327,
+ /* Temporary radio problems */
+ MM_SMS_DELIVERY_STATE_TEMPORARY_RADIO_INTERFACE_PROBLEM_RESOURCE_SHORTAGE = 0x340,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_RADIO_INTERFACE_PROBLEM_INCOMPATIBILITY = 0x341,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_RADIO_INTERFACE_PROBLEM_OTHER = 0x342,
+ /* Temporary general problems */
+ MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_ENCODING = 0x360,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_SMS_ORIGINATION_DENIED = 0x361,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_SMS_TERMINATION_DENIED = 0x362,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_SUPPLEMENTARY_SERVICE_NOT_SUPPORTED = 0x363,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_SMS_NOT_SUPPORTED = 0x364,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_MISSING_EXPECTED_PARAMETER = 0x366,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_MISSING_MANDATORY_PARAMETER = 0x367,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_UNRECOGNIZED_PARAMETER_VALUE = 0x368,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_UNEXPECTED_PARAMETER_VALUE = 0x369,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_USER_DATA_SIZE_ERROR = 0x36A,
+ MM_SMS_DELIVERY_STATE_TEMPORARY_GENERAL_PROBLEM_OTHER = 0x36B,
} MMSmsDeliveryState;
/**
@@ -562,6 +701,115 @@ typedef enum { /*< underscore_name=mm_sms_validity_type >*/
} MMSmsValidityType;
/**
+ * MMSmsCdmaTeleserviceId:
+ * @MM_SMS_CDMA_TELESERVICE_ID_UNKNOWN: Unknown.
+ * @MM_SMS_CDMA_TELESERVICE_ID_CMT91: IS-91 Extended Protocol Enhanced Services.
+ * @MM_SMS_CDMA_TELESERVICE_ID_WPT: Wireless Paging Teleservice.
+ * @MM_SMS_CDMA_TELESERVICE_ID_WMT: Wireless Messaging Teleservice.
+ * @MM_SMS_CDMA_TELESERVICE_ID_VMN: Voice Mail Notification.
+ * @MM_SMS_CDMA_TELESERVICE_ID_WAP: Wireless Application Protocol.
+ * @MM_SMS_CDMA_TELESERVICE_ID_WEMT: Wireless Enhanced Messaging Teleservice.
+ * @MM_SMS_CDMA_TELESERVICE_ID_SCPT: Service Category Programming Teleservice.
+ * @MM_SMS_CDMA_TELESERVICE_ID_CATPT: Card Application Toolkit Protocol Teleservice.
+ *
+ * Teleservice IDs supported for CDMA SMS, as defined in 3GPP2 X.S0004-550-E
+ * (section 2.256) and 3GPP2 C.S0015-B (section 3.4.3.1).
+ */
+typedef enum { /*< underscore_name=mm_sms_cdma_teleservice_id >*/
+ MM_SMS_CDMA_TELESERVICE_ID_UNKNOWN = 0x0000,
+ MM_SMS_CDMA_TELESERVICE_ID_CMT91 = 0x1000,
+ MM_SMS_CDMA_TELESERVICE_ID_WPT = 0x1001,
+ MM_SMS_CDMA_TELESERVICE_ID_WMT = 0x1002,
+ MM_SMS_CDMA_TELESERVICE_ID_VMN = 0x1003,
+ MM_SMS_CDMA_TELESERVICE_ID_WAP = 0x1004,
+ MM_SMS_CDMA_TELESERVICE_ID_WEMT = 0x1005,
+ MM_SMS_CDMA_TELESERVICE_ID_SCPT = 0x1006,
+ MM_SMS_CDMA_TELESERVICE_ID_CATPT = 0x1007,
+} MMSmsCdmaTeleserviceId;
+
+/**
+ * MMSmsCdmaServiceCategory:
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_UNKNOWN: Unknown.
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_EMERGENCY_BROADCAST: Emergency broadcast.
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_ADMINISTRATIVE: Administrative.
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_MAINTENANCE: Maintenance.
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_GENERAL_NEWS_LOCAL: General news (local).
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_GENERAL_NEWS_REGIONAL: General news (regional).
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_GENERAL_NEWS_NATIONAL: General news (national).
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_GENERAL_NEWS_INTERNATIONAL: General news (international).
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_BUSINESS_NEWS_LOCAL: Business/Financial news (local).
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_BUSINESS_NEWS_REGIONAL: Business/Financial news (regional).
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_BUSINESS_NEWS_NATIONAL: Business/Financial news (national).
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_BUSINESS_NEWS_INTERNATIONAL: Business/Financial news (international).
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_SPORTS_NEWS_LOCAL: Sports news (local).
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_SPORTS_NEWS_REGIONAL: Sports news (regional).
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_SPORTS_NEWS_NATIONAL: Sports news (national).
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_SPORTS_NEWS_INTERNATIONAL: Sports news (international).
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_ENTERTAINMENT_NEWS_LOCAL: Entertainment news (local).
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_ENTERTAINMENT_NEWS_REGIONAL: Entertainment news (regional).
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_ENTERTAINMENT_NEWS_NATIONAL: Entertainment news (national).
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_ENTERTAINMENT_NEWS_INTERNATIONAL: Entertainment news (international).
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_LOCAL_WEATHER: Local weather.
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_TRAFFIC_REPORT: Area traffic report.
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_FLIGHT_SCHEDULES: Local airport flight schedules.
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_RESTAURANTS: Restaurants.
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_LODGINGS: Lodgings.
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_RETAIL_DIRECTORY: Retail directory.
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_ADVERTISEMENTS: Advertisements.
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_STOCK_QUOTES: Stock quotes.
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_EMPLOYMENT: Employment.
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_HOSPITALS: Medical / Health / Hospitals.
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_TECHNOLOGY_NEWS: Technology news.
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_MULTICATEGORY: Multi-category.
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_PRESIDENTIAL_ALERT: Presidential alert.
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_EXTREME_THREAT: Extreme threat.
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_SEVERE_THREAT: Severe threat.
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_CHILD_ABDUCTION_EMERGENCY: Child abduction emergency.
+ * @MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_TEST: CMAS test.
+ *
+ * Service category for CDMA SMS, as defined in 3GPP2 C.R1001-D (section 9.3).
+ */
+typedef enum { /*< underscore_name=mm_sms_cdma_service_category >*/
+ MM_SMS_CDMA_SERVICE_CATEGORY_UNKNOWN = 0x0000,
+ MM_SMS_CDMA_SERVICE_CATEGORY_EMERGENCY_BROADCAST = 0x0001,
+ MM_SMS_CDMA_SERVICE_CATEGORY_ADMINISTRATIVE = 0x0002,
+ MM_SMS_CDMA_SERVICE_CATEGORY_MAINTENANCE = 0x0003,
+ MM_SMS_CDMA_SERVICE_CATEGORY_GENERAL_NEWS_LOCAL = 0x0004,
+ MM_SMS_CDMA_SERVICE_CATEGORY_GENERAL_NEWS_REGIONAL = 0x0005,
+ MM_SMS_CDMA_SERVICE_CATEGORY_GENERAL_NEWS_NATIONAL = 0x0006,
+ MM_SMS_CDMA_SERVICE_CATEGORY_GENERAL_NEWS_INTERNATIONAL = 0x0007,
+ MM_SMS_CDMA_SERVICE_CATEGORY_BUSINESS_NEWS_LOCAL = 0x0008,
+ MM_SMS_CDMA_SERVICE_CATEGORY_BUSINESS_NEWS_REGIONAL = 0x0009,
+ MM_SMS_CDMA_SERVICE_CATEGORY_BUSINESS_NEWS_NATIONAL = 0x000A,
+ MM_SMS_CDMA_SERVICE_CATEGORY_BUSINESS_NEWS_INTERNATIONAL = 0x000B,
+ MM_SMS_CDMA_SERVICE_CATEGORY_SPORTS_NEWS_LOCAL = 0x000C,
+ MM_SMS_CDMA_SERVICE_CATEGORY_SPORTS_NEWS_REGIONAL = 0x000D,
+ MM_SMS_CDMA_SERVICE_CATEGORY_SPORTS_NEWS_NATIONAL = 0x000E,
+ MM_SMS_CDMA_SERVICE_CATEGORY_SPORTS_NEWS_INTERNATIONAL = 0x000F,
+ MM_SMS_CDMA_SERVICE_CATEGORY_ENTERTAINMENT_NEWS_LOCAL = 0x0010,
+ MM_SMS_CDMA_SERVICE_CATEGORY_ENTERTAINMENT_NEWS_REGIONAL = 0x0011,
+ MM_SMS_CDMA_SERVICE_CATEGORY_ENTERTAINMENT_NEWS_NATIONAL = 0x0012,
+ MM_SMS_CDMA_SERVICE_CATEGORY_ENTERTAINMENT_NEWS_INTERNATIONAL = 0x0013,
+ MM_SMS_CDMA_SERVICE_CATEGORY_LOCAL_WEATHER = 0x0014,
+ MM_SMS_CDMA_SERVICE_CATEGORY_TRAFFIC_REPORT = 0x0015,
+ MM_SMS_CDMA_SERVICE_CATEGORY_FLIGHT_SCHEDULES = 0x0016,
+ MM_SMS_CDMA_SERVICE_CATEGORY_RESTAURANTS = 0x0017,
+ MM_SMS_CDMA_SERVICE_CATEGORY_LODGINGS = 0x0018,
+ MM_SMS_CDMA_SERVICE_CATEGORY_RETAIL_DIRECTORY = 0x0019,
+ MM_SMS_CDMA_SERVICE_CATEGORY_ADVERTISEMENTS = 0x001A,
+ MM_SMS_CDMA_SERVICE_CATEGORY_STOCK_QUOTES = 0x001B,
+ MM_SMS_CDMA_SERVICE_CATEGORY_EMPLOYMENT = 0x001C,
+ MM_SMS_CDMA_SERVICE_CATEGORY_HOSPITALS = 0x001D,
+ MM_SMS_CDMA_SERVICE_CATEGORY_TECHNOLOGY_NEWS = 0x001E,
+ MM_SMS_CDMA_SERVICE_CATEGORY_MULTICATEGORY = 0x001F,
+ MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_PRESIDENTIAL_ALERT = 0x1000,
+ MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_EXTREME_THREAT = 0x1001,
+ MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_SEVERE_THREAT = 0x1002,
+ MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_CHILD_ABDUCTION_EMERGENCY = 0x1003,
+ MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_TEST = 0x1004,
+} MMSmsCdmaServiceCategory;
+
+/**
* MMModemLocationSource:
* @MM_MODEM_LOCATION_SOURCE_NONE: None.
* @MM_MODEM_LOCATION_SOURCE_3GPP_LAC_CI: Location Area Code and Cell ID.
@@ -772,6 +1020,23 @@ typedef enum { /*< underscore_name=mm_modem_3gpp_network_availability >*/
} MMModem3gppNetworkAvailability;
/**
+ * MMModem3gppSubscriptionState:
+ * @MM_MODEM_3GPP_SUBSCRIPTION_STATE_UNKNOWN: The subscription state is unknown.
+ * @MM_MODEM_3GPP_SUBSCRIPTION_STATE_UNPROVISIONED: The account is unprovisioned.
+ * @MM_MODEM_3GPP_SUBSCRIPTION_STATE_PROVISIONED: The account is provisioned and has data available.
+ * @MM_MODEM_3GPP_SUBSCRIPTION_STATE_OUT_OF_DATA: The account is provisioned but there is no data left.
+ *
+ * Describes the current subscription status of the SIM. This value is only available after the
+ * modem attempts to register with the network.
+ */
+typedef enum { /*< underscore_name=mm_modem_3gpp_subscription_state >*/
+ MM_MODEM_3GPP_SUBSCRIPTION_STATE_UNKNOWN = 0,
+ MM_MODEM_3GPP_SUBSCRIPTION_STATE_UNPROVISIONED = 1,
+ MM_MODEM_3GPP_SUBSCRIPTION_STATE_PROVISIONED = 2,
+ MM_MODEM_3GPP_SUBSCRIPTION_STATE_OUT_OF_DATA = 3,
+} MMModem3gppSubscriptionState;
+
+/**
* MMModem3gppUssdSessionState:
* @MM_MODEM_3GPP_USSD_SESSION_STATE_UNKNOWN: Unknown state.
* @MM_MODEM_3GPP_USSD_SESSION_STATE_IDLE: No active session.
@@ -801,4 +1066,96 @@ typedef enum { /*< underscore_name=mm_firmware_image_type >*/
MM_FIRMWARE_IMAGE_TYPE_GOBI = 2,
} MMFirmwareImageType;
+/**
+ * MMOmaFeature:
+ * @MM_OMA_FEATURE_NONE: None.
+ * @MM_OMA_FEATURE_DEVICE_PROVISIONING: Device provisioning service.
+ * @MM_OMA_FEATURE_PRL_UPDATE: PRL update service.
+ * @MM_OMA_FEATURE_HANDS_FREE_ACTIVATION: Hands free activation service.
+ *
+ * Features that can be enabled or disabled in the OMA device management support.
+ */
+typedef enum { /*< underscore_name=mm_oma_feature >*/
+ MM_OMA_FEATURE_NONE = 0,
+ MM_OMA_FEATURE_DEVICE_PROVISIONING = 1 << 0,
+ MM_OMA_FEATURE_PRL_UPDATE = 1 << 1,
+ MM_OMA_FEATURE_HANDS_FREE_ACTIVATION = 1 << 2,
+} MMOmaFeature;
+
+/**
+ * MMOmaSessionType:
+ * @MM_OMA_SESSION_TYPE_UNKNOWN: Unknown session type.
+ * @MM_OMA_SESSION_TYPE_CLIENT_INITIATED_DEVICE_CONFIGURE: Client-initiated device configure.
+ * @MM_OMA_SESSION_TYPE_CLIENT_INITIATED_PRL_UPDATE: Client-initiated PRL update.
+ * @MM_OMA_SESSION_TYPE_CLIENT_INITIATED_HANDS_FREE_ACTIVATION: Client-initiated hands free activation.
+ * @MM_OMA_SESSION_TYPE_NETWORK_INITIATED_DEVICE_CONFIGURE: Network-initiated device configure.
+ * @MM_OMA_SESSION_TYPE_NETWORK_INITIATED_PRL_UPDATE: Network-initiated PRL update.
+ * @MM_OMA_SESSION_TYPE_DEVICE_INITIATED_PRL_UPDATE: Device-initiated PRL update.
+ * @MM_OMA_SESSION_TYPE_DEVICE_INITIATED_HANDS_FREE_ACTIVATION: Device-initiated hands free activation.
+ *
+ * Type of OMA device management session.
+ */
+typedef enum { /*< underscore_name=mm_oma_session_type >*/
+ MM_OMA_SESSION_TYPE_UNKNOWN = 0,
+ MM_OMA_SESSION_TYPE_CLIENT_INITIATED_DEVICE_CONFIGURE = 10,
+ MM_OMA_SESSION_TYPE_CLIENT_INITIATED_PRL_UPDATE = 11,
+ MM_OMA_SESSION_TYPE_CLIENT_INITIATED_HANDS_FREE_ACTIVATION = 12,
+ MM_OMA_SESSION_TYPE_NETWORK_INITIATED_DEVICE_CONFIGURE = 20,
+ MM_OMA_SESSION_TYPE_NETWORK_INITIATED_PRL_UPDATE = 21,
+ MM_OMA_SESSION_TYPE_DEVICE_INITIATED_PRL_UPDATE = 30,
+ MM_OMA_SESSION_TYPE_DEVICE_INITIATED_HANDS_FREE_ACTIVATION = 31,
+} MMOmaSessionType;
+
+/**
+ * MMOmaSessionState:
+ * @MM_OMA_SESSION_STATE_FAILED: Failed.
+ * @MM_OMA_SESSION_STATE_UNKNOWN: Unknown.
+ * @MM_OMA_SESSION_STATE_STARTED: Started.
+ * @MM_OMA_SESSION_STATE_RETRYING: Retrying.
+ * @MM_OMA_SESSION_STATE_CONNECTING: Connecting.
+ * @MM_OMA_SESSION_STATE_CONNECTED: Connected.
+ * @MM_OMA_SESSION_STATE_AUTHENTICATED: Authenticated.
+ * @MM_OMA_SESSION_STATE_MDN_DOWNLOADED: MDN downloaded.
+ * @MM_OMA_SESSION_STATE_MSID_DOWNLOADED: MSID downloaded.
+ * @MM_OMA_SESSION_STATE_PRL_DOWNLOADED: PRL downloaded.
+ * @MM_OMA_SESSION_STATE_MIP_PROFILE_DOWNLOADED: MIP profile downloaded.
+ * @MM_OMA_SESSION_STATE_COMPLETED: Session completed.
+ *
+ * State of the OMA device management session.
+ */
+typedef enum { /*< underscore_name=mm_oma_session_state >*/
+ MM_OMA_SESSION_STATE_FAILED = -1,
+ MM_OMA_SESSION_STATE_UNKNOWN = 0,
+ MM_OMA_SESSION_STATE_STARTED = 1,
+ MM_OMA_SESSION_STATE_RETRYING = 2,
+ MM_OMA_SESSION_STATE_CONNECTING = 3,
+ MM_OMA_SESSION_STATE_CONNECTED = 4,
+ MM_OMA_SESSION_STATE_AUTHENTICATED = 5,
+ MM_OMA_SESSION_STATE_MDN_DOWNLOADED = 10,
+ MM_OMA_SESSION_STATE_MSID_DOWNLOADED = 11,
+ MM_OMA_SESSION_STATE_PRL_DOWNLOADED = 12,
+ MM_OMA_SESSION_STATE_MIP_PROFILE_DOWNLOADED = 13,
+ MM_OMA_SESSION_STATE_COMPLETED = 20,
+} MMOmaSessionState;
+
+/**
+ * MMOmaSessionStateFailedReason:
+ * @MM_OMA_SESSION_STATE_FAILED_REASON_UNKNOWN: No reason or unknown.
+ * @MM_OMA_SESSION_STATE_FAILED_REASON_NETWORK_UNAVAILABLE: Network unavailable.
+ * @MM_OMA_SESSION_STATE_FAILED_REASON_SERVER_UNAVAILABLE: Server unavailable.
+ * @MM_OMA_SESSION_STATE_FAILED_REASON_AUTHENTICATION_FAILED: Authentication failed.
+ * @MM_OMA_SESSION_STATE_FAILED_REASON_MAX_RETRY_EXCEEDED: Maximum retries exceeded.
+ * @MM_OMA_SESSION_STATE_FAILED_REASON_SESSION_CANCELLED: Session cancelled.
+ *
+ * Reason of failure in the OMA device management session.
+ */
+typedef enum { /*< underscore_name=mm_oma_session_state_failed_reason >*/
+ MM_OMA_SESSION_STATE_FAILED_REASON_UNKNOWN = 0,
+ MM_OMA_SESSION_STATE_FAILED_REASON_NETWORK_UNAVAILABLE = 1,
+ MM_OMA_SESSION_STATE_FAILED_REASON_SERVER_UNAVAILABLE = 2,
+ MM_OMA_SESSION_STATE_FAILED_REASON_AUTHENTICATION_FAILED = 3,
+ MM_OMA_SESSION_STATE_FAILED_REASON_MAX_RETRY_EXCEEDED = 4,
+ MM_OMA_SESSION_STATE_FAILED_REASON_SESSION_CANCELLED = 5
+} MMOmaSessionStateFailedReason;
+
#endif /* _MODEMMANAGER_ENUMS_H_ */
diff --git a/include/ModemManager-errors.h b/include/ModemManager-errors.h
index 4888652..3877e20 100644
--- a/include/ModemManager-errors.h
+++ b/include/ModemManager-errors.h
@@ -173,23 +173,23 @@ typedef enum { /*< underscore_name=mm_mobile_equipment_error >*/
MM_MOBILE_EQUIPMENT_ERROR_CORP_PUK = 47, /*< nick=CorpPuk >*/
MM_MOBILE_EQUIPMENT_ERROR_UNKNOWN = 100, /*< nick=Unknown >*/
/* GPRS related errors */
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_IMSI_UNKNOWN_IN_HLR = 102, /*< nick=Gprs.ImsiUnknownInHlr >*/
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_ILLEGAL_MS = 103, /*< nick=Gprs.IllegalMs >*/
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_IMSI_UNKNOWN_IN_VLR = 104, /*< nick=Gprs.ImsiUnknownInVlr >*/
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_ILLEGAL_ME = 106, /*< nick=Gprs.IllegalMe >*/
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_SERVICE_NOT_ALLOWED = 107, /*< nick=Gprs.ServiceNotAllowed >*/
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_PLMN_NOT_ALLOWED = 111, /*< nick=Gprs.PlmnNotAllowed >*/
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_LOCATION_NOT_ALLOWED = 112, /*< nick=Gprs.LocationNotAllowed >*/
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_ROAMING_NOT_ALLOWED = 113, /*< nick=Gprs.RomaingNotAllowed >*/
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_NO_CELLS_IN_LOCATION_AREA = 115, /*< nick=Gprs.NoCellsInLocationArea >*/
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_NETWORK_FAILURE = 117, /*< nick=Gprs.NetworkFailure >*/
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_CONGESTION = 122, /*< nick=Gprs.Congestion >*/
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_SERVICE_OPTION_NOT_SUPPORTED = 132, /*< nick=Gprs.ServiceOptionNotSupported >*/
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_SERVICE_OPTION_NOT_SUBSCRIBED = 133, /*< nick=Gprs.ServiceOptionNotSubscribed >*/
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_SERVICE_OPTION_OUT_OF_ORDER = 134, /*< nick=Gprs.ServiceOptionOutOfOrder >*/
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_UNKNOWN = 148, /*< nick=Gprs.Unknown >*/
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_PDP_AUTH_FAILURE = 149, /*< nick=Gprs.PdpAuthFailure >*/
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_INVALID_MOBILE_CLASS = 150, /*< nick=Gprs.InvalidMobileClass >*/
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_IMSI_UNKNOWN_IN_HLR = 102, /*< nick=GprsImsiUnknownInHlr >*/
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_ILLEGAL_MS = 103, /*< nick=GprsIllegalMs >*/
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_IMSI_UNKNOWN_IN_VLR = 104, /*< nick=GprsImsiUnknownInVlr >*/
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_ILLEGAL_ME = 106, /*< nick=GprsIllegalMe >*/
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_SERVICE_NOT_ALLOWED = 107, /*< nick=GprsServiceNotAllowed >*/
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_PLMN_NOT_ALLOWED = 111, /*< nick=GprsPlmnNotAllowed >*/
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_LOCATION_NOT_ALLOWED = 112, /*< nick=GprsLocationNotAllowed >*/
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_ROAMING_NOT_ALLOWED = 113, /*< nick=GprsRomaingNotAllowed >*/
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_NO_CELLS_IN_LOCATION_AREA = 115, /*< nick=GprsNoCellsInLocationArea >*/
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_NETWORK_FAILURE = 117, /*< nick=GprsNetworkFailure >*/
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_CONGESTION = 122, /*< nick=GprsCongestion >*/
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_SERVICE_OPTION_NOT_SUPPORTED = 132, /*< nick=GprsServiceOptionNotSupported >*/
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_SERVICE_OPTION_NOT_SUBSCRIBED = 133, /*< nick=GprsServiceOptionNotSubscribed >*/
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_SERVICE_OPTION_OUT_OF_ORDER = 134, /*< nick=GprsServiceOptionOutOfOrder >*/
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_UNKNOWN = 148, /*< nick=GprsUnknown >*/
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_PDP_AUTH_FAILURE = 149, /*< nick=GprsPdpAuthFailure >*/
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_INVALID_MOBILE_CLASS = 150, /*< nick=GprsInvalidMobileClass >*/
} MMMobileEquipmentError;
/**
diff --git a/include/ModemManager-names.h b/include/ModemManager-names.h
index 76ff1aa..9da18f3 100644
--- a/include/ModemManager-names.h
+++ b/include/ModemManager-names.h
@@ -56,6 +56,8 @@
#define MM_DBUS_INTERFACE_MODEM_LOCATION "org.freedesktop.ModemManager1.Modem.Location"
#define MM_DBUS_INTERFACE_MODEM_TIME "org.freedesktop.ModemManager1.Modem.Time"
#define MM_DBUS_INTERFACE_MODEM_FIRMWARE "org.freedesktop.ModemManager1.Modem.Firmware"
+#define MM_DBUS_INTERFACE_MODEM_SIGNAL "org.freedesktop.ModemManager1.Modem.Signal"
+#define MM_DBUS_INTERFACE_MODEM_OMA "org.freedesktop.ModemManager1.Modem.Oma"
/******************************
* Methods/Signals/Properties *
@@ -106,6 +108,8 @@
#define MM_SMS_PROPERTY_SMSC "SMSC"
#define MM_SMS_PROPERTY_VALIDITY "Validity"
#define MM_SMS_PROPERTY_CLASS "Class"
+#define MM_SMS_PROPERTY_TELESERVICEID "TeleserviceId"
+#define MM_SMS_PROPERTY_SERVICECATEGORY "ServiceCategory"
#define MM_SMS_PROPERTY_DELIVERYREPORTREQUEST "DeliveryReportRequest"
#define MM_SMS_PROPERTY_MESSAGEREFERENCE "MessageReference"
#define MM_SMS_PROPERTY_TIMESTAMP "Timestamp"
@@ -129,6 +133,7 @@
#define MM_MODEM_METHOD_COMMAND "Command"
#define MM_MODEM_SIGNAL_STATECHANGED "StateChanged"
#define MM_MODEM_PROPERTY_SIM "Sim"
+#define MM_MODEM_PROPERTY_BEARERS "Bearers"
#define MM_MODEM_PROPERTY_SUPPORTEDCAPABILITIES "SupportedCapabilities"
#define MM_MODEM_PROPERTY_CURRENTCAPABILITIES "CurrentCapabilities"
#define MM_MODEM_PROPERTY_MAXBEARERS "MaxBearers"
@@ -167,6 +172,7 @@
#define MM_MODEM_MODEM3GPP_PROPERTY_OPERATORCODE "OperatorCode"
#define MM_MODEM_MODEM3GPP_PROPERTY_OPERATORNAME "OperatorName"
#define MM_MODEM_MODEM3GPP_PROPERTY_ENABLEDFACILITYLOCKS "EnabledFacilityLocks"
+#define MM_MODEM_MODEM3GPP_PROPERTY_SUBSCRIPTIONSTATE "SubscriptionState"
/*
* Interface 'org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd'
*/
@@ -200,6 +206,7 @@
#define MM_MODEM_MESSAGING_METHOD_CREATE "Create"
#define MM_MODEM_MESSAGING_SIGNAL_ADDED "Added"
#define MM_MODEM_MESSAGING_SIGNAL_DELETED "Deleted"
+#define MM_MODEM_MESSAGING_PROPERTY_MESSAGES "Messages"
#define MM_MODEM_MESSAGING_PROPERTY_SUPPORTEDSTORAGES "SupportedStorages"
#define MM_MODEM_MESSAGING_PROPERTY_DEFAULTSTORAGE "DefaultStorage"
/*
@@ -225,6 +232,30 @@
#define MM_MODEM_FIRMWARE_METHOD_LIST "List"
#define MM_MODEM_FIRMWARE_METHOD_SELECT "Select"
+/*
+ * Interface 'org.freedesktop.ModemManager1.Modem.Signal'
+ */
+
+#define MM_MODEM_SIGNAL_METHOD_SETUP "Setup"
+#define MM_MODEM_SIGNAL_PROPERTY_RATE "Rate"
+#define MM_MODEM_SIGNAL_PROPERTY_CDMA "Cdma"
+#define MM_MODEM_SIGNAL_PROPERTY_EVDO "Evdo"
+#define MM_MODEM_SIGNAL_PROPERTY_GSM "Gsm"
+#define MM_MODEM_SIGNAL_PROPERTY_UMTS "Umts"
+#define MM_MODEM_SIGNAL_PROPERTY_LTE "Lte"
+/*
+ * Interface 'org.freedesktop.ModemManager1.Modem.Oma'
+ */
+
+#define MM_MODEM_OMA_METHOD_SETUP "Setup"
+#define MM_MODEM_OMA_METHOD_STARTCLIENTINITIATEDSESSION "StartClientInitiatedSession"
+#define MM_MODEM_OMA_METHOD_ACCEPTNETWORKINITIATEDSESSION "AcceptNetworkInitiatedSession"
+#define MM_MODEM_OMA_METHOD_CANCELSESSION "CancelSession"
+#define MM_MODEM_OMA_SIGNAL_SESSIONSTATECHANGED "SessionStateChanged"
+#define MM_MODEM_OMA_PROPERTY_FEATURES "Features"
+#define MM_MODEM_OMA_PROPERTY_PENDINGNETWORKINITIATEDSESSIONS "PendingNetworkInitiatedSessions"
+#define MM_MODEM_OMA_PROPERTY_SESSIONTYPE "SessionType"
+#define MM_MODEM_OMA_PROPERTY_SESSIONSTATE "SessionState"
#endif /* _MODEM_MANAGER_NAMES_H_ */
diff --git a/include/ModemManager-version.h b/include/ModemManager-version.h
index e38ff2a..6381483 100644
--- a/include/ModemManager-version.h
+++ b/include/ModemManager-version.h
@@ -42,7 +42,7 @@
* Evaluates to the minor version number of ModemManager which this source
* is compiled against.
*/
-#define MM_MINOR_VERSION (0)
+#define MM_MINOR_VERSION (2)
/**
* MM_MICRO_VERSION:
diff --git a/introspection/Makefile.in b/introspection/Makefile.in
index 03cb2c6..1f90b52 100644
--- a/introspection/Makefile.in
+++ b/introspection/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -84,12 +84,13 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \
$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
- $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
- $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/introspection.m4 \
+ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
@@ -205,6 +206,14 @@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
@@ -271,6 +280,9 @@ STRIP = @STRIP@
SYSTEMD_UNIT_DIR = @SYSTEMD_UNIT_DIR@
UDEV_BASE_DIR = @UDEV_BASE_DIR@
USE_NLS = @USE_NLS@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
diff --git a/introspection/all.xml b/introspection/all.xml
index 24acf59..4d277e3 100644
--- a/introspection/all.xml
+++ b/introspection/all.xml
@@ -14,6 +14,8 @@
<xi:include href="org.freedesktop.ModemManager1.Modem.Location.xml"/>
<xi:include href="org.freedesktop.ModemManager1.Modem.Time.xml"/>
<xi:include href="org.freedesktop.ModemManager1.Modem.Firmware.xml"/>
+ <xi:include href="org.freedesktop.ModemManager1.Modem.Signal.xml"/>
+ <xi:include href="org.freedesktop.ModemManager1.Modem.Oma.xml"/>
<!--xi:include href="wip-org.freedesktop.ModemManager1.Modem.Contacts.xml"/-->
diff --git a/introspection/org.freedesktop.ModemManager1.Modem.Messaging.xml b/introspection/org.freedesktop.ModemManager1.Modem.Messaging.xml
index 2b21743..514a745 100644
--- a/introspection/org.freedesktop.ModemManager1.Modem.Messaging.xml
+++ b/introspection/org.freedesktop.ModemManager1.Modem.Messaging.xml
@@ -27,9 +27,8 @@
Retrieve all SMS messages.
This method should only be used once and subsequent information
- retreived either by listening for the
- #org.freedesktop.ModemManager1.Modem.Messaging::Added and
- #org.freedesktop.ModemManager1.Modem.Messaging::Completed signals,
+ retrieved either by listening for the
+ #org.freedesktop.ModemManager1.Modem.Messaging::Added signal,
or by querying the specific SMS object of interest.
-->
<method name="List">
@@ -79,9 +78,7 @@
Check the
'<link linkend="gdbus-property-org-freedesktop-ModemManager1-Sms.State">State</link>'
- property to determine if the message is complete. The
- #org.freedesktop.ModemManager1.Modem.Messaging::Completed
- signal will also be emitted when the message is complete.
+ property to determine if the message is complete.
-->
<signal name="Added">
<arg name="path" type="o" />
@@ -99,6 +96,13 @@
</signal>
<!--
+ Messages:
+
+ The list of SMS object paths.
+ -->
+ <property name="Messages" type="ao" access="read" />
+
+ <!--
SupportedStorages:
A list of <link linkend="MMSmsStorage">MMSmsStorage</link> values,
diff --git a/introspection/org.freedesktop.ModemManager1.Modem.Modem3gpp.xml b/introspection/org.freedesktop.ModemManager1.Modem.Modem3gpp.xml
index 3298473..00c4a2e 100644
--- a/introspection/org.freedesktop.ModemManager1.Modem.Modem3gpp.xml
+++ b/introspection/org.freedesktop.ModemManager1.Modem.Modem3gpp.xml
@@ -136,5 +136,14 @@
-->
<property name="EnabledFacilityLocks" type="u" access="read" />
+ <!--
+ SubscriptionState:
+
+ A <link linkend="MMModem3gppSubscriptionState">MMModem3gppSubscriptionState</link>
+ value representing the subscription status of the account and whether there
+ is any data remaining, given as an unsigned integer (signature <literal>"u"</literal>).
+ -->
+ <property name="SubscriptionState" type="u" access="read" />
+
</interface>
</node>
diff --git a/introspection/org.freedesktop.ModemManager1.Modem.ModemCdma.xml b/introspection/org.freedesktop.ModemManager1.Modem.ModemCdma.xml
index f1acb7f..28e4e16 100644
--- a/introspection/org.freedesktop.ModemManager1.Modem.ModemCdma.xml
+++ b/introspection/org.freedesktop.ModemManager1.Modem.ModemCdma.xml
@@ -36,12 +36,68 @@
<!--
ActivateManual:
- @properties: A dictionary of properties to set on the modem, including <literal>"mdn"</literal> and <literal>"min"</literal>.
+ @properties: A dictionary of properties to set on the modem.
Sets the modem provisioning data directly, without contacting the
carrier over the air.
Some modems will reboot after this call is made.
+
+ This dictionary is composed of a string identifier key
+ with an associated data which contains type-specific location
+ information:
+
+ <variablelist>
+ <varlistentry><term>"spc"</term>
+ <listitem>
+ <para>
+ The Service Programming Code, given as a string of exactly 6 digit characters. Mandatory parameter.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry><term>"sid"</term>
+ <listitem>
+ <para>
+ The System Identification Number, given as a 16-bit unsigned integer (signature <literal>"q"</literal>). Mandatory parameter.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry><term>"mdn"</term>
+ <listitem>
+ <para>
+ The Mobile Directory Number, given as a string of maximum 15 characters. Mandatory parameter.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry><term>"min"</term>
+ <listitem>
+ <para>
+ The Mobile Identification Number, given as a string of maximum 15 characters. Mandatory parameter.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry><term>"mn-ha-key"</term>
+ <listitem>
+ <para>
+ The MN-HA key, given as a string of maximum 16 characters.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry><term>"mn-aaa-key"</term>
+ <listitem>
+ <para>
+ The MN-AAA key, given as a string of maximum 16 characters.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry><term>"prl"</term>
+ <listitem>
+ <para>
+ The Preferred Roaming List, given as an array of maximum 16384 bytes.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
-->
<method name="ActivateManual">
<arg name="properties" type="a{sv}" direction="in" />
diff --git a/introspection/org.freedesktop.ModemManager1.Modem.Oma.xml b/introspection/org.freedesktop.ModemManager1.Modem.Oma.xml
new file mode 100644
index 0000000..351ff51
--- /dev/null
+++ b/introspection/org.freedesktop.ModemManager1.Modem.Oma.xml
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<!--
+ ModemManager 1.0 Interface Specification
+
+ Copyright (C) 2013 Google, Inc.
+-->
+
+<node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
+
+ <!--
+ org.freedesktop.ModemManager1.Modem.Oma:
+ @short_description: The ModemManager Open Mobile Alliance interface.
+
+ This interface allows clients to handle device management operations as
+ specified by the Open Mobile Alliance (OMA).
+
+ Device management sessions are either on-demand (client-initiated), or
+ automatically initiated by either the device itself or the network.
+ -->
+ <interface name="org.freedesktop.ModemManager1.Modem.Oma">
+
+ <!--
+ Setup:
+ @features: Bitmask of <link linkend="MMModemOmaFeature">MMModemOmaFeature</link> flags, specifying which device management features should get enabled or disabled. <link linkend="MM-OMA-FEATURE-NONE:CAPS">MM_OMA_FEATURE_NONE</link> will disable all features.
+
+ Configures which OMA device management features should be enabled.
+ -->
+ <method name="Setup">
+ <arg name="features" type="u" direction="in" />
+ </method>
+
+ <!--
+ StartClientInitiatedSession:
+ @session_type: Type of client-initiated device management session,given as a <link linkend="MMModemOmaSessionType">MMModemOmaSessionType</link>
+
+ Starts a client-initiated device management session.
+ -->
+ <method name="StartClientInitiatedSession">
+ <arg name="session_type" type="u" direction="in" />
+ </method>
+
+ <!--
+ AcceptNetworkInitiatedSession:
+ @session_id: Unique ID of the network-initiated device management session.
+ @accept: Boolean specifying whether the session is accepted or rejected.
+
+ Accepts or rejects a network-initiated device management session.
+ -->
+ <method name="AcceptNetworkInitiatedSession">
+ <arg name="session_id" type="u" direction="in" />
+ <arg name="accept" type="b" direction="in" />
+ </method>
+
+ <!--
+ CancelSession:
+
+ Cancels the current on-going device management session.
+ -->
+ <method name="CancelSession" />
+
+ <!--
+ Features:
+
+ Bitmask of <link linkend="MMModemOmaFeature">MMModemOmaFeature</link>
+ flags, specifying which device management features are enabled or
+ disabled.
+ -->
+ <property name="Features" type="u" access="read" />
+
+ <!--
+ PendingNetworkInitiatedSessions:
+
+ List of network-initiated sessions which are waiting to be accepted or
+ rejected, given as an array of unsigned integer pairs, where:
+
+ <variablelist>
+ <varlistentry>
+ <listitem>
+ The first integer is a <link linkend="MMOmaSessionType">MMOmaSessionType</link>.
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <listitem>
+ The second integer is the unique session ID.
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ -->
+ <property name="PendingNetworkInitiatedSessions" type="a(uu)" access="read" />
+
+ <!--
+ SessionType:
+
+ Type of the current on-going device management session, given as a
+ <link linkend="MMOmaSessionType">MMOmaSessionType</link>.
+ -->
+ <property name="SessionType" type="u" access="read" />
+
+ <!--
+ SessionState:
+
+ State of the current on-going device management session, given as a
+ <link linkend="MMOmaSessionState">MMOmaSessionState</link>.
+ -->
+ <property name="SessionState" type="i" access="read" />
+
+ <!--
+ SessionStateChanged:
+ @old_session_state: Previous session state, given as a <link linkend="MMOmaSessionState">MMOmaSessionState</link>.
+ @new_session_state: Current session state, given as a <link linkend="MMOmaSessionState">MMOmaSessionState</link>.
+ @session_state_failed_reason: Reason of failure, given as a <link linkend="MMOmaSessionStateFailedReason">MMOmaSessionStateFailedReason</link>, if @session_state is <link linkend="MM-OMA-SESSION-STATE-FAILED:CAPS">MM_OMA_SESSION_STATE_FAILED</link>.
+
+ The session state changed.
+ -->
+ <signal name="SessionStateChanged">
+ <arg name="old_session_state" type="i" />
+ <arg name="new_session_state" type="i" />
+ <arg name="session_state_failed_reason" type="u" />
+ </signal>
+
+ </interface>
+</node>
diff --git a/introspection/org.freedesktop.ModemManager1.Modem.Signal.xml b/introspection/org.freedesktop.ModemManager1.Modem.Signal.xml
new file mode 100644
index 0000000..094cbcf
--- /dev/null
+++ b/introspection/org.freedesktop.ModemManager1.Modem.Signal.xml
@@ -0,0 +1,212 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<!--
+ ModemManager 0.8 Interface Specification
+
+ Copyright (C) 2013 Aleksander Morgado <aleksander@gnu.org>
+-->
+
+<node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
+
+ <!--
+ org.freedesktop.ModemManager1.Modem.Signal:
+ @short_description: The ModemManager Signal interface.
+
+ This interface provides access to extended signal quality information.
+ -->
+ <interface name="org.freedesktop.ModemManager1.Modem.Signal">
+
+ <!--
+ Setup:
+ @rate: refresh rate to set, in seconds. 0 to disable retrieval.
+
+ Setup extended signal quality information retrieval.
+ -->
+ <method name="Setup">
+ <arg name="rate" type="u" direction="in" />
+ </method>
+
+ <!--
+ Rate:
+
+ Refresh rate for the extended signal quality information updates,
+ in seconds. A value of 0 disables the retrieval of the values.
+ -->
+ <property name="Rate" type="u" access="read" />
+
+ <!--
+ Cdma:
+
+ Dictionary of available signal information for the CDMA1x access
+ technology.
+
+ This dictionary is composed of a string key, with an associated data
+ which contains type-specific information.
+
+ <variablelist>
+ <varlistentry><term><literal>"rssi"</literal></term>
+ <listitem>
+ <para>
+ The CDMA1x RSSI (Received Signal Strength Indication), in dBm,
+ given as a floating point value (signature <literal>"d"</literal>).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry><term><literal>"ecio"</literal></term>
+ <listitem>
+ <para>
+ The CDMA1x Ec/Io, in dBm, given as a floating point value
+ (signature <literal>"d"</literal>).
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ -->
+ <property name="Cdma" type="a{sv}" access="read" />
+
+ <!--
+ Evdo:
+
+ Dictionary of available signal information for the CDMA EV-DO access
+ technology.
+
+ This dictionary is composed of a string key, with an associated data
+ which contains type-specific information.
+
+ <variablelist>
+ <varlistentry><term><literal>"rssi"</literal></term>
+ <listitem>
+ <para>
+ The CDMA EV-DO RSSI (Received Signal Strength Indication), in dBm,
+ given as a floating point value (signature <literal>"d"</literal>).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry><term><literal>"ecio"</literal></term>
+ <listitem>
+ <para>
+ The CDMA EV-DO Ec/Io, in dBm, given as a floating point value
+ (signature <literal>"d"</literal>).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry><term><literal>"sinr"</literal></term>
+ <listitem>
+ <para>
+ CDMA EV-DO SINR level, in dB, given as a floating point value
+ (signature <literal>"d"</literal>).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry><term><literal>"io"</literal></term>
+ <listitem>
+ <para>
+ The CDMA EV-DO Io, in dBm, given as a floating point value
+ (signature <literal>"d"</literal>).
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ -->
+ <property name="Evdo" type="a{sv}" access="read" />
+
+ <!--
+ Gsm:
+
+ Dictionary of available signal information for the GSM/GPRS access
+ technology.
+
+ This dictionary is composed of a string key, with an associated data
+ which contains type-specific information.
+
+ <variablelist>
+ <varlistentry><term><literal>"rssi"</literal></term>
+ <listitem>
+ <para>
+ The GSM RSSI (Received Signal Strength Indication), in dBm,
+ given as a floating point value (signature <literal>"d"</literal>).
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ -->
+ <property name="Gsm" type="a{sv}" access="read" />
+
+ <!--
+ Umts:
+
+ Dictionary of available signal information for the UMTS (WCDMA) access
+ technology.
+
+ This dictionary is composed of a string key, with an associated data
+ which contains type-specific information.
+
+ <variablelist>
+ <varlistentry><term><literal>"rssi"</literal></term>
+ <listitem>
+ <para>
+ The UMTS RSSI (Received Signal Strength Indication), in dBm,
+ given as a floating point value (signature <literal>"d"</literal>).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry><term><literal>"ecio"</literal></term>
+ <listitem>
+ <para>
+ The UMTS Ec/Io, in dBm, given as a floating point value
+ (signature <literal>"d"</literal>).
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ -->
+ <property name="Umts" type="a{sv}" access="read" />
+
+ <!--
+ Lte:
+
+ Dictionary of available signal information for the UMTS (WCDMA) access
+ technology.
+
+ This dictionary is composed of a string key, with an associated data
+ which contains type-specific information.
+
+ <variablelist>
+ <varlistentry><term><literal>"rssi"</literal></term>
+ <listitem>
+ <para>
+ The LTE RSSI (Received Signal Strength Indication), in dBm,
+ given as a floating point value (signature <literal>"d"</literal>).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry><term><literal>"rsrq"</literal></term>
+ <listitem>
+ <para>
+ The LTE RSRQ (Reference Signal Received Quality), in dB, given as
+ a floating point value (signature <literal>"d"</literal>).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry><term><literal>"rsrp"</literal></term>
+ <listitem>
+ <para>
+ The LTE RSRP (Reference Signal Received Power), in dBm, given as
+ a floating point value (signature <literal>"d"</literal>).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry><term><literal>"snr"</literal></term>
+ <listitem>
+ <para>
+ The LTE S/R ratio, in dB, given as
+ a floating point value (signature <literal>"d"</literal>).
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ -->
+ <property name="Lte" type="a{sv}" access="read" />
+
+ </interface>
+</node>
diff --git a/introspection/org.freedesktop.ModemManager1.Modem.xml b/introspection/org.freedesktop.ModemManager1.Modem.xml
index b264ab4..a5a236c 100644
--- a/introspection/org.freedesktop.ModemManager1.Modem.xml
+++ b/introspection/org.freedesktop.ModemManager1.Modem.xml
@@ -210,6 +210,14 @@
<property name="Sim" type="o" access="read" />
<!--
+ Bearers:
+
+ The list of bearer object paths (EPS Bearers, PDP Contexts, or
+ CDMA2000 Packet Data Sessions).
+ -->
+ <property name="Bearers" type="ao" access="read" />
+
+ <!--
SupportedCapabilities:
List of <link linkend="MMModemCapability">MMModemCapability</link>
diff --git a/introspection/org.freedesktop.ModemManager1.Sms.xml b/introspection/org.freedesktop.ModemManager1.Sms.xml
index 000caad..343e611 100644
--- a/introspection/org.freedesktop.ModemManager1.Sms.xml
+++ b/introspection/org.freedesktop.ModemManager1.Sms.xml
@@ -101,19 +101,19 @@
Indicates when the SMS expires in the SMSC.
This value is composed of a
- <link linkend="MMSmsValidityType">MMSmsValidityType</link>
- key, with an associated data which contains type-specific validity
- information:
+ <link linkend="MMSmsValidityType">MMSmsValidityType</link>
+ key, with an associated data which contains type-specific validity
+ information:
- <variablelist>
- <varlistentry><term><link linkend="MM-SMS-VALIDITY-TYPE-RELATIVE:CAPS">MM_SMS_VALIDITY_TYPE_RELATIVE</link></term>
+ <variablelist>
+ <varlistentry><term><link linkend="MM-SMS-VALIDITY-TYPE-RELATIVE:CAPS">MM_SMS_VALIDITY_TYPE_RELATIVE</link></term>
<listitem>
- <para>
- The value is the length of the validity period in minutes, given
- as an unsigned integer (D-Bus signature <literal>'u'</literal>).
+ <para>
+ The value is the length of the validity period in minutes, given
+ as an unsigned integer (D-Bus signature <literal>'u'</literal>).
</para>
</listitem>
- </varlistentry>
+ </varlistentry>
</variablelist>
-->
<property name="Validity" type="(uv)" access="read" />
@@ -129,6 +129,24 @@
<property name="Class" type="i" access="read" />
<!--
+ TeleserviceId:
+
+ A <link linkend="MMSmsCdmaTeleserviceId">MMSmsCdmaTeleserviceId</link> value.
+
+ Always <link linkend="MM-SMS-CDMA-TELESERVICE-ID-UNKNOWN:CAPS">MM_SMS_CDMA_TELESERVICE_ID_UNKNOWN</link> for 3GPP.
+ -->
+ <property name="TeleserviceId" type="u" access="read" />
+
+ <!--
+ ServiceCategory:
+
+ A <link linkend="MMSmsCdmaServiceCategory">MMSmsCdmaServiceCategory</link> value.
+
+ Always <link linkend="MM-SMS-CDMA-SERVICE-CATEGORY-UNKNOWN:CAPS">MM_SMS_CDMA_SERVICE_CATEGORY_UNKNOWN</link> for 3GPP.
+ -->
+ <property name="ServiceCategory" type="u" access="read" />
+
+ <!--
DeliveryReportRequest:
#TRUE if delivery report request is required, #FALSE otherwise.
diff --git a/libmm-glib/Makefile.am b/libmm-glib/Makefile.am
index 6c1e9ba..54e79fc 100644
--- a/libmm-glib/Makefile.am
+++ b/libmm-glib/Makefile.am
@@ -27,6 +27,10 @@ libmm_glib_la_SOURCES = \
mm-modem-time.c \
mm-modem-firmware.h \
mm-modem-firmware.c \
+ mm-modem-signal.h \
+ mm-modem-signal.c \
+ mm-modem-oma.h \
+ mm-modem-oma.c \
mm-sim.h \
mm-sim.c \
mm-sms.h \
@@ -61,16 +65,26 @@ libmm_glib_la_SOURCES = \
mm-network-timezone.h \
mm-network-timezone.c \
mm-firmware-properties.h \
- mm-firmware-properties.c
+ mm-firmware-properties.c \
+ mm-cdma-manual-activation-properties.h \
+ mm-cdma-manual-activation-properties.c \
+ mm-signal.h \
+ mm-signal.c
libmm_glib_la_CPPFLAGS = \
- $(LIBMM_GLIB_CFLAGS) \
+ -I$(srcdir) \
-I$(top_srcdir) \
+ -I$(top_builddir) \
-I$(top_srcdir)/include \
-I$(top_builddir)/include \
-I${top_srcdir}/libmm-glib/generated \
-I${top_builddir}/libmm-glib/generated \
- -DLIBMM_GLIB_COMPILATION
+ -DLIBMM_GLIB_COMPILATION \
+ $(AM_CPPFLAGS)
+
+libmm_glib_la_CFLAGS = \
+ $(LIBMM_GLIB_CFLAGS) \
+ $(AM_CFLAGS)
libmm_glib_la_LIBADD = \
${top_builddir}/libmm-glib/generated/libmm-generated.la \
@@ -93,6 +107,8 @@ include_HEADERS = \
mm-modem-location.h \
mm-modem-time.h \
mm-modem-firmware.h \
+ mm-modem-signal.h \
+ mm-modem-oma.h \
mm-modem-simple.h \
mm-sim.h \
mm-sms.h \
@@ -109,4 +125,73 @@ include_HEADERS = \
mm-location-cdma-bs.h \
mm-unlock-retries.h \
mm-network-timezone.h \
- mm-firmware-properties.h
+ mm-firmware-properties.h \
+ mm-cdma-manual-activation-properties.h \
+ mm-signal.h
+
+CLEANFILES =
+
+# Introspection
+
+if HAVE_INTROSPECTION
+
+GENERATED_H = \
+ mm-enums-types.h \
+ mm-errors-types.h \
+ mm-gdbus-manager.h \
+ mm-gdbus-sim.h \
+ mm-gdbus-sms.h \
+ mm-gdbus-bearer.h \
+ mm-gdbus-modem.h
+
+GENERATED_C = \
+ mm-enums-types.c \
+ mm-errors-types.c \
+ mm-errors-quarks.c \
+ mm-gdbus-manager.c \
+ mm-gdbus-sim.c \
+ mm-gdbus-sms.c \
+ mm-gdbus-bearer.c \
+ mm-gdbus-modem.c
+
+PUBLIC_H = \
+ ModemManager-names.h \
+ ModemManager-version.h
+ ModemManager-enums.h \
+ ModemManager-errors.h \
+ ModemManager.h
+
+INTROSPECTION_GIRS = ModemManager-1.0.gir
+INTROSPECTION_SCANNER_ARGS = --warn-all
+INTROSPECTION_COMPILER_ARGS =
+
+ModemManager-1.0.gir: libmm-glib.la
+ModemManager_1_0_gir_INCLUDES = GLib-2.0 GObject-2.0 Gio-2.0
+ModemManager_1_0_gir_CFLAGS = $(libmm_glib_la_CPPFLAGS)
+ModemManager_1_0_gir_LIBS = libmm-glib.la
+ModemManager_1_0_gir_EXPORT_PACKAGES = libmm-glib
+ModemManager_1_0_gir_SCANNERFLAGS = \
+ --c-include "libmm-glib.h" \
+ --identifier-prefix=MM \
+ --identifier-prefix=Mm \
+ --symbol-prefix=mm
+ModemManager_1_0_gir_FILES = \
+ $(include_HEADERS) \
+ $(filter-out %.h,$(libmm_glib_la_SOURCES)) \
+ $(filter %.c,$(libmm_glib_la_SOURCES)) \
+ $(addprefix generated/,$(GENERATED_H)) \
+ $(addprefix generated/,$(GENERATED_C)) \
+ $(addprefix ../include/,$(PUBLIC_H)) \
+ $(NULL)
+
+girdir = $(datadir)/gir-1.0
+nodist_gir_DATA = $(INTROSPECTION_GIRS)
+
+typelibdir = $(libdir)/girepository-1.0
+nodist_typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
+
+CLEANFILES += $(nodist_gir_DATA) $(nodist_typelib_DATA)
+
+endif # HAVE_INTROSPECTION
+
+-include $(INTROSPECTION_MAKEFILE)
diff --git a/libmm-glib/Makefile.in b/libmm-glib/Makefile.in
index 2cd295c..6f1368b 100644
--- a/libmm-glib/Makefile.in
+++ b/libmm-glib/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -15,6 +15,7 @@
@SET_MAKE@
+
VPATH = @srcdir@
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
am__make_running_with_option = \
@@ -79,6 +80,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+@HAVE_INTROSPECTION_TRUE@am__append_1 = $(nodist_gir_DATA) $(nodist_typelib_DATA)
subdir = libmm-glib
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
$(top_srcdir)/depcomp $(include_HEADERS)
@@ -86,12 +88,13 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \
$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
- $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
- $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/introspection.m4 \
+ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
@@ -126,7 +129,8 @@ am__uninstall_files_from_dir = { \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \
}
-am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)"
+am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" \
+ "$(DESTDIR)$(typelibdir)" "$(DESTDIR)$(includedir)"
LTLIBRARIES = $(lib_LTLIBRARIES)
am__DEPENDENCIES_1 =
libmm_glib_la_DEPENDENCIES = \
@@ -140,9 +144,11 @@ am_libmm_glib_la_OBJECTS = libmm_glib_la-mm-helper-types.lo \
libmm_glib_la-mm-modem-simple.lo \
libmm_glib_la-mm-modem-location.lo \
libmm_glib_la-mm-modem-time.lo \
- libmm_glib_la-mm-modem-firmware.lo libmm_glib_la-mm-sim.lo \
- libmm_glib_la-mm-sms.lo libmm_glib_la-mm-modem-messaging.lo \
- libmm_glib_la-mm-bearer.lo libmm_glib_la-mm-common-helpers.lo \
+ libmm_glib_la-mm-modem-firmware.lo \
+ libmm_glib_la-mm-modem-signal.lo libmm_glib_la-mm-modem-oma.lo \
+ libmm_glib_la-mm-sim.lo libmm_glib_la-mm-sms.lo \
+ libmm_glib_la-mm-modem-messaging.lo libmm_glib_la-mm-bearer.lo \
+ libmm_glib_la-mm-common-helpers.lo \
libmm_glib_la-mm-simple-status.lo \
libmm_glib_la-mm-simple-connect-properties.lo \
libmm_glib_la-mm-bearer-properties.lo \
@@ -154,15 +160,17 @@ am_libmm_glib_la_OBJECTS = libmm_glib_la-mm-helper-types.lo \
libmm_glib_la-mm-location-cdma-bs.lo \
libmm_glib_la-mm-unlock-retries.lo \
libmm_glib_la-mm-network-timezone.lo \
- libmm_glib_la-mm-firmware-properties.lo
+ libmm_glib_la-mm-firmware-properties.lo \
+ libmm_glib_la-mm-cdma-manual-activation-properties.lo \
+ libmm_glib_la-mm-signal.lo
libmm_glib_la_OBJECTS = $(am_libmm_glib_la_OBJECTS)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
am__v_lt_1 =
libmm_glib_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(libmm_glib_la_LDFLAGS) $(LDFLAGS) -o $@
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libmm_glib_la_CFLAGS) \
+ $(CFLAGS) $(libmm_glib_la_LDFLAGS) $(LDFLAGS) -o $@
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
@@ -212,6 +220,7 @@ am__can_run_installinfo = \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
+DATA = $(nodist_gir_DATA) $(nodist_typelib_DATA)
HEADERS = $(include_HEADERS)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
@@ -325,6 +334,14 @@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
@@ -391,6 +408,9 @@ STRIP = @STRIP@
SYSTEMD_UNIT_DIR = @SYSTEMD_UNIT_DIR@
UDEV_BASE_DIR = @UDEV_BASE_DIR@
USE_NLS = @USE_NLS@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
@@ -476,6 +496,10 @@ libmm_glib_la_SOURCES = \
mm-modem-time.c \
mm-modem-firmware.h \
mm-modem-firmware.c \
+ mm-modem-signal.h \
+ mm-modem-signal.c \
+ mm-modem-oma.h \
+ mm-modem-oma.c \
mm-sim.h \
mm-sim.c \
mm-sms.h \
@@ -510,16 +534,26 @@ libmm_glib_la_SOURCES = \
mm-network-timezone.h \
mm-network-timezone.c \
mm-firmware-properties.h \
- mm-firmware-properties.c
+ mm-firmware-properties.c \
+ mm-cdma-manual-activation-properties.h \
+ mm-cdma-manual-activation-properties.c \
+ mm-signal.h \
+ mm-signal.c
libmm_glib_la_CPPFLAGS = \
- $(LIBMM_GLIB_CFLAGS) \
+ -I$(srcdir) \
-I$(top_srcdir) \
+ -I$(top_builddir) \
-I$(top_srcdir)/include \
-I$(top_builddir)/include \
-I${top_srcdir}/libmm-glib/generated \
-I${top_builddir}/libmm-glib/generated \
- -DLIBMM_GLIB_COMPILATION
+ -DLIBMM_GLIB_COMPILATION \
+ $(AM_CPPFLAGS)
+
+libmm_glib_la_CFLAGS = \
+ $(LIBMM_GLIB_CFLAGS) \
+ $(AM_CFLAGS)
libmm_glib_la_LIBADD = \
${top_builddir}/libmm-glib/generated/libmm-generated.la \
@@ -541,6 +575,8 @@ include_HEADERS = \
mm-modem-location.h \
mm-modem-time.h \
mm-modem-firmware.h \
+ mm-modem-signal.h \
+ mm-modem-oma.h \
mm-modem-simple.h \
mm-sim.h \
mm-sms.h \
@@ -557,8 +593,62 @@ include_HEADERS = \
mm-location-cdma-bs.h \
mm-unlock-retries.h \
mm-network-timezone.h \
- mm-firmware-properties.h
-
+ mm-firmware-properties.h \
+ mm-cdma-manual-activation-properties.h \
+ mm-signal.h
+
+CLEANFILES = $(am__append_1)
+
+# Introspection
+@HAVE_INTROSPECTION_TRUE@GENERATED_H = \
+@HAVE_INTROSPECTION_TRUE@ mm-enums-types.h \
+@HAVE_INTROSPECTION_TRUE@ mm-errors-types.h \
+@HAVE_INTROSPECTION_TRUE@ mm-gdbus-manager.h \
+@HAVE_INTROSPECTION_TRUE@ mm-gdbus-sim.h \
+@HAVE_INTROSPECTION_TRUE@ mm-gdbus-sms.h \
+@HAVE_INTROSPECTION_TRUE@ mm-gdbus-bearer.h \
+@HAVE_INTROSPECTION_TRUE@ mm-gdbus-modem.h
+
+@HAVE_INTROSPECTION_TRUE@GENERATED_C = \
+@HAVE_INTROSPECTION_TRUE@ mm-enums-types.c \
+@HAVE_INTROSPECTION_TRUE@ mm-errors-types.c \
+@HAVE_INTROSPECTION_TRUE@ mm-errors-quarks.c \
+@HAVE_INTROSPECTION_TRUE@ mm-gdbus-manager.c \
+@HAVE_INTROSPECTION_TRUE@ mm-gdbus-sim.c \
+@HAVE_INTROSPECTION_TRUE@ mm-gdbus-sms.c \
+@HAVE_INTROSPECTION_TRUE@ mm-gdbus-bearer.c \
+@HAVE_INTROSPECTION_TRUE@ mm-gdbus-modem.c
+
+@HAVE_INTROSPECTION_TRUE@PUBLIC_H = \
+@HAVE_INTROSPECTION_TRUE@ ModemManager-names.h \
+@HAVE_INTROSPECTION_TRUE@ ModemManager-version.h
+
+@HAVE_INTROSPECTION_TRUE@INTROSPECTION_GIRS = ModemManager-1.0.gir
+@HAVE_INTROSPECTION_TRUE@INTROSPECTION_SCANNER_ARGS = --warn-all
+@HAVE_INTROSPECTION_TRUE@INTROSPECTION_COMPILER_ARGS =
+@HAVE_INTROSPECTION_TRUE@ModemManager_1_0_gir_INCLUDES = GLib-2.0 GObject-2.0 Gio-2.0
+@HAVE_INTROSPECTION_TRUE@ModemManager_1_0_gir_CFLAGS = $(libmm_glib_la_CPPFLAGS)
+@HAVE_INTROSPECTION_TRUE@ModemManager_1_0_gir_LIBS = libmm-glib.la
+@HAVE_INTROSPECTION_TRUE@ModemManager_1_0_gir_EXPORT_PACKAGES = libmm-glib
+@HAVE_INTROSPECTION_TRUE@ModemManager_1_0_gir_SCANNERFLAGS = \
+@HAVE_INTROSPECTION_TRUE@ --c-include "libmm-glib.h" \
+@HAVE_INTROSPECTION_TRUE@ --identifier-prefix=MM \
+@HAVE_INTROSPECTION_TRUE@ --identifier-prefix=Mm \
+@HAVE_INTROSPECTION_TRUE@ --symbol-prefix=mm
+
+@HAVE_INTROSPECTION_TRUE@ModemManager_1_0_gir_FILES = \
+@HAVE_INTROSPECTION_TRUE@ $(include_HEADERS) \
+@HAVE_INTROSPECTION_TRUE@ $(filter-out %.h,$(libmm_glib_la_SOURCES)) \
+@HAVE_INTROSPECTION_TRUE@ $(filter %.c,$(libmm_glib_la_SOURCES)) \
+@HAVE_INTROSPECTION_TRUE@ $(addprefix generated/,$(GENERATED_H)) \
+@HAVE_INTROSPECTION_TRUE@ $(addprefix generated/,$(GENERATED_C)) \
+@HAVE_INTROSPECTION_TRUE@ $(addprefix ../include/,$(PUBLIC_H)) \
+@HAVE_INTROSPECTION_TRUE@ $(NULL)
+
+@HAVE_INTROSPECTION_TRUE@girdir = $(datadir)/gir-1.0
+@HAVE_INTROSPECTION_TRUE@nodist_gir_DATA = $(INTROSPECTION_GIRS)
+@HAVE_INTROSPECTION_TRUE@typelibdir = $(libdir)/girepository-1.0
+@HAVE_INTROSPECTION_TRUE@nodist_typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
all: all-recursive
.SUFFIXES:
@@ -641,6 +731,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_glib_la-mm-bearer-ip-config.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_glib_la-mm-bearer-properties.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_glib_la-mm-bearer.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_glib_la-mm-cdma-manual-activation-properties.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_glib_la-mm-common-helpers.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_glib_la-mm-firmware-properties.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_glib_la-mm-helper-types.Plo@am__quote@
@@ -655,11 +746,14 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_glib_la-mm-modem-firmware.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_glib_la-mm-modem-location.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_glib_la-mm-modem-messaging.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_glib_la-mm-modem-oma.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_glib_la-mm-modem-signal.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_glib_la-mm-modem-simple.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_glib_la-mm-modem-time.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_glib_la-mm-modem.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_glib_la-mm-network-timezone.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_glib_la-mm-object.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_glib_la-mm-signal.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_glib_la-mm-sim.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_glib_la-mm-simple-connect-properties.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmm_glib_la-mm-simple-status.Plo@am__quote@
@@ -692,206 +786,276 @@ distclean-compile:
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
libmm_glib_la-mm-helper-types.lo: mm-helper-types.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-helper-types.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-helper-types.Tpo -c -o libmm_glib_la-mm-helper-types.lo `test -f 'mm-helper-types.c' || echo '$(srcdir)/'`mm-helper-types.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-helper-types.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-helper-types.Tpo -c -o libmm_glib_la-mm-helper-types.lo `test -f 'mm-helper-types.c' || echo '$(srcdir)/'`mm-helper-types.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_glib_la-mm-helper-types.Tpo $(DEPDIR)/libmm_glib_la-mm-helper-types.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-helper-types.c' object='libmm_glib_la-mm-helper-types.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-helper-types.lo `test -f 'mm-helper-types.c' || echo '$(srcdir)/'`mm-helper-types.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-helper-types.lo `test -f 'mm-helper-types.c' || echo '$(srcdir)/'`mm-helper-types.c
libmm_glib_la-mm-manager.lo: mm-manager.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-manager.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-manager.Tpo -c -o libmm_glib_la-mm-manager.lo `test -f 'mm-manager.c' || echo '$(srcdir)/'`mm-manager.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-manager.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-manager.Tpo -c -o libmm_glib_la-mm-manager.lo `test -f 'mm-manager.c' || echo '$(srcdir)/'`mm-manager.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_glib_la-mm-manager.Tpo $(DEPDIR)/libmm_glib_la-mm-manager.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-manager.c' object='libmm_glib_la-mm-manager.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-manager.lo `test -f 'mm-manager.c' || echo '$(srcdir)/'`mm-manager.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-manager.lo `test -f 'mm-manager.c' || echo '$(srcdir)/'`mm-manager.c
libmm_glib_la-mm-object.lo: mm-object.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-object.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-object.Tpo -c -o libmm_glib_la-mm-object.lo `test -f 'mm-object.c' || echo '$(srcdir)/'`mm-object.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-object.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-object.Tpo -c -o libmm_glib_la-mm-object.lo `test -f 'mm-object.c' || echo '$(srcdir)/'`mm-object.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_glib_la-mm-object.Tpo $(DEPDIR)/libmm_glib_la-mm-object.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-object.c' object='libmm_glib_la-mm-object.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-object.lo `test -f 'mm-object.c' || echo '$(srcdir)/'`mm-object.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-object.lo `test -f 'mm-object.c' || echo '$(srcdir)/'`mm-object.c
libmm_glib_la-mm-modem.lo: mm-modem.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-modem.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-modem.Tpo -c -o libmm_glib_la-mm-modem.lo `test -f 'mm-modem.c' || echo '$(srcdir)/'`mm-modem.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-modem.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-modem.Tpo -c -o libmm_glib_la-mm-modem.lo `test -f 'mm-modem.c' || echo '$(srcdir)/'`mm-modem.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_glib_la-mm-modem.Tpo $(DEPDIR)/libmm_glib_la-mm-modem.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-modem.c' object='libmm_glib_la-mm-modem.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-modem.lo `test -f 'mm-modem.c' || echo '$(srcdir)/'`mm-modem.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-modem.lo `test -f 'mm-modem.c' || echo '$(srcdir)/'`mm-modem.c
libmm_glib_la-mm-modem-3gpp.lo: mm-modem-3gpp.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-modem-3gpp.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-modem-3gpp.Tpo -c -o libmm_glib_la-mm-modem-3gpp.lo `test -f 'mm-modem-3gpp.c' || echo '$(srcdir)/'`mm-modem-3gpp.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-modem-3gpp.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-modem-3gpp.Tpo -c -o libmm_glib_la-mm-modem-3gpp.lo `test -f 'mm-modem-3gpp.c' || echo '$(srcdir)/'`mm-modem-3gpp.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_glib_la-mm-modem-3gpp.Tpo $(DEPDIR)/libmm_glib_la-mm-modem-3gpp.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-modem-3gpp.c' object='libmm_glib_la-mm-modem-3gpp.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-modem-3gpp.lo `test -f 'mm-modem-3gpp.c' || echo '$(srcdir)/'`mm-modem-3gpp.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-modem-3gpp.lo `test -f 'mm-modem-3gpp.c' || echo '$(srcdir)/'`mm-modem-3gpp.c
libmm_glib_la-mm-modem-3gpp-ussd.lo: mm-modem-3gpp-ussd.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-modem-3gpp-ussd.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-modem-3gpp-ussd.Tpo -c -o libmm_glib_la-mm-modem-3gpp-ussd.lo `test -f 'mm-modem-3gpp-ussd.c' || echo '$(srcdir)/'`mm-modem-3gpp-ussd.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-modem-3gpp-ussd.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-modem-3gpp-ussd.Tpo -c -o libmm_glib_la-mm-modem-3gpp-ussd.lo `test -f 'mm-modem-3gpp-ussd.c' || echo '$(srcdir)/'`mm-modem-3gpp-ussd.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_glib_la-mm-modem-3gpp-ussd.Tpo $(DEPDIR)/libmm_glib_la-mm-modem-3gpp-ussd.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-modem-3gpp-ussd.c' object='libmm_glib_la-mm-modem-3gpp-ussd.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-modem-3gpp-ussd.lo `test -f 'mm-modem-3gpp-ussd.c' || echo '$(srcdir)/'`mm-modem-3gpp-ussd.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-modem-3gpp-ussd.lo `test -f 'mm-modem-3gpp-ussd.c' || echo '$(srcdir)/'`mm-modem-3gpp-ussd.c
libmm_glib_la-mm-modem-cdma.lo: mm-modem-cdma.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-modem-cdma.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-modem-cdma.Tpo -c -o libmm_glib_la-mm-modem-cdma.lo `test -f 'mm-modem-cdma.c' || echo '$(srcdir)/'`mm-modem-cdma.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-modem-cdma.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-modem-cdma.Tpo -c -o libmm_glib_la-mm-modem-cdma.lo `test -f 'mm-modem-cdma.c' || echo '$(srcdir)/'`mm-modem-cdma.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_glib_la-mm-modem-cdma.Tpo $(DEPDIR)/libmm_glib_la-mm-modem-cdma.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-modem-cdma.c' object='libmm_glib_la-mm-modem-cdma.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-modem-cdma.lo `test -f 'mm-modem-cdma.c' || echo '$(srcdir)/'`mm-modem-cdma.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-modem-cdma.lo `test -f 'mm-modem-cdma.c' || echo '$(srcdir)/'`mm-modem-cdma.c
libmm_glib_la-mm-modem-simple.lo: mm-modem-simple.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-modem-simple.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-modem-simple.Tpo -c -o libmm_glib_la-mm-modem-simple.lo `test -f 'mm-modem-simple.c' || echo '$(srcdir)/'`mm-modem-simple.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-modem-simple.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-modem-simple.Tpo -c -o libmm_glib_la-mm-modem-simple.lo `test -f 'mm-modem-simple.c' || echo '$(srcdir)/'`mm-modem-simple.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_glib_la-mm-modem-simple.Tpo $(DEPDIR)/libmm_glib_la-mm-modem-simple.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-modem-simple.c' object='libmm_glib_la-mm-modem-simple.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-modem-simple.lo `test -f 'mm-modem-simple.c' || echo '$(srcdir)/'`mm-modem-simple.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-modem-simple.lo `test -f 'mm-modem-simple.c' || echo '$(srcdir)/'`mm-modem-simple.c
libmm_glib_la-mm-modem-location.lo: mm-modem-location.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-modem-location.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-modem-location.Tpo -c -o libmm_glib_la-mm-modem-location.lo `test -f 'mm-modem-location.c' || echo '$(srcdir)/'`mm-modem-location.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-modem-location.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-modem-location.Tpo -c -o libmm_glib_la-mm-modem-location.lo `test -f 'mm-modem-location.c' || echo '$(srcdir)/'`mm-modem-location.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_glib_la-mm-modem-location.Tpo $(DEPDIR)/libmm_glib_la-mm-modem-location.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-modem-location.c' object='libmm_glib_la-mm-modem-location.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-modem-location.lo `test -f 'mm-modem-location.c' || echo '$(srcdir)/'`mm-modem-location.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-modem-location.lo `test -f 'mm-modem-location.c' || echo '$(srcdir)/'`mm-modem-location.c
libmm_glib_la-mm-modem-time.lo: mm-modem-time.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-modem-time.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-modem-time.Tpo -c -o libmm_glib_la-mm-modem-time.lo `test -f 'mm-modem-time.c' || echo '$(srcdir)/'`mm-modem-time.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-modem-time.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-modem-time.Tpo -c -o libmm_glib_la-mm-modem-time.lo `test -f 'mm-modem-time.c' || echo '$(srcdir)/'`mm-modem-time.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_glib_la-mm-modem-time.Tpo $(DEPDIR)/libmm_glib_la-mm-modem-time.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-modem-time.c' object='libmm_glib_la-mm-modem-time.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-modem-time.lo `test -f 'mm-modem-time.c' || echo '$(srcdir)/'`mm-modem-time.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-modem-time.lo `test -f 'mm-modem-time.c' || echo '$(srcdir)/'`mm-modem-time.c
libmm_glib_la-mm-modem-firmware.lo: mm-modem-firmware.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-modem-firmware.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-modem-firmware.Tpo -c -o libmm_glib_la-mm-modem-firmware.lo `test -f 'mm-modem-firmware.c' || echo '$(srcdir)/'`mm-modem-firmware.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-modem-firmware.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-modem-firmware.Tpo -c -o libmm_glib_la-mm-modem-firmware.lo `test -f 'mm-modem-firmware.c' || echo '$(srcdir)/'`mm-modem-firmware.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_glib_la-mm-modem-firmware.Tpo $(DEPDIR)/libmm_glib_la-mm-modem-firmware.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-modem-firmware.c' object='libmm_glib_la-mm-modem-firmware.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-modem-firmware.lo `test -f 'mm-modem-firmware.c' || echo '$(srcdir)/'`mm-modem-firmware.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-modem-firmware.lo `test -f 'mm-modem-firmware.c' || echo '$(srcdir)/'`mm-modem-firmware.c
+
+libmm_glib_la-mm-modem-signal.lo: mm-modem-signal.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-modem-signal.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-modem-signal.Tpo -c -o libmm_glib_la-mm-modem-signal.lo `test -f 'mm-modem-signal.c' || echo '$(srcdir)/'`mm-modem-signal.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_glib_la-mm-modem-signal.Tpo $(DEPDIR)/libmm_glib_la-mm-modem-signal.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-modem-signal.c' object='libmm_glib_la-mm-modem-signal.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-modem-signal.lo `test -f 'mm-modem-signal.c' || echo '$(srcdir)/'`mm-modem-signal.c
+
+libmm_glib_la-mm-modem-oma.lo: mm-modem-oma.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-modem-oma.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-modem-oma.Tpo -c -o libmm_glib_la-mm-modem-oma.lo `test -f 'mm-modem-oma.c' || echo '$(srcdir)/'`mm-modem-oma.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_glib_la-mm-modem-oma.Tpo $(DEPDIR)/libmm_glib_la-mm-modem-oma.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-modem-oma.c' object='libmm_glib_la-mm-modem-oma.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-modem-oma.lo `test -f 'mm-modem-oma.c' || echo '$(srcdir)/'`mm-modem-oma.c
libmm_glib_la-mm-sim.lo: mm-sim.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-sim.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-sim.Tpo -c -o libmm_glib_la-mm-sim.lo `test -f 'mm-sim.c' || echo '$(srcdir)/'`mm-sim.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-sim.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-sim.Tpo -c -o libmm_glib_la-mm-sim.lo `test -f 'mm-sim.c' || echo '$(srcdir)/'`mm-sim.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_glib_la-mm-sim.Tpo $(DEPDIR)/libmm_glib_la-mm-sim.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-sim.c' object='libmm_glib_la-mm-sim.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-sim.lo `test -f 'mm-sim.c' || echo '$(srcdir)/'`mm-sim.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-sim.lo `test -f 'mm-sim.c' || echo '$(srcdir)/'`mm-sim.c
libmm_glib_la-mm-sms.lo: mm-sms.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-sms.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-sms.Tpo -c -o libmm_glib_la-mm-sms.lo `test -f 'mm-sms.c' || echo '$(srcdir)/'`mm-sms.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-sms.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-sms.Tpo -c -o libmm_glib_la-mm-sms.lo `test -f 'mm-sms.c' || echo '$(srcdir)/'`mm-sms.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_glib_la-mm-sms.Tpo $(DEPDIR)/libmm_glib_la-mm-sms.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-sms.c' object='libmm_glib_la-mm-sms.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-sms.lo `test -f 'mm-sms.c' || echo '$(srcdir)/'`mm-sms.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-sms.lo `test -f 'mm-sms.c' || echo '$(srcdir)/'`mm-sms.c
libmm_glib_la-mm-modem-messaging.lo: mm-modem-messaging.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-modem-messaging.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-modem-messaging.Tpo -c -o libmm_glib_la-mm-modem-messaging.lo `test -f 'mm-modem-messaging.c' || echo '$(srcdir)/'`mm-modem-messaging.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-modem-messaging.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-modem-messaging.Tpo -c -o libmm_glib_la-mm-modem-messaging.lo `test -f 'mm-modem-messaging.c' || echo '$(srcdir)/'`mm-modem-messaging.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_glib_la-mm-modem-messaging.Tpo $(DEPDIR)/libmm_glib_la-mm-modem-messaging.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-modem-messaging.c' object='libmm_glib_la-mm-modem-messaging.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-modem-messaging.lo `test -f 'mm-modem-messaging.c' || echo '$(srcdir)/'`mm-modem-messaging.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-modem-messaging.lo `test -f 'mm-modem-messaging.c' || echo '$(srcdir)/'`mm-modem-messaging.c
libmm_glib_la-mm-bearer.lo: mm-bearer.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-bearer.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-bearer.Tpo -c -o libmm_glib_la-mm-bearer.lo `test -f 'mm-bearer.c' || echo '$(srcdir)/'`mm-bearer.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-bearer.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-bearer.Tpo -c -o libmm_glib_la-mm-bearer.lo `test -f 'mm-bearer.c' || echo '$(srcdir)/'`mm-bearer.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_glib_la-mm-bearer.Tpo $(DEPDIR)/libmm_glib_la-mm-bearer.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-bearer.c' object='libmm_glib_la-mm-bearer.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-bearer.lo `test -f 'mm-bearer.c' || echo '$(srcdir)/'`mm-bearer.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-bearer.lo `test -f 'mm-bearer.c' || echo '$(srcdir)/'`mm-bearer.c
libmm_glib_la-mm-common-helpers.lo: mm-common-helpers.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-common-helpers.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-common-helpers.Tpo -c -o libmm_glib_la-mm-common-helpers.lo `test -f 'mm-common-helpers.c' || echo '$(srcdir)/'`mm-common-helpers.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-common-helpers.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-common-helpers.Tpo -c -o libmm_glib_la-mm-common-helpers.lo `test -f 'mm-common-helpers.c' || echo '$(srcdir)/'`mm-common-helpers.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_glib_la-mm-common-helpers.Tpo $(DEPDIR)/libmm_glib_la-mm-common-helpers.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-common-helpers.c' object='libmm_glib_la-mm-common-helpers.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-common-helpers.lo `test -f 'mm-common-helpers.c' || echo '$(srcdir)/'`mm-common-helpers.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-common-helpers.lo `test -f 'mm-common-helpers.c' || echo '$(srcdir)/'`mm-common-helpers.c
libmm_glib_la-mm-simple-status.lo: mm-simple-status.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-simple-status.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-simple-status.Tpo -c -o libmm_glib_la-mm-simple-status.lo `test -f 'mm-simple-status.c' || echo '$(srcdir)/'`mm-simple-status.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-simple-status.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-simple-status.Tpo -c -o libmm_glib_la-mm-simple-status.lo `test -f 'mm-simple-status.c' || echo '$(srcdir)/'`mm-simple-status.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_glib_la-mm-simple-status.Tpo $(DEPDIR)/libmm_glib_la-mm-simple-status.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-simple-status.c' object='libmm_glib_la-mm-simple-status.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-simple-status.lo `test -f 'mm-simple-status.c' || echo '$(srcdir)/'`mm-simple-status.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-simple-status.lo `test -f 'mm-simple-status.c' || echo '$(srcdir)/'`mm-simple-status.c
libmm_glib_la-mm-simple-connect-properties.lo: mm-simple-connect-properties.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-simple-connect-properties.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-simple-connect-properties.Tpo -c -o libmm_glib_la-mm-simple-connect-properties.lo `test -f 'mm-simple-connect-properties.c' || echo '$(srcdir)/'`mm-simple-connect-properties.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-simple-connect-properties.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-simple-connect-properties.Tpo -c -o libmm_glib_la-mm-simple-connect-properties.lo `test -f 'mm-simple-connect-properties.c' || echo '$(srcdir)/'`mm-simple-connect-properties.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_glib_la-mm-simple-connect-properties.Tpo $(DEPDIR)/libmm_glib_la-mm-simple-connect-properties.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-simple-connect-properties.c' object='libmm_glib_la-mm-simple-connect-properties.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-simple-connect-properties.lo `test -f 'mm-simple-connect-properties.c' || echo '$(srcdir)/'`mm-simple-connect-properties.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-simple-connect-properties.lo `test -f 'mm-simple-connect-properties.c' || echo '$(srcdir)/'`mm-simple-connect-properties.c
libmm_glib_la-mm-bearer-properties.lo: mm-bearer-properties.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-bearer-properties.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-bearer-properties.Tpo -c -o libmm_glib_la-mm-bearer-properties.lo `test -f 'mm-bearer-properties.c' || echo '$(srcdir)/'`mm-bearer-properties.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-bearer-properties.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-bearer-properties.Tpo -c -o libmm_glib_la-mm-bearer-properties.lo `test -f 'mm-bearer-properties.c' || echo '$(srcdir)/'`mm-bearer-properties.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_glib_la-mm-bearer-properties.Tpo $(DEPDIR)/libmm_glib_la-mm-bearer-properties.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-bearer-properties.c' object='libmm_glib_la-mm-bearer-properties.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-bearer-properties.lo `test -f 'mm-bearer-properties.c' || echo '$(srcdir)/'`mm-bearer-properties.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-bearer-properties.lo `test -f 'mm-bearer-properties.c' || echo '$(srcdir)/'`mm-bearer-properties.c
libmm_glib_la-mm-sms-properties.lo: mm-sms-properties.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-sms-properties.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-sms-properties.Tpo -c -o libmm_glib_la-mm-sms-properties.lo `test -f 'mm-sms-properties.c' || echo '$(srcdir)/'`mm-sms-properties.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-sms-properties.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-sms-properties.Tpo -c -o libmm_glib_la-mm-sms-properties.lo `test -f 'mm-sms-properties.c' || echo '$(srcdir)/'`mm-sms-properties.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_glib_la-mm-sms-properties.Tpo $(DEPDIR)/libmm_glib_la-mm-sms-properties.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-sms-properties.c' object='libmm_glib_la-mm-sms-properties.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-sms-properties.lo `test -f 'mm-sms-properties.c' || echo '$(srcdir)/'`mm-sms-properties.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-sms-properties.lo `test -f 'mm-sms-properties.c' || echo '$(srcdir)/'`mm-sms-properties.c
libmm_glib_la-mm-bearer-ip-config.lo: mm-bearer-ip-config.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-bearer-ip-config.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-bearer-ip-config.Tpo -c -o libmm_glib_la-mm-bearer-ip-config.lo `test -f 'mm-bearer-ip-config.c' || echo '$(srcdir)/'`mm-bearer-ip-config.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-bearer-ip-config.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-bearer-ip-config.Tpo -c -o libmm_glib_la-mm-bearer-ip-config.lo `test -f 'mm-bearer-ip-config.c' || echo '$(srcdir)/'`mm-bearer-ip-config.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_glib_la-mm-bearer-ip-config.Tpo $(DEPDIR)/libmm_glib_la-mm-bearer-ip-config.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-bearer-ip-config.c' object='libmm_glib_la-mm-bearer-ip-config.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-bearer-ip-config.lo `test -f 'mm-bearer-ip-config.c' || echo '$(srcdir)/'`mm-bearer-ip-config.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-bearer-ip-config.lo `test -f 'mm-bearer-ip-config.c' || echo '$(srcdir)/'`mm-bearer-ip-config.c
libmm_glib_la-mm-location-3gpp.lo: mm-location-3gpp.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-location-3gpp.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-location-3gpp.Tpo -c -o libmm_glib_la-mm-location-3gpp.lo `test -f 'mm-location-3gpp.c' || echo '$(srcdir)/'`mm-location-3gpp.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-location-3gpp.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-location-3gpp.Tpo -c -o libmm_glib_la-mm-location-3gpp.lo `test -f 'mm-location-3gpp.c' || echo '$(srcdir)/'`mm-location-3gpp.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_glib_la-mm-location-3gpp.Tpo $(DEPDIR)/libmm_glib_la-mm-location-3gpp.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-location-3gpp.c' object='libmm_glib_la-mm-location-3gpp.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-location-3gpp.lo `test -f 'mm-location-3gpp.c' || echo '$(srcdir)/'`mm-location-3gpp.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-location-3gpp.lo `test -f 'mm-location-3gpp.c' || echo '$(srcdir)/'`mm-location-3gpp.c
libmm_glib_la-mm-location-gps-raw.lo: mm-location-gps-raw.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-location-gps-raw.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-location-gps-raw.Tpo -c -o libmm_glib_la-mm-location-gps-raw.lo `test -f 'mm-location-gps-raw.c' || echo '$(srcdir)/'`mm-location-gps-raw.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-location-gps-raw.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-location-gps-raw.Tpo -c -o libmm_glib_la-mm-location-gps-raw.lo `test -f 'mm-location-gps-raw.c' || echo '$(srcdir)/'`mm-location-gps-raw.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_glib_la-mm-location-gps-raw.Tpo $(DEPDIR)/libmm_glib_la-mm-location-gps-raw.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-location-gps-raw.c' object='libmm_glib_la-mm-location-gps-raw.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-location-gps-raw.lo `test -f 'mm-location-gps-raw.c' || echo '$(srcdir)/'`mm-location-gps-raw.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-location-gps-raw.lo `test -f 'mm-location-gps-raw.c' || echo '$(srcdir)/'`mm-location-gps-raw.c
libmm_glib_la-mm-location-gps-nmea.lo: mm-location-gps-nmea.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-location-gps-nmea.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-location-gps-nmea.Tpo -c -o libmm_glib_la-mm-location-gps-nmea.lo `test -f 'mm-location-gps-nmea.c' || echo '$(srcdir)/'`mm-location-gps-nmea.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-location-gps-nmea.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-location-gps-nmea.Tpo -c -o libmm_glib_la-mm-location-gps-nmea.lo `test -f 'mm-location-gps-nmea.c' || echo '$(srcdir)/'`mm-location-gps-nmea.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_glib_la-mm-location-gps-nmea.Tpo $(DEPDIR)/libmm_glib_la-mm-location-gps-nmea.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-location-gps-nmea.c' object='libmm_glib_la-mm-location-gps-nmea.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-location-gps-nmea.lo `test -f 'mm-location-gps-nmea.c' || echo '$(srcdir)/'`mm-location-gps-nmea.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-location-gps-nmea.lo `test -f 'mm-location-gps-nmea.c' || echo '$(srcdir)/'`mm-location-gps-nmea.c
libmm_glib_la-mm-location-cdma-bs.lo: mm-location-cdma-bs.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-location-cdma-bs.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-location-cdma-bs.Tpo -c -o libmm_glib_la-mm-location-cdma-bs.lo `test -f 'mm-location-cdma-bs.c' || echo '$(srcdir)/'`mm-location-cdma-bs.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-location-cdma-bs.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-location-cdma-bs.Tpo -c -o libmm_glib_la-mm-location-cdma-bs.lo `test -f 'mm-location-cdma-bs.c' || echo '$(srcdir)/'`mm-location-cdma-bs.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_glib_la-mm-location-cdma-bs.Tpo $(DEPDIR)/libmm_glib_la-mm-location-cdma-bs.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-location-cdma-bs.c' object='libmm_glib_la-mm-location-cdma-bs.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-location-cdma-bs.lo `test -f 'mm-location-cdma-bs.c' || echo '$(srcdir)/'`mm-location-cdma-bs.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-location-cdma-bs.lo `test -f 'mm-location-cdma-bs.c' || echo '$(srcdir)/'`mm-location-cdma-bs.c
libmm_glib_la-mm-unlock-retries.lo: mm-unlock-retries.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-unlock-retries.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-unlock-retries.Tpo -c -o libmm_glib_la-mm-unlock-retries.lo `test -f 'mm-unlock-retries.c' || echo '$(srcdir)/'`mm-unlock-retries.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-unlock-retries.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-unlock-retries.Tpo -c -o libmm_glib_la-mm-unlock-retries.lo `test -f 'mm-unlock-retries.c' || echo '$(srcdir)/'`mm-unlock-retries.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_glib_la-mm-unlock-retries.Tpo $(DEPDIR)/libmm_glib_la-mm-unlock-retries.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-unlock-retries.c' object='libmm_glib_la-mm-unlock-retries.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-unlock-retries.lo `test -f 'mm-unlock-retries.c' || echo '$(srcdir)/'`mm-unlock-retries.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-unlock-retries.lo `test -f 'mm-unlock-retries.c' || echo '$(srcdir)/'`mm-unlock-retries.c
libmm_glib_la-mm-network-timezone.lo: mm-network-timezone.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-network-timezone.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-network-timezone.Tpo -c -o libmm_glib_la-mm-network-timezone.lo `test -f 'mm-network-timezone.c' || echo '$(srcdir)/'`mm-network-timezone.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-network-timezone.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-network-timezone.Tpo -c -o libmm_glib_la-mm-network-timezone.lo `test -f 'mm-network-timezone.c' || echo '$(srcdir)/'`mm-network-timezone.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_glib_la-mm-network-timezone.Tpo $(DEPDIR)/libmm_glib_la-mm-network-timezone.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-network-timezone.c' object='libmm_glib_la-mm-network-timezone.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-network-timezone.lo `test -f 'mm-network-timezone.c' || echo '$(srcdir)/'`mm-network-timezone.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-network-timezone.lo `test -f 'mm-network-timezone.c' || echo '$(srcdir)/'`mm-network-timezone.c
libmm_glib_la-mm-firmware-properties.lo: mm-firmware-properties.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-firmware-properties.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-firmware-properties.Tpo -c -o libmm_glib_la-mm-firmware-properties.lo `test -f 'mm-firmware-properties.c' || echo '$(srcdir)/'`mm-firmware-properties.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-firmware-properties.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-firmware-properties.Tpo -c -o libmm_glib_la-mm-firmware-properties.lo `test -f 'mm-firmware-properties.c' || echo '$(srcdir)/'`mm-firmware-properties.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_glib_la-mm-firmware-properties.Tpo $(DEPDIR)/libmm_glib_la-mm-firmware-properties.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-firmware-properties.c' object='libmm_glib_la-mm-firmware-properties.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-firmware-properties.lo `test -f 'mm-firmware-properties.c' || echo '$(srcdir)/'`mm-firmware-properties.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-firmware-properties.lo `test -f 'mm-firmware-properties.c' || echo '$(srcdir)/'`mm-firmware-properties.c
+
+libmm_glib_la-mm-cdma-manual-activation-properties.lo: mm-cdma-manual-activation-properties.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-cdma-manual-activation-properties.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-cdma-manual-activation-properties.Tpo -c -o libmm_glib_la-mm-cdma-manual-activation-properties.lo `test -f 'mm-cdma-manual-activation-properties.c' || echo '$(srcdir)/'`mm-cdma-manual-activation-properties.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_glib_la-mm-cdma-manual-activation-properties.Tpo $(DEPDIR)/libmm_glib_la-mm-cdma-manual-activation-properties.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-cdma-manual-activation-properties.c' object='libmm_glib_la-mm-cdma-manual-activation-properties.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-cdma-manual-activation-properties.lo `test -f 'mm-cdma-manual-activation-properties.c' || echo '$(srcdir)/'`mm-cdma-manual-activation-properties.c
+
+libmm_glib_la-mm-signal.lo: mm-signal.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -MT libmm_glib_la-mm-signal.lo -MD -MP -MF $(DEPDIR)/libmm_glib_la-mm-signal.Tpo -c -o libmm_glib_la-mm-signal.lo `test -f 'mm-signal.c' || echo '$(srcdir)/'`mm-signal.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmm_glib_la-mm-signal.Tpo $(DEPDIR)/libmm_glib_la-mm-signal.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-signal.c' object='libmm_glib_la-mm-signal.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_glib_la_CPPFLAGS) $(CPPFLAGS) $(libmm_glib_la_CFLAGS) $(CFLAGS) -c -o libmm_glib_la-mm-signal.lo `test -f 'mm-signal.c' || echo '$(srcdir)/'`mm-signal.c
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
+install-nodist_girDATA: $(nodist_gir_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(nodist_gir_DATA)'; test -n "$(girdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(girdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(girdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(girdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(girdir)" || exit $$?; \
+ done
+
+uninstall-nodist_girDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(nodist_gir_DATA)'; test -n "$(girdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
+install-nodist_typelibDATA: $(nodist_typelib_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(nodist_typelib_DATA)'; test -n "$(typelibdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(typelibdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(typelibdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(typelibdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(typelibdir)" || exit $$?; \
+ done
+
+uninstall-nodist_typelibDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(nodist_typelib_DATA)'; test -n "$(typelibdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(typelibdir)'; $(am__uninstall_files_from_dir)
install-includeHEADERS: $(include_HEADERS)
@$(NORMAL_INSTALL)
@list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
@@ -1070,10 +1234,10 @@ distdir: $(DISTFILES)
done
check-am: all-am
check: check-recursive
-all-am: Makefile $(LTLIBRARIES) $(HEADERS)
+all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS)
installdirs: installdirs-recursive
installdirs-am:
- for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)"; do \
+ for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(typelibdir)" "$(DESTDIR)$(includedir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-recursive
@@ -1098,6 +1262,7 @@ install-strip:
mostlyclean-generic:
clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
@@ -1129,7 +1294,8 @@ info: info-recursive
info-am:
-install-data-am: install-includeHEADERS
+install-data-am: install-includeHEADERS install-nodist_girDATA \
+ install-nodist_typelibDATA
install-dvi: install-dvi-recursive
@@ -1175,7 +1341,8 @@ ps: ps-recursive
ps-am:
-uninstall-am: uninstall-includeHEADERS uninstall-libLTLIBRARIES
+uninstall-am: uninstall-includeHEADERS uninstall-libLTLIBRARIES \
+ uninstall-nodist_girDATA uninstall-nodist_typelibDATA
.MAKE: $(am__recursive_targets) install-am install-strip
@@ -1187,14 +1354,23 @@ uninstall-am: uninstall-includeHEADERS uninstall-libLTLIBRARIES
install install-am install-data install-data-am install-dvi \
install-dvi-am install-exec install-exec-am install-html \
install-html-am install-includeHEADERS install-info \
- install-info-am install-libLTLIBRARIES install-man install-pdf \
+ install-info-am install-libLTLIBRARIES install-man \
+ install-nodist_girDATA install-nodist_typelibDATA install-pdf \
install-pdf-am install-ps install-ps-am install-strip \
installcheck installcheck-am installdirs installdirs-am \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
- uninstall-includeHEADERS uninstall-libLTLIBRARIES
+ uninstall-includeHEADERS uninstall-libLTLIBRARIES \
+ uninstall-nodist_girDATA uninstall-nodist_typelibDATA
+
+@HAVE_INTROSPECTION_TRUE@ ModemManager-enums.h \
+@HAVE_INTROSPECTION_TRUE@ ModemManager-errors.h \
+@HAVE_INTROSPECTION_TRUE@ ModemManager.h
+
+@HAVE_INTROSPECTION_TRUE@ModemManager-1.0.gir: libmm-glib.la
+-include $(INTROSPECTION_MAKEFILE)
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/libmm-glib/generated/Makefile.am b/libmm-glib/generated/Makefile.am
index b54b234..14d7bf3 100644
--- a/libmm-glib/generated/Makefile.am
+++ b/libmm-glib/generated/Makefile.am
@@ -30,10 +30,12 @@ GENERATED_DOC = \
mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Location.xml \
mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Time.xml \
mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Firmware.xml \
+ mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Oma.xml \
mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.ModemCdma.xml \
mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Modem3gpp.xml \
mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.xml \
- mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Simple.xml
+ mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Simple.xml \
+ mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Signal.xml
BUILT_SOURCES = $(GENERATED_H) $(GENERATED_C) $(GENERATED_DOC)
@@ -94,20 +96,24 @@ mm_gdbus_modem_generated = \
mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Location.xml \
mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Time.xml \
mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Firmware.xml \
+ mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Oma.xml \
mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.ModemCdma.xml \
mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Modem3gpp.xml \
mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.xml \
- mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Simple.xml
+ mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Simple.xml \
+ mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Signal.xml
mm_gdbus_modem_deps = \
$(top_srcdir)/introspection/org.freedesktop.ModemManager1.Modem.xml \
$(top_srcdir)/introspection/org.freedesktop.ModemManager1.Modem.Messaging.xml \
$(top_srcdir)/introspection/org.freedesktop.ModemManager1.Modem.Location.xml \
$(top_srcdir)/introspection/org.freedesktop.ModemManager1.Modem.Time.xml \
$(top_srcdir)/introspection/org.freedesktop.ModemManager1.Modem.Firmware.xml \
+ $(top_srcdir)/introspection/org.freedesktop.ModemManager1.Modem.Oma.xml \
$(top_srcdir)/introspection/org.freedesktop.ModemManager1.Modem.ModemCdma.xml \
$(top_srcdir)/introspection/org.freedesktop.ModemManager1.Modem.Modem3gpp.xml \
$(top_srcdir)/introspection/org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.xml \
- $(top_srcdir)/introspection/org.freedesktop.ModemManager1.Modem.Simple.xml
+ $(top_srcdir)/introspection/org.freedesktop.ModemManager1.Modem.Simple.xml \
+ $(top_srcdir)/introspection/org.freedesktop.ModemManager1.Modem.Signal.xml
$(mm_gdbus_modem_generated): $(mm_gdbus_modem_deps)
$(AM_V_GEN) gdbus-codegen \
--interface-prefix org.freedesktop.ModemManager1. \
diff --git a/libmm-glib/generated/Makefile.in b/libmm-glib/generated/Makefile.in
index 9671e1e..3406efe 100644
--- a/libmm-glib/generated/Makefile.in
+++ b/libmm-glib/generated/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -86,12 +86,13 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \
$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
- $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
- $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/introspection.m4 \
+ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
@@ -265,6 +266,14 @@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
@@ -331,6 +340,9 @@ STRIP = @STRIP@
SYSTEMD_UNIT_DIR = @SYSTEMD_UNIT_DIR@
UDEV_BASE_DIR = @UDEV_BASE_DIR@
USE_NLS = @USE_NLS@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
@@ -419,10 +431,12 @@ GENERATED_DOC = \
mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Location.xml \
mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Time.xml \
mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Firmware.xml \
+ mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Oma.xml \
mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.ModemCdma.xml \
mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Modem3gpp.xml \
mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.xml \
- mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Simple.xml
+ mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Simple.xml \
+ mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Signal.xml
BUILT_SOURCES = $(GENERATED_H) $(GENERATED_C) $(GENERATED_DOC)
@@ -442,10 +456,12 @@ mm_gdbus_modem_generated = \
mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Location.xml \
mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Time.xml \
mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Firmware.xml \
+ mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Oma.xml \
mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.ModemCdma.xml \
mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Modem3gpp.xml \
mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.xml \
- mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Simple.xml
+ mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Simple.xml \
+ mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Signal.xml
mm_gdbus_modem_deps = \
$(top_srcdir)/introspection/org.freedesktop.ModemManager1.Modem.xml \
@@ -453,10 +469,12 @@ mm_gdbus_modem_deps = \
$(top_srcdir)/introspection/org.freedesktop.ModemManager1.Modem.Location.xml \
$(top_srcdir)/introspection/org.freedesktop.ModemManager1.Modem.Time.xml \
$(top_srcdir)/introspection/org.freedesktop.ModemManager1.Modem.Firmware.xml \
+ $(top_srcdir)/introspection/org.freedesktop.ModemManager1.Modem.Oma.xml \
$(top_srcdir)/introspection/org.freedesktop.ModemManager1.Modem.ModemCdma.xml \
$(top_srcdir)/introspection/org.freedesktop.ModemManager1.Modem.Modem3gpp.xml \
$(top_srcdir)/introspection/org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.xml \
- $(top_srcdir)/introspection/org.freedesktop.ModemManager1.Modem.Simple.xml
+ $(top_srcdir)/introspection/org.freedesktop.ModemManager1.Modem.Simple.xml \
+ $(top_srcdir)/introspection/org.freedesktop.ModemManager1.Modem.Signal.xml
# SIM interface
diff --git a/libmm-glib/generated/mm-enums-types.h b/libmm-glib/generated/mm-enums-types.h
index 9d132e4..75f02d8 100644
--- a/libmm-glib/generated/mm-enums-types.h
+++ b/libmm-glib/generated/mm-enums-types.h
@@ -250,6 +250,38 @@ const gchar *mm_sms_validity_type_get_string (MMSmsValidityType val);
gchar *mm_sms_validity_type_build_string_from_mask (MMSmsValidityType mask);
#endif
+GType mm_sms_cdma_teleservice_id_get_type (void) G_GNUC_CONST;
+#define MM_TYPE_SMS_CDMA_TELESERVICE_ID (mm_sms_cdma_teleservice_id_get_type ())
+
+/* Define type-specific symbols */
+#undef __MM_IS_ENUM__
+#undef __MM_IS_FLAGS__
+#define __MM_IS_ENUM__
+
+#if defined __MM_IS_ENUM__
+const gchar *mm_sms_cdma_teleservice_id_get_string (MMSmsCdmaTeleserviceId val);
+#endif
+
+#if defined __MM_IS_FLAGS__
+gchar *mm_sms_cdma_teleservice_id_build_string_from_mask (MMSmsCdmaTeleserviceId mask);
+#endif
+
+GType mm_sms_cdma_service_category_get_type (void) G_GNUC_CONST;
+#define MM_TYPE_SMS_CDMA_SERVICE_CATEGORY (mm_sms_cdma_service_category_get_type ())
+
+/* Define type-specific symbols */
+#undef __MM_IS_ENUM__
+#undef __MM_IS_FLAGS__
+#define __MM_IS_ENUM__
+
+#if defined __MM_IS_ENUM__
+const gchar *mm_sms_cdma_service_category_get_string (MMSmsCdmaServiceCategory val);
+#endif
+
+#if defined __MM_IS_FLAGS__
+gchar *mm_sms_cdma_service_category_build_string_from_mask (MMSmsCdmaServiceCategory mask);
+#endif
+
GType mm_modem_location_source_get_type (void) G_GNUC_CONST;
#define MM_TYPE_MODEM_LOCATION_SOURCE (mm_modem_location_source_get_type ())
@@ -426,6 +458,22 @@ const gchar *mm_modem_3gpp_network_availability_get_string (MMModem3gppNetworkAv
gchar *mm_modem_3gpp_network_availability_build_string_from_mask (MMModem3gppNetworkAvailability mask);
#endif
+GType mm_modem_3gpp_subscription_state_get_type (void) G_GNUC_CONST;
+#define MM_TYPE_MODEM_3GPP_SUBSCRIPTION_STATE (mm_modem_3gpp_subscription_state_get_type ())
+
+/* Define type-specific symbols */
+#undef __MM_IS_ENUM__
+#undef __MM_IS_FLAGS__
+#define __MM_IS_ENUM__
+
+#if defined __MM_IS_ENUM__
+const gchar *mm_modem_3gpp_subscription_state_get_string (MMModem3gppSubscriptionState val);
+#endif
+
+#if defined __MM_IS_FLAGS__
+gchar *mm_modem_3gpp_subscription_state_build_string_from_mask (MMModem3gppSubscriptionState mask);
+#endif
+
GType mm_modem_3gpp_ussd_session_state_get_type (void) G_GNUC_CONST;
#define MM_TYPE_MODEM_3GPP_USSD_SESSION_STATE (mm_modem_3gpp_ussd_session_state_get_type ())
@@ -458,6 +506,70 @@ const gchar *mm_firmware_image_type_get_string (MMFirmwareImageType val);
gchar *mm_firmware_image_type_build_string_from_mask (MMFirmwareImageType mask);
#endif
+GType mm_oma_feature_get_type (void) G_GNUC_CONST;
+#define MM_TYPE_OMA_FEATURE (mm_oma_feature_get_type ())
+
+/* Define type-specific symbols */
+#undef __MM_IS_ENUM__
+#undef __MM_IS_FLAGS__
+#define __MM_IS_FLAGS__
+
+#if defined __MM_IS_ENUM__
+const gchar *mm_oma_feature_get_string (MMOmaFeature val);
+#endif
+
+#if defined __MM_IS_FLAGS__
+gchar *mm_oma_feature_build_string_from_mask (MMOmaFeature mask);
+#endif
+
+GType mm_oma_session_type_get_type (void) G_GNUC_CONST;
+#define MM_TYPE_OMA_SESSION_TYPE (mm_oma_session_type_get_type ())
+
+/* Define type-specific symbols */
+#undef __MM_IS_ENUM__
+#undef __MM_IS_FLAGS__
+#define __MM_IS_ENUM__
+
+#if defined __MM_IS_ENUM__
+const gchar *mm_oma_session_type_get_string (MMOmaSessionType val);
+#endif
+
+#if defined __MM_IS_FLAGS__
+gchar *mm_oma_session_type_build_string_from_mask (MMOmaSessionType mask);
+#endif
+
+GType mm_oma_session_state_get_type (void) G_GNUC_CONST;
+#define MM_TYPE_OMA_SESSION_STATE (mm_oma_session_state_get_type ())
+
+/* Define type-specific symbols */
+#undef __MM_IS_ENUM__
+#undef __MM_IS_FLAGS__
+#define __MM_IS_ENUM__
+
+#if defined __MM_IS_ENUM__
+const gchar *mm_oma_session_state_get_string (MMOmaSessionState val);
+#endif
+
+#if defined __MM_IS_FLAGS__
+gchar *mm_oma_session_state_build_string_from_mask (MMOmaSessionState mask);
+#endif
+
+GType mm_oma_session_state_failed_reason_get_type (void) G_GNUC_CONST;
+#define MM_TYPE_OMA_SESSION_STATE_FAILED_REASON (mm_oma_session_state_failed_reason_get_type ())
+
+/* Define type-specific symbols */
+#undef __MM_IS_ENUM__
+#undef __MM_IS_FLAGS__
+#define __MM_IS_ENUM__
+
+#if defined __MM_IS_ENUM__
+const gchar *mm_oma_session_state_failed_reason_get_string (MMOmaSessionStateFailedReason val);
+#endif
+
+#if defined __MM_IS_FLAGS__
+gchar *mm_oma_session_state_failed_reason_build_string_from_mask (MMOmaSessionStateFailedReason mask);
+#endif
+
G_END_DECLS
#endif /* __MM_ENUMS_TYPES_H__ */
diff --git a/libmm-glib/generated/mm-gdbus-bearer.h b/libmm-glib/generated/mm-gdbus-bearer.h
index 5d2c096..b3d25eb 100644
--- a/libmm-glib/generated/mm-gdbus-bearer.h
+++ b/libmm-glib/generated/mm-gdbus-bearer.h
@@ -1,5 +1,5 @@
/*
- * Generated by gdbus-codegen 2.36.3. DO NOT EDIT.
+ * Generated by gdbus-codegen 2.39.3. DO NOT EDIT.
*
* The license of this code is the same as for the source it was derived from.
*/
diff --git a/libmm-glib/generated/mm-gdbus-manager.h b/libmm-glib/generated/mm-gdbus-manager.h
index f30af97..6b67577 100644
--- a/libmm-glib/generated/mm-gdbus-manager.h
+++ b/libmm-glib/generated/mm-gdbus-manager.h
@@ -1,5 +1,5 @@
/*
- * Generated by gdbus-codegen 2.36.3. DO NOT EDIT.
+ * Generated by gdbus-codegen 2.39.3. DO NOT EDIT.
*
* The license of this code is the same as for the source it was derived from.
*/
diff --git a/libmm-glib/generated/mm-gdbus-modem.h b/libmm-glib/generated/mm-gdbus-modem.h
index 3c80357..95acfa5 100644
--- a/libmm-glib/generated/mm-gdbus-modem.h
+++ b/libmm-glib/generated/mm-gdbus-modem.h
@@ -1,5 +1,5 @@
/*
- * Generated by gdbus-codegen 2.36.3. DO NOT EDIT.
+ * Generated by gdbus-codegen 2.39.3. DO NOT EDIT.
*
* The license of this code is the same as for the source it was derived from.
*/
@@ -86,6 +86,8 @@ struct _MmGdbusModemIface
guint (*get_access_technologies) (MmGdbusModem *object);
+ const gchar *const * (*get_bearers) (MmGdbusModem *object);
+
GVariant * (*get_current_bands) (MmGdbusModem *object);
guint (*get_current_capabilities) (MmGdbusModem *object);
@@ -423,6 +425,10 @@ const gchar *mm_gdbus_modem_get_sim (MmGdbusModem *object);
gchar *mm_gdbus_modem_dup_sim (MmGdbusModem *object);
void mm_gdbus_modem_set_sim (MmGdbusModem *object, const gchar *value);
+const gchar *const *mm_gdbus_modem_get_bearers (MmGdbusModem *object);
+gchar **mm_gdbus_modem_dup_bearers (MmGdbusModem *object);
+void mm_gdbus_modem_set_bearers (MmGdbusModem *object, const gchar *const *value);
+
GVariant *mm_gdbus_modem_get_supported_capabilities (MmGdbusModem *object);
GVariant *mm_gdbus_modem_dup_supported_capabilities (MmGdbusModem *object);
void mm_gdbus_modem_set_supported_capabilities (MmGdbusModem *object, GVariant *value);
@@ -653,6 +659,8 @@ struct _MmGdbusModemMessagingIface
guint (*get_default_storage) (MmGdbusModemMessaging *object);
+ const gchar *const * (*get_messages) (MmGdbusModemMessaging *object);
+
GVariant * (*get_supported_storages) (MmGdbusModemMessaging *object);
void (*added) (
@@ -761,6 +769,10 @@ gboolean mm_gdbus_modem_messaging_call_create_sync (
/* D-Bus property accessors: */
+const gchar *const *mm_gdbus_modem_messaging_get_messages (MmGdbusModemMessaging *object);
+gchar **mm_gdbus_modem_messaging_dup_messages (MmGdbusModemMessaging *object);
+void mm_gdbus_modem_messaging_set_messages (MmGdbusModemMessaging *object, const gchar *const *value);
+
GVariant *mm_gdbus_modem_messaging_get_supported_storages (MmGdbusModemMessaging *object);
GVariant *mm_gdbus_modem_messaging_dup_supported_storages (MmGdbusModemMessaging *object);
void mm_gdbus_modem_messaging_set_supported_storages (MmGdbusModemMessaging *object, GVariant *value);
@@ -1430,6 +1442,280 @@ MmGdbusModemFirmware *mm_gdbus_modem_firmware_skeleton_new (void);
/* ------------------------------------------------------------------------ */
+/* Declarations for org.freedesktop.ModemManager1.Modem.Oma */
+
+#define MM_GDBUS_TYPE_MODEM_OMA (mm_gdbus_modem_oma_get_type ())
+#define MM_GDBUS_MODEM_OMA(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), MM_GDBUS_TYPE_MODEM_OMA, MmGdbusModemOma))
+#define MM_GDBUS_IS_MODEM_OMA(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), MM_GDBUS_TYPE_MODEM_OMA))
+#define MM_GDBUS_MODEM_OMA_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), MM_GDBUS_TYPE_MODEM_OMA, MmGdbusModemOmaIface))
+
+struct _MmGdbusModemOma;
+typedef struct _MmGdbusModemOma MmGdbusModemOma;
+typedef struct _MmGdbusModemOmaIface MmGdbusModemOmaIface;
+
+struct _MmGdbusModemOmaIface
+{
+ GTypeInterface parent_iface;
+
+
+
+ gboolean (*handle_accept_network_initiated_session) (
+ MmGdbusModemOma *object,
+ GDBusMethodInvocation *invocation,
+ guint arg_session_id,
+ gboolean arg_accept);
+
+ gboolean (*handle_cancel_session) (
+ MmGdbusModemOma *object,
+ GDBusMethodInvocation *invocation);
+
+ gboolean (*handle_setup) (
+ MmGdbusModemOma *object,
+ GDBusMethodInvocation *invocation,
+ guint arg_features);
+
+ gboolean (*handle_start_client_initiated_session) (
+ MmGdbusModemOma *object,
+ GDBusMethodInvocation *invocation,
+ guint arg_session_type);
+
+ guint (*get_features) (MmGdbusModemOma *object);
+
+ GVariant * (*get_pending_network_initiated_sessions) (MmGdbusModemOma *object);
+
+ gint (*get_session_state) (MmGdbusModemOma *object);
+
+ guint (*get_session_type) (MmGdbusModemOma *object);
+
+ void (*session_state_changed) (
+ MmGdbusModemOma *object,
+ gint arg_old_session_state,
+ gint arg_new_session_state,
+ guint arg_session_state_failed_reason);
+
+};
+
+GType mm_gdbus_modem_oma_get_type (void) G_GNUC_CONST;
+
+GDBusInterfaceInfo *mm_gdbus_modem_oma_interface_info (void);
+guint mm_gdbus_modem_oma_override_properties (GObjectClass *klass, guint property_id_begin);
+
+
+/* D-Bus method call completion functions: */
+void mm_gdbus_modem_oma_complete_setup (
+ MmGdbusModemOma *object,
+ GDBusMethodInvocation *invocation);
+
+void mm_gdbus_modem_oma_complete_start_client_initiated_session (
+ MmGdbusModemOma *object,
+ GDBusMethodInvocation *invocation);
+
+void mm_gdbus_modem_oma_complete_accept_network_initiated_session (
+ MmGdbusModemOma *object,
+ GDBusMethodInvocation *invocation);
+
+void mm_gdbus_modem_oma_complete_cancel_session (
+ MmGdbusModemOma *object,
+ GDBusMethodInvocation *invocation);
+
+
+
+/* D-Bus signal emissions functions: */
+void mm_gdbus_modem_oma_emit_session_state_changed (
+ MmGdbusModemOma *object,
+ gint arg_old_session_state,
+ gint arg_new_session_state,
+ guint arg_session_state_failed_reason);
+
+
+
+/* D-Bus method calls: */
+void mm_gdbus_modem_oma_call_setup (
+ MmGdbusModemOma *proxy,
+ guint arg_features,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+
+gboolean mm_gdbus_modem_oma_call_setup_finish (
+ MmGdbusModemOma *proxy,
+ GAsyncResult *res,
+ GError **error);
+
+gboolean mm_gdbus_modem_oma_call_setup_sync (
+ MmGdbusModemOma *proxy,
+ guint arg_features,
+ GCancellable *cancellable,
+ GError **error);
+
+void mm_gdbus_modem_oma_call_start_client_initiated_session (
+ MmGdbusModemOma *proxy,
+ guint arg_session_type,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+
+gboolean mm_gdbus_modem_oma_call_start_client_initiated_session_finish (
+ MmGdbusModemOma *proxy,
+ GAsyncResult *res,
+ GError **error);
+
+gboolean mm_gdbus_modem_oma_call_start_client_initiated_session_sync (
+ MmGdbusModemOma *proxy,
+ guint arg_session_type,
+ GCancellable *cancellable,
+ GError **error);
+
+void mm_gdbus_modem_oma_call_accept_network_initiated_session (
+ MmGdbusModemOma *proxy,
+ guint arg_session_id,
+ gboolean arg_accept,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+
+gboolean mm_gdbus_modem_oma_call_accept_network_initiated_session_finish (
+ MmGdbusModemOma *proxy,
+ GAsyncResult *res,
+ GError **error);
+
+gboolean mm_gdbus_modem_oma_call_accept_network_initiated_session_sync (
+ MmGdbusModemOma *proxy,
+ guint arg_session_id,
+ gboolean arg_accept,
+ GCancellable *cancellable,
+ GError **error);
+
+void mm_gdbus_modem_oma_call_cancel_session (
+ MmGdbusModemOma *proxy,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+
+gboolean mm_gdbus_modem_oma_call_cancel_session_finish (
+ MmGdbusModemOma *proxy,
+ GAsyncResult *res,
+ GError **error);
+
+gboolean mm_gdbus_modem_oma_call_cancel_session_sync (
+ MmGdbusModemOma *proxy,
+ GCancellable *cancellable,
+ GError **error);
+
+
+
+/* D-Bus property accessors: */
+guint mm_gdbus_modem_oma_get_features (MmGdbusModemOma *object);
+void mm_gdbus_modem_oma_set_features (MmGdbusModemOma *object, guint value);
+
+GVariant *mm_gdbus_modem_oma_get_pending_network_initiated_sessions (MmGdbusModemOma *object);
+GVariant *mm_gdbus_modem_oma_dup_pending_network_initiated_sessions (MmGdbusModemOma *object);
+void mm_gdbus_modem_oma_set_pending_network_initiated_sessions (MmGdbusModemOma *object, GVariant *value);
+
+guint mm_gdbus_modem_oma_get_session_type (MmGdbusModemOma *object);
+void mm_gdbus_modem_oma_set_session_type (MmGdbusModemOma *object, guint value);
+
+gint mm_gdbus_modem_oma_get_session_state (MmGdbusModemOma *object);
+void mm_gdbus_modem_oma_set_session_state (MmGdbusModemOma *object, gint value);
+
+
+/* ---- */
+
+#define MM_GDBUS_TYPE_MODEM_OMA_PROXY (mm_gdbus_modem_oma_proxy_get_type ())
+#define MM_GDBUS_MODEM_OMA_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), MM_GDBUS_TYPE_MODEM_OMA_PROXY, MmGdbusModemOmaProxy))
+#define MM_GDBUS_MODEM_OMA_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), MM_GDBUS_TYPE_MODEM_OMA_PROXY, MmGdbusModemOmaProxyClass))
+#define MM_GDBUS_MODEM_OMA_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), MM_GDBUS_TYPE_MODEM_OMA_PROXY, MmGdbusModemOmaProxyClass))
+#define MM_GDBUS_IS_MODEM_OMA_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), MM_GDBUS_TYPE_MODEM_OMA_PROXY))
+#define MM_GDBUS_IS_MODEM_OMA_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), MM_GDBUS_TYPE_MODEM_OMA_PROXY))
+
+typedef struct _MmGdbusModemOmaProxy MmGdbusModemOmaProxy;
+typedef struct _MmGdbusModemOmaProxyClass MmGdbusModemOmaProxyClass;
+typedef struct _MmGdbusModemOmaProxyPrivate MmGdbusModemOmaProxyPrivate;
+
+struct _MmGdbusModemOmaProxy
+{
+ /*< private >*/
+ GDBusProxy parent_instance;
+ MmGdbusModemOmaProxyPrivate *priv;
+};
+
+struct _MmGdbusModemOmaProxyClass
+{
+ GDBusProxyClass parent_class;
+};
+
+GType mm_gdbus_modem_oma_proxy_get_type (void) G_GNUC_CONST;
+
+void mm_gdbus_modem_oma_proxy_new (
+ GDBusConnection *connection,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+MmGdbusModemOma *mm_gdbus_modem_oma_proxy_new_finish (
+ GAsyncResult *res,
+ GError **error);
+MmGdbusModemOma *mm_gdbus_modem_oma_proxy_new_sync (
+ GDBusConnection *connection,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GError **error);
+
+void mm_gdbus_modem_oma_proxy_new_for_bus (
+ GBusType bus_type,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+MmGdbusModemOma *mm_gdbus_modem_oma_proxy_new_for_bus_finish (
+ GAsyncResult *res,
+ GError **error);
+MmGdbusModemOma *mm_gdbus_modem_oma_proxy_new_for_bus_sync (
+ GBusType bus_type,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GError **error);
+
+
+/* ---- */
+
+#define MM_GDBUS_TYPE_MODEM_OMA_SKELETON (mm_gdbus_modem_oma_skeleton_get_type ())
+#define MM_GDBUS_MODEM_OMA_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), MM_GDBUS_TYPE_MODEM_OMA_SKELETON, MmGdbusModemOmaSkeleton))
+#define MM_GDBUS_MODEM_OMA_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), MM_GDBUS_TYPE_MODEM_OMA_SKELETON, MmGdbusModemOmaSkeletonClass))
+#define MM_GDBUS_MODEM_OMA_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), MM_GDBUS_TYPE_MODEM_OMA_SKELETON, MmGdbusModemOmaSkeletonClass))
+#define MM_GDBUS_IS_MODEM_OMA_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), MM_GDBUS_TYPE_MODEM_OMA_SKELETON))
+#define MM_GDBUS_IS_MODEM_OMA_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), MM_GDBUS_TYPE_MODEM_OMA_SKELETON))
+
+typedef struct _MmGdbusModemOmaSkeleton MmGdbusModemOmaSkeleton;
+typedef struct _MmGdbusModemOmaSkeletonClass MmGdbusModemOmaSkeletonClass;
+typedef struct _MmGdbusModemOmaSkeletonPrivate MmGdbusModemOmaSkeletonPrivate;
+
+struct _MmGdbusModemOmaSkeleton
+{
+ /*< private >*/
+ GDBusInterfaceSkeleton parent_instance;
+ MmGdbusModemOmaSkeletonPrivate *priv;
+};
+
+struct _MmGdbusModemOmaSkeletonClass
+{
+ GDBusInterfaceSkeletonClass parent_class;
+};
+
+GType mm_gdbus_modem_oma_skeleton_get_type (void) G_GNUC_CONST;
+
+MmGdbusModemOma *mm_gdbus_modem_oma_skeleton_new (void);
+
+
+/* ------------------------------------------------------------------------ */
/* Declarations for org.freedesktop.ModemManager1.Modem.ModemCdma */
#define MM_GDBUS_TYPE_MODEM_CDMA (mm_gdbus_modem_cdma_get_type ())
@@ -1701,6 +1987,8 @@ struct _MmGdbusModem3gppIface
guint (*get_registration_state) (MmGdbusModem3gpp *object);
+ guint (*get_subscription_state) (MmGdbusModem3gpp *object);
+
};
GType mm_gdbus_modem3gpp_get_type (void) G_GNUC_CONST;
@@ -1779,6 +2067,9 @@ void mm_gdbus_modem3gpp_set_operator_name (MmGdbusModem3gpp *object, const gchar
guint mm_gdbus_modem3gpp_get_enabled_facility_locks (MmGdbusModem3gpp *object);
void mm_gdbus_modem3gpp_set_enabled_facility_locks (MmGdbusModem3gpp *object, guint value);
+guint mm_gdbus_modem3gpp_get_subscription_state (MmGdbusModem3gpp *object);
+void mm_gdbus_modem3gpp_set_subscription_state (MmGdbusModem3gpp *object, guint value);
+
/* ---- */
@@ -2316,6 +2607,197 @@ GType mm_gdbus_modem_simple_skeleton_get_type (void) G_GNUC_CONST;
MmGdbusModemSimple *mm_gdbus_modem_simple_skeleton_new (void);
+/* ------------------------------------------------------------------------ */
+/* Declarations for org.freedesktop.ModemManager1.Modem.Signal */
+
+#define MM_GDBUS_TYPE_MODEM_SIGNAL (mm_gdbus_modem_signal_get_type ())
+#define MM_GDBUS_MODEM_SIGNAL(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), MM_GDBUS_TYPE_MODEM_SIGNAL, MmGdbusModemSignal))
+#define MM_GDBUS_IS_MODEM_SIGNAL(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), MM_GDBUS_TYPE_MODEM_SIGNAL))
+#define MM_GDBUS_MODEM_SIGNAL_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), MM_GDBUS_TYPE_MODEM_SIGNAL, MmGdbusModemSignalIface))
+
+struct _MmGdbusModemSignal;
+typedef struct _MmGdbusModemSignal MmGdbusModemSignal;
+typedef struct _MmGdbusModemSignalIface MmGdbusModemSignalIface;
+
+struct _MmGdbusModemSignalIface
+{
+ GTypeInterface parent_iface;
+
+
+ gboolean (*handle_setup) (
+ MmGdbusModemSignal *object,
+ GDBusMethodInvocation *invocation,
+ guint arg_rate);
+
+ GVariant * (*get_cdma) (MmGdbusModemSignal *object);
+
+ GVariant * (*get_evdo) (MmGdbusModemSignal *object);
+
+ GVariant * (*get_gsm) (MmGdbusModemSignal *object);
+
+ GVariant * (*get_lte) (MmGdbusModemSignal *object);
+
+ guint (*get_rate) (MmGdbusModemSignal *object);
+
+ GVariant * (*get_umts) (MmGdbusModemSignal *object);
+
+};
+
+GType mm_gdbus_modem_signal_get_type (void) G_GNUC_CONST;
+
+GDBusInterfaceInfo *mm_gdbus_modem_signal_interface_info (void);
+guint mm_gdbus_modem_signal_override_properties (GObjectClass *klass, guint property_id_begin);
+
+
+/* D-Bus method call completion functions: */
+void mm_gdbus_modem_signal_complete_setup (
+ MmGdbusModemSignal *object,
+ GDBusMethodInvocation *invocation);
+
+
+
+/* D-Bus method calls: */
+void mm_gdbus_modem_signal_call_setup (
+ MmGdbusModemSignal *proxy,
+ guint arg_rate,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+
+gboolean mm_gdbus_modem_signal_call_setup_finish (
+ MmGdbusModemSignal *proxy,
+ GAsyncResult *res,
+ GError **error);
+
+gboolean mm_gdbus_modem_signal_call_setup_sync (
+ MmGdbusModemSignal *proxy,
+ guint arg_rate,
+ GCancellable *cancellable,
+ GError **error);
+
+
+
+/* D-Bus property accessors: */
+guint mm_gdbus_modem_signal_get_rate (MmGdbusModemSignal *object);
+void mm_gdbus_modem_signal_set_rate (MmGdbusModemSignal *object, guint value);
+
+GVariant *mm_gdbus_modem_signal_get_cdma (MmGdbusModemSignal *object);
+GVariant *mm_gdbus_modem_signal_dup_cdma (MmGdbusModemSignal *object);
+void mm_gdbus_modem_signal_set_cdma (MmGdbusModemSignal *object, GVariant *value);
+
+GVariant *mm_gdbus_modem_signal_get_evdo (MmGdbusModemSignal *object);
+GVariant *mm_gdbus_modem_signal_dup_evdo (MmGdbusModemSignal *object);
+void mm_gdbus_modem_signal_set_evdo (MmGdbusModemSignal *object, GVariant *value);
+
+GVariant *mm_gdbus_modem_signal_get_gsm (MmGdbusModemSignal *object);
+GVariant *mm_gdbus_modem_signal_dup_gsm (MmGdbusModemSignal *object);
+void mm_gdbus_modem_signal_set_gsm (MmGdbusModemSignal *object, GVariant *value);
+
+GVariant *mm_gdbus_modem_signal_get_umts (MmGdbusModemSignal *object);
+GVariant *mm_gdbus_modem_signal_dup_umts (MmGdbusModemSignal *object);
+void mm_gdbus_modem_signal_set_umts (MmGdbusModemSignal *object, GVariant *value);
+
+GVariant *mm_gdbus_modem_signal_get_lte (MmGdbusModemSignal *object);
+GVariant *mm_gdbus_modem_signal_dup_lte (MmGdbusModemSignal *object);
+void mm_gdbus_modem_signal_set_lte (MmGdbusModemSignal *object, GVariant *value);
+
+
+/* ---- */
+
+#define MM_GDBUS_TYPE_MODEM_SIGNAL_PROXY (mm_gdbus_modem_signal_proxy_get_type ())
+#define MM_GDBUS_MODEM_SIGNAL_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), MM_GDBUS_TYPE_MODEM_SIGNAL_PROXY, MmGdbusModemSignalProxy))
+#define MM_GDBUS_MODEM_SIGNAL_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), MM_GDBUS_TYPE_MODEM_SIGNAL_PROXY, MmGdbusModemSignalProxyClass))
+#define MM_GDBUS_MODEM_SIGNAL_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), MM_GDBUS_TYPE_MODEM_SIGNAL_PROXY, MmGdbusModemSignalProxyClass))
+#define MM_GDBUS_IS_MODEM_SIGNAL_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), MM_GDBUS_TYPE_MODEM_SIGNAL_PROXY))
+#define MM_GDBUS_IS_MODEM_SIGNAL_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), MM_GDBUS_TYPE_MODEM_SIGNAL_PROXY))
+
+typedef struct _MmGdbusModemSignalProxy MmGdbusModemSignalProxy;
+typedef struct _MmGdbusModemSignalProxyClass MmGdbusModemSignalProxyClass;
+typedef struct _MmGdbusModemSignalProxyPrivate MmGdbusModemSignalProxyPrivate;
+
+struct _MmGdbusModemSignalProxy
+{
+ /*< private >*/
+ GDBusProxy parent_instance;
+ MmGdbusModemSignalProxyPrivate *priv;
+};
+
+struct _MmGdbusModemSignalProxyClass
+{
+ GDBusProxyClass parent_class;
+};
+
+GType mm_gdbus_modem_signal_proxy_get_type (void) G_GNUC_CONST;
+
+void mm_gdbus_modem_signal_proxy_new (
+ GDBusConnection *connection,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+MmGdbusModemSignal *mm_gdbus_modem_signal_proxy_new_finish (
+ GAsyncResult *res,
+ GError **error);
+MmGdbusModemSignal *mm_gdbus_modem_signal_proxy_new_sync (
+ GDBusConnection *connection,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GError **error);
+
+void mm_gdbus_modem_signal_proxy_new_for_bus (
+ GBusType bus_type,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+MmGdbusModemSignal *mm_gdbus_modem_signal_proxy_new_for_bus_finish (
+ GAsyncResult *res,
+ GError **error);
+MmGdbusModemSignal *mm_gdbus_modem_signal_proxy_new_for_bus_sync (
+ GBusType bus_type,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GError **error);
+
+
+/* ---- */
+
+#define MM_GDBUS_TYPE_MODEM_SIGNAL_SKELETON (mm_gdbus_modem_signal_skeleton_get_type ())
+#define MM_GDBUS_MODEM_SIGNAL_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), MM_GDBUS_TYPE_MODEM_SIGNAL_SKELETON, MmGdbusModemSignalSkeleton))
+#define MM_GDBUS_MODEM_SIGNAL_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), MM_GDBUS_TYPE_MODEM_SIGNAL_SKELETON, MmGdbusModemSignalSkeletonClass))
+#define MM_GDBUS_MODEM_SIGNAL_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), MM_GDBUS_TYPE_MODEM_SIGNAL_SKELETON, MmGdbusModemSignalSkeletonClass))
+#define MM_GDBUS_IS_MODEM_SIGNAL_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), MM_GDBUS_TYPE_MODEM_SIGNAL_SKELETON))
+#define MM_GDBUS_IS_MODEM_SIGNAL_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), MM_GDBUS_TYPE_MODEM_SIGNAL_SKELETON))
+
+typedef struct _MmGdbusModemSignalSkeleton MmGdbusModemSignalSkeleton;
+typedef struct _MmGdbusModemSignalSkeletonClass MmGdbusModemSignalSkeletonClass;
+typedef struct _MmGdbusModemSignalSkeletonPrivate MmGdbusModemSignalSkeletonPrivate;
+
+struct _MmGdbusModemSignalSkeleton
+{
+ /*< private >*/
+ GDBusInterfaceSkeleton parent_instance;
+ MmGdbusModemSignalSkeletonPrivate *priv;
+};
+
+struct _MmGdbusModemSignalSkeletonClass
+{
+ GDBusInterfaceSkeletonClass parent_class;
+};
+
+GType mm_gdbus_modem_signal_skeleton_get_type (void) G_GNUC_CONST;
+
+MmGdbusModemSignal *mm_gdbus_modem_signal_skeleton_new (void);
+
+
/* ---- */
#define MM_GDBUS_TYPE_OBJECT (mm_gdbus_object_get_type ())
@@ -2339,19 +2821,23 @@ MmGdbusModemMessaging *mm_gdbus_object_get_modem_messaging (MmGdbusObject *objec
MmGdbusModemLocation *mm_gdbus_object_get_modem_location (MmGdbusObject *object);
MmGdbusModemTime *mm_gdbus_object_get_modem_time (MmGdbusObject *object);
MmGdbusModemFirmware *mm_gdbus_object_get_modem_firmware (MmGdbusObject *object);
+MmGdbusModemOma *mm_gdbus_object_get_modem_oma (MmGdbusObject *object);
MmGdbusModemCdma *mm_gdbus_object_get_modem_cdma (MmGdbusObject *object);
MmGdbusModem3gpp *mm_gdbus_object_get_modem3gpp (MmGdbusObject *object);
MmGdbusModem3gppUssd *mm_gdbus_object_get_modem3gpp_ussd (MmGdbusObject *object);
MmGdbusModemSimple *mm_gdbus_object_get_modem_simple (MmGdbusObject *object);
+MmGdbusModemSignal *mm_gdbus_object_get_modem_signal (MmGdbusObject *object);
MmGdbusModem *mm_gdbus_object_peek_modem (MmGdbusObject *object);
MmGdbusModemMessaging *mm_gdbus_object_peek_modem_messaging (MmGdbusObject *object);
MmGdbusModemLocation *mm_gdbus_object_peek_modem_location (MmGdbusObject *object);
MmGdbusModemTime *mm_gdbus_object_peek_modem_time (MmGdbusObject *object);
MmGdbusModemFirmware *mm_gdbus_object_peek_modem_firmware (MmGdbusObject *object);
+MmGdbusModemOma *mm_gdbus_object_peek_modem_oma (MmGdbusObject *object);
MmGdbusModemCdma *mm_gdbus_object_peek_modem_cdma (MmGdbusObject *object);
MmGdbusModem3gpp *mm_gdbus_object_peek_modem3gpp (MmGdbusObject *object);
MmGdbusModem3gppUssd *mm_gdbus_object_peek_modem3gpp_ussd (MmGdbusObject *object);
MmGdbusModemSimple *mm_gdbus_object_peek_modem_simple (MmGdbusObject *object);
+MmGdbusModemSignal *mm_gdbus_object_peek_modem_signal (MmGdbusObject *object);
#define MM_GDBUS_TYPE_OBJECT_PROXY (mm_gdbus_object_proxy_get_type ())
#define MM_GDBUS_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), MM_GDBUS_TYPE_OBJECT_PROXY, MmGdbusObjectProxy))
@@ -2409,10 +2895,12 @@ void mm_gdbus_object_skeleton_set_modem_messaging (MmGdbusObjectSkeleton *object
void mm_gdbus_object_skeleton_set_modem_location (MmGdbusObjectSkeleton *object, MmGdbusModemLocation *interface_);
void mm_gdbus_object_skeleton_set_modem_time (MmGdbusObjectSkeleton *object, MmGdbusModemTime *interface_);
void mm_gdbus_object_skeleton_set_modem_firmware (MmGdbusObjectSkeleton *object, MmGdbusModemFirmware *interface_);
+void mm_gdbus_object_skeleton_set_modem_oma (MmGdbusObjectSkeleton *object, MmGdbusModemOma *interface_);
void mm_gdbus_object_skeleton_set_modem_cdma (MmGdbusObjectSkeleton *object, MmGdbusModemCdma *interface_);
void mm_gdbus_object_skeleton_set_modem3gpp (MmGdbusObjectSkeleton *object, MmGdbusModem3gpp *interface_);
void mm_gdbus_object_skeleton_set_modem3gpp_ussd (MmGdbusObjectSkeleton *object, MmGdbusModem3gppUssd *interface_);
void mm_gdbus_object_skeleton_set_modem_simple (MmGdbusObjectSkeleton *object, MmGdbusModemSimple *interface_);
+void mm_gdbus_object_skeleton_set_modem_signal (MmGdbusObjectSkeleton *object, MmGdbusModemSignal *interface_);
/* ---- */
diff --git a/libmm-glib/generated/mm-gdbus-sim.h b/libmm-glib/generated/mm-gdbus-sim.h
index b318a6d..09571a5 100644
--- a/libmm-glib/generated/mm-gdbus-sim.h
+++ b/libmm-glib/generated/mm-gdbus-sim.h
@@ -1,5 +1,5 @@
/*
- * Generated by gdbus-codegen 2.36.3. DO NOT EDIT.
+ * Generated by gdbus-codegen 2.39.3. DO NOT EDIT.
*
* The license of this code is the same as for the source it was derived from.
*/
diff --git a/libmm-glib/generated/mm-gdbus-sms.h b/libmm-glib/generated/mm-gdbus-sms.h
index c965eb2..f20ede0 100644
--- a/libmm-glib/generated/mm-gdbus-sms.h
+++ b/libmm-glib/generated/mm-gdbus-sms.h
@@ -1,5 +1,5 @@
/*
- * Generated by gdbus-codegen 2.36.3. DO NOT EDIT.
+ * Generated by gdbus-codegen 2.39.3. DO NOT EDIT.
*
* The license of this code is the same as for the source it was derived from.
*/
@@ -54,12 +54,16 @@ struct _MmGdbusSmsIface
guint (*get_pdu_type) (MmGdbusSms *object);
+ guint (*get_service_category) (MmGdbusSms *object);
+
const gchar * (*get_smsc) (MmGdbusSms *object);
guint (*get_state) (MmGdbusSms *object);
guint (*get_storage) (MmGdbusSms *object);
+ guint (*get_teleservice_id) (MmGdbusSms *object);
+
const gchar * (*get_text) (MmGdbusSms *object);
const gchar * (*get_timestamp) (MmGdbusSms *object);
@@ -152,6 +156,12 @@ void mm_gdbus_sms_set_validity (MmGdbusSms *object, GVariant *value);
gint mm_gdbus_sms_get_class (MmGdbusSms *object);
void mm_gdbus_sms_set_class (MmGdbusSms *object, gint value);
+guint mm_gdbus_sms_get_teleservice_id (MmGdbusSms *object);
+void mm_gdbus_sms_set_teleservice_id (MmGdbusSms *object, guint value);
+
+guint mm_gdbus_sms_get_service_category (MmGdbusSms *object);
+void mm_gdbus_sms_set_service_category (MmGdbusSms *object, guint value);
+
gboolean mm_gdbus_sms_get_delivery_report_request (MmGdbusSms *object);
void mm_gdbus_sms_set_delivery_report_request (MmGdbusSms *object, gboolean value);
diff --git a/libmm-glib/libmm-glib.h b/libmm-glib/libmm-glib.h
index 8b5e920..30f72d3 100644
--- a/libmm-glib/libmm-glib.h
+++ b/libmm-glib/libmm-glib.h
@@ -43,6 +43,8 @@
# include <mm-modem-messaging.h>
# include <mm-modem-time.h>
# include <mm-modem-firmware.h>
+# include <mm-modem-signal.h>
+# include <mm-modem-oma.h>
#endif
#if defined (_LIBMM_INSIDE_MM) || \
@@ -66,6 +68,8 @@
#include <mm-unlock-retries.h>
#include <mm-network-timezone.h>
#include <mm-firmware-properties.h>
+#include <mm-cdma-manual-activation-properties.h>
+#include <mm-signal.h>
/* generated */
#include <mm-errors-types.h>
diff --git a/libmm-glib/mm-bearer-ip-config.c b/libmm-glib/mm-bearer-ip-config.c
index 14f99f3..e436c39 100644
--- a/libmm-glib/mm-bearer-ip-config.c
+++ b/libmm-glib/mm-bearer-ip-config.c
@@ -139,7 +139,7 @@ mm_bearer_ip_config_set_prefix (MMBearerIpConfig *self,
*
* Gets the list of IP addresses of DNS servers to be used with this bearer.
*
- * Returns: a NULL-terminated array of strings. Do not free the returned value, it is owned by @self.
+ * Returns: (transfer none) (array zero-terminated=1): a NULL-terminated array of strings. Do not free the returned value, it is owned by @self.
*/
const gchar **
mm_bearer_ip_config_get_dns (MMBearerIpConfig *self)
@@ -331,6 +331,14 @@ mm_bearer_ip_config_new_from_dictionary (GVariant *dictionary,
/*****************************************************************************/
+/**
+ * mm_bearer_ip_config_dup:
+ * @orig: a #MMBearerIpConfig
+ *
+ * Creates a copy of @orig.
+ *
+ * Returns: (transfer full): a newly created #MMBearerIpConfig
+ */
MMBearerIpConfig *
mm_bearer_ip_config_dup (MMBearerIpConfig *orig)
{
diff --git a/libmm-glib/mm-bearer-properties.c b/libmm-glib/mm-bearer-properties.c
index c4f4ba2..c864f8e 100644
--- a/libmm-glib/mm-bearer-properties.c
+++ b/libmm-glib/mm-bearer-properties.c
@@ -408,6 +408,16 @@ mm_bearer_properties_get_dictionary (MMBearerProperties *self)
/*****************************************************************************/
+
+/**
+ * mm_bearer_properties_consume_string:
+ * @self: a #MMBearerProperties
+ * @key:
+ * @value:
+ * @error: (allow-none): Return location for error or %NULL.
+ *
+ * Returns: %TRUE if the operation succeded, %FALSE if @error is set.
+ */
gboolean
mm_bearer_properties_consume_string (MMBearerProperties *self,
const gchar *key,
@@ -517,6 +527,15 @@ mm_bearer_properties_new_from_string (const gchar *str,
/*****************************************************************************/
+/**
+ * mm_bearer_properties_consume_variant:
+ * @properties: a #MMBearerProperties
+ * @key:
+ * @value: a #GVariant
+ * @error: (allow-none): Return location for error or %NULL.
+ *
+ * Returns: %TRUE if the operation succeded, %FALSE if @error is set.
+ */
gboolean
mm_bearer_properties_consume_variant (MMBearerProperties *properties,
const gchar *key,
@@ -613,6 +632,14 @@ mm_bearer_properties_new_from_dictionary (GVariant *dictionary,
/*****************************************************************************/
+/**
+ * mm_bearer_properties_dup:
+ * @orig: a #MMBearerProperties
+ *
+ * Creates a copy of @orig.
+ *
+ * Returns: (transfer full): a newly created #MMBearerProperties
+ */
MMBearerProperties *
mm_bearer_properties_dup (MMBearerProperties *orig)
{
diff --git a/libmm-glib/mm-bearer-properties.h b/libmm-glib/mm-bearer-properties.h
index 852d16e..361c867 100644
--- a/libmm-glib/mm-bearer-properties.h
+++ b/libmm-glib/mm-bearer-properties.h
@@ -102,7 +102,7 @@ gboolean mm_bearer_properties_consume_string (MMBearerProperties *self,
const gchar *value,
GError **error);
-gboolean mm_bearer_properties_consume_variant (MMBearerProperties *self,
+gboolean mm_bearer_properties_consume_variant (MMBearerProperties *properties,
const gchar *key,
GVariant *value,
GError **error);
diff --git a/libmm-glib/mm-bearer.c b/libmm-glib/mm-bearer.c
index 36da4f7..4694cbe 100644
--- a/libmm-glib/mm-bearer.c
+++ b/libmm-glib/mm-bearer.c
@@ -273,7 +273,7 @@ ensure_internal_ipv4_config (MMBearer *self,
* mm_bearer_get_ipv4_config() again to get a new #MMBearerIpConfig with the
* new values.</warning>
*
- * Returns: (transfer full) A #MMBearerIpConfig that must be freed with g_object_unref() or %NULL if unknown.
+ * Returns: (transfer full): A #MMBearerIpConfig that must be freed with g_object_unref() or %NULL if unknown.
*/
MMBearerIpConfig *
mm_bearer_get_ipv4_config (MMBearer *self)
@@ -298,7 +298,7 @@ mm_bearer_get_ipv4_config (MMBearer *self)
* @self was constructed. Use mm_bearer_get_ipv4_config() if on another
* thread.</warning>
*
- * Returns: (transfer none) A #MMBearerIpConfig. Do not free the returned value, it belongs to @self.
+ * Returns: (transfer none): A #MMBearerIpConfig. Do not free the returned value, it belongs to @self.
*/
MMBearerIpConfig *
mm_bearer_peek_ipv4_config (MMBearer *self)
@@ -385,7 +385,7 @@ ensure_internal_ipv6_config (MMBearer *self,
* mm_bearer_get_ipv6_config() again to get a new #MMBearerIpConfig with the
* new values.</warning>
*
- * Returns: (transfer full) A #MMBearerIpConfig that must be freed with g_object_unref() or %NULL if unknown.
+ * Returns: (transfer full): A #MMBearerIpConfig that must be freed with g_object_unref() or %NULL if unknown.
*/
MMBearerIpConfig *
mm_bearer_get_ipv6_config (MMBearer *self)
@@ -410,7 +410,7 @@ mm_bearer_get_ipv6_config (MMBearer *self)
* @self was constructed. Use mm_bearer_get_ipv6_config() if on another
* thread.</warning>
*
- * Returns: (transfer none) A #MMBearerIpConfig. Do not free the returned value, it belongs to @self.
+ * Returns: (transfer none): A #MMBearerIpConfig. Do not free the returned value, it belongs to @self.
*/
MMBearerIpConfig *
mm_bearer_peek_ipv6_config (MMBearer *self)
@@ -497,7 +497,7 @@ ensure_internal_properties (MMBearer *self,
* mm_bearer_get_properties() again to get a new #MMBearerProperties with the
* new values.</warning>
*
- * Returns: (transfer full) A #MMBearerProperties that must be freed with g_object_unref() or %NULL if unknown.
+ * Returns: (transfer full): A #MMBearerProperties that must be freed with g_object_unref() or %NULL if unknown.
*/
MMBearerProperties *
mm_bearer_get_properties (MMBearer *self)
@@ -522,7 +522,7 @@ mm_bearer_get_properties (MMBearer *self)
* @self was constructed. Use mm_bearer_get_properties() if on another
* thread.</warning>
*
- * Returns: (transfer none) A #MMBearerProperties. Do not free the returned value, it belongs to @self.
+ * Returns: (transfer none): A #MMBearerProperties. Do not free the returned value, it belongs to @self.
*/
MMBearerProperties *
mm_bearer_peek_properties (MMBearer *self)
diff --git a/libmm-glib/mm-cdma-manual-activation-properties.c b/libmm-glib/mm-cdma-manual-activation-properties.c
new file mode 100644
index 0000000..7d017c4
--- /dev/null
+++ b/libmm-glib/mm-cdma-manual-activation-properties.c
@@ -0,0 +1,879 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details:
+ *
+ * Copyright (C) 2012 Google Inc.
+ */
+
+#include <string.h>
+
+#include "mm-errors-types.h"
+#include "mm-common-helpers.h"
+#include "mm-cdma-manual-activation-properties.h"
+
+/**
+ * SECTION: mm-cdma-manual-activation-properties
+ * @title: MMCdmaManualActivationProperties
+ * @short_description: Helper object to handle manual CDMA activation properties.
+ *
+ * The #MMCdmaManualActivationProperties is an object handling the properties
+ * required during a manual CDMA activation request.
+ */
+
+G_DEFINE_TYPE (MMCdmaManualActivationProperties, mm_cdma_manual_activation_properties, G_TYPE_OBJECT)
+
+#define PROPERTY_SPC "spc"
+#define PROPERTY_SID "sid"
+#define PROPERTY_MDN "mdn"
+#define PROPERTY_MIN "min"
+#define PROPERTY_MN_HA_KEY "mn-ha-key"
+#define PROPERTY_MN_AAA_KEY "mn-aaa-key"
+#define PROPERTY_PRL "prl"
+
+struct _MMCdmaManualActivationPropertiesPrivate {
+ /* Mandatory parameters */
+ gchar *spc;
+ guint16 sid;
+ gchar *mdn;
+ gchar *min;
+ /* Optional */
+ gchar *mn_ha_key;
+ gchar *mn_aaa_key;
+ GByteArray *prl;
+};
+
+/*****************************************************************************/
+
+/**
+ * mm_cdma_manual_activation_properties_get_spc:
+ * @self: A #MMCdmaManualActivationProperties.
+ *
+ * Gets the Service Programming Code.
+ *
+ * Returns: (transfer none): The SPC. Do not free the returned value, it is owned by @self.
+ */
+const gchar *
+mm_cdma_manual_activation_properties_get_spc (MMCdmaManualActivationProperties *self)
+{
+ g_return_val_if_fail (MM_IS_CDMA_MANUAL_ACTIVATION_PROPERTIES (self), NULL);
+
+ return self->priv->spc;
+}
+
+/* SPC is a 6-digit string */
+static gboolean
+validate_spc (const gchar *spc,
+ GError **error)
+{
+ guint i;
+
+ if (strlen (spc) != 6) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_INVALID_ARGS,
+ "SPC must be exactly 6-digit long");
+ return FALSE;
+ }
+
+ for (i = 0; i < 6; i ++) {
+ if (!g_ascii_isdigit (spc[i])) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_INVALID_ARGS,
+ "SPC must not contain non-digit characters");
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+}
+
+/**
+ * mm_cdma_manual_activation_properties_set_spc:
+ * @self: A #MMCdmaManualActivationProperties.
+ * @spc: The SPC string, exactly 6 digits.
+ * @error: Return location for error or %NULL.
+ *
+ * Sets the Service Programming Code.
+ *
+ * Returns: %TRUE if the SPC was successfully set, or %FALSE if @error is set.
+ */
+gboolean
+mm_cdma_manual_activation_properties_set_spc (MMCdmaManualActivationProperties *self,
+ const gchar *spc,
+ GError **error)
+{
+ g_return_val_if_fail (MM_IS_CDMA_MANUAL_ACTIVATION_PROPERTIES (self), FALSE);
+
+ if (!validate_spc (spc, error))
+ return FALSE;
+
+ g_free (self->priv->spc);
+ self->priv->spc = g_strdup (spc);
+ return TRUE;
+}
+
+/*****************************************************************************/
+
+/**
+ * mm_cdma_manual_activation_properties_get_sid:
+ * @self: A #MMCdmaManualActivationProperties.
+ *
+ * Gets the System Identification Number.
+ *
+ * Returns: The SID.
+ */
+guint16
+mm_cdma_manual_activation_properties_get_sid (MMCdmaManualActivationProperties *self)
+{
+ g_return_val_if_fail (MM_IS_CDMA_MANUAL_ACTIVATION_PROPERTIES (self), 0);
+
+ return self->priv->sid;
+}
+
+/**
+ * mm_cdma_manual_activation_properties_set_sid:
+ * @self: A #MMCdmaManualActivationProperties.
+ * @sid: The SID.
+ *
+ * Sets the Service Identification Number.
+ */
+void
+mm_cdma_manual_activation_properties_set_sid (MMCdmaManualActivationProperties *self,
+ guint16 sid)
+{
+ g_return_if_fail (MM_IS_CDMA_MANUAL_ACTIVATION_PROPERTIES (self));
+
+ self->priv->sid = sid;
+}
+
+/*****************************************************************************/
+
+/**
+ * mm_cdma_manual_activation_properties_get_mdn:
+ * @self: A #MMCdmaManualActivationProperties.
+ *
+ * Gets the Mobile Directory Number.
+ *
+ * Returns: (transfer none): The MDN. Do not free the returned value, it is owned by @self.
+ */
+const gchar *
+mm_cdma_manual_activation_properties_get_mdn (MMCdmaManualActivationProperties *self)
+{
+ g_return_val_if_fail (MM_IS_CDMA_MANUAL_ACTIVATION_PROPERTIES (self), NULL);
+
+ return self->priv->mdn;
+}
+
+/* MDN is max 15 characters */
+static gboolean
+validate_mdn (const gchar *mdn,
+ GError **error)
+{
+ if (strlen (mdn) > 15) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_INVALID_ARGS,
+ "MDN must be maximum 15 characters long");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ * mm_cdma_manual_activation_properties_set_mdn:
+ * @self: A #MMCdmaManualActivationProperties.
+ * @mdn: The MDN string, maximum 15 characters.
+ * @error: Return location for error or %NULL.
+ *
+ * Sets the Mobile Directory Number.
+ *
+ * Returns: %TRUE if the MDN was successfully set, or %FALSE if @error is set.
+ */
+gboolean
+mm_cdma_manual_activation_properties_set_mdn (MMCdmaManualActivationProperties *self,
+ const gchar *mdn,
+ GError **error)
+{
+ g_return_val_if_fail (MM_IS_CDMA_MANUAL_ACTIVATION_PROPERTIES (self), FALSE);
+
+ if (!validate_mdn (mdn, error))
+ return FALSE;
+
+ g_free (self->priv->mdn);
+ self->priv->mdn = g_strdup (mdn);
+ return TRUE;
+}
+
+/*****************************************************************************/
+
+/**
+ * mm_cdma_manual_activation_properties_get_min:
+ * @self: A #MMCdmaManualActivationProperties.
+ *
+ * Gets the Mobile Indentification Number.
+ *
+ * Returns: (transfer none): The MIN. Do not free the returned value, it is owned by @self.
+ */
+const gchar *
+mm_cdma_manual_activation_properties_get_min (MMCdmaManualActivationProperties *self)
+{
+ g_return_val_if_fail (MM_IS_CDMA_MANUAL_ACTIVATION_PROPERTIES (self), NULL);
+
+ return self->priv->min;
+}
+
+/* MIN is max 15 characters */
+static gboolean
+validate_min (const gchar *min,
+ GError **error)
+{
+ if (strlen (min) > 15) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_INVALID_ARGS,
+ "MIN must be maximum 15 characters long");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ * mm_cdma_manual_activation_properties_set_min:
+ * @self: A #MMCdmaManualActivationProperties.
+ * @min: The MIN string, maximum 15 characters.
+ * @error: Return location for error or %NULL.
+ *
+ * Sets the Mobile Identification Number.
+ *
+ * Returns: %TRUE if the MIN was successfully set, or %FALSE if @error is set.
+ */
+gboolean
+mm_cdma_manual_activation_properties_set_min (MMCdmaManualActivationProperties *self,
+ const gchar *min,
+ GError **error)
+{
+ g_return_val_if_fail (MM_IS_CDMA_MANUAL_ACTIVATION_PROPERTIES (self), FALSE);
+
+ if (!validate_min (min, error))
+ return FALSE;
+
+ g_free (self->priv->min);
+ self->priv->min = g_strdup (min);
+ return TRUE;
+}
+
+/*****************************************************************************/
+
+/**
+ * mm_cdma_manual_activation_properties_get_mn_ha_key:
+ * @self: A #MMCdmaManualActivationProperties.
+ *
+ * Gets the MN-HA key.
+ *
+ * Returns: (transfer none): The MN-HA key. Do not free the returned value, it is owned by @self.
+ */
+const gchar *
+mm_cdma_manual_activation_properties_get_mn_ha_key (MMCdmaManualActivationProperties *self)
+{
+ g_return_val_if_fail (MM_IS_CDMA_MANUAL_ACTIVATION_PROPERTIES (self), NULL);
+
+ return self->priv->mn_ha_key;
+}
+
+/* MN-HA key is max 16 characters */
+static gboolean
+validate_mn_ha_key (const gchar *mn_ha_key,
+ GError **error)
+{
+ if (strlen (mn_ha_key) > 16) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_INVALID_ARGS,
+ "MN-HA key must be maximum 16 characters long");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ * mm_cdma_manual_activation_properties_set_mn_ha_key:
+ * @self: A #MMCdmaManualActivationProperties.
+ * @mn_ha_key: The MN-HA key string, maximum 16 characters.
+ * @error: Return location for error or %NULL.
+ *
+ * Sets the Mobile Identification Number.
+ *
+ * Returns: %TRUE if the MN-HA key was successfully set, or %FALSE if @error is set.
+ */
+gboolean
+mm_cdma_manual_activation_properties_set_mn_ha_key (MMCdmaManualActivationProperties *self,
+ const gchar *mn_ha_key,
+ GError **error)
+{
+ g_return_val_if_fail (MM_IS_CDMA_MANUAL_ACTIVATION_PROPERTIES (self), FALSE);
+
+ if (!validate_mn_ha_key (mn_ha_key, error))
+ return FALSE;
+
+ g_free (self->priv->mn_ha_key);
+ self->priv->mn_ha_key = g_strdup (mn_ha_key);
+ return TRUE;
+}
+
+/*****************************************************************************/
+
+/**
+ * mm_cdma_manual_activation_properties_get_mn_aaa_key:
+ * @self: A #MMCdmaManualActivationProperties.
+ *
+ * Gets the MN-AAA key.
+ *
+ * Returns: (transfer none): The MN-AAA key. Do not free the returned value, it is owned by @self.
+ */
+const gchar *
+mm_cdma_manual_activation_properties_get_mn_aaa_key (MMCdmaManualActivationProperties *self)
+{
+ g_return_val_if_fail (MM_IS_CDMA_MANUAL_ACTIVATION_PROPERTIES (self), NULL);
+
+ return self->priv->mn_aaa_key;
+}
+
+/* MN-AAA key is max 16 characters */
+static gboolean
+validate_mn_aaa_key (const gchar *mn_aaa_key,
+ GError **error)
+{
+ if (strlen (mn_aaa_key) > 16) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_INVALID_ARGS,
+ "MN-AAA key must be maximum 16 characters long");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ * mm_cdma_manual_activation_properties_set_mn_aaa_key:
+ * @self: A #MMCdmaManualActivationProperties.
+ * @mn_aaa_key: The MN-AAA key string, maximum 16 characters.
+ * @error: Return location for error or %NULL.
+ *
+ * Sets the Mobile Identification Number.
+ *
+ * Returns: %TRUE if the MN-AAA key was successfully set, or %FALSE if @error is set.
+ */
+gboolean
+mm_cdma_manual_activation_properties_set_mn_aaa_key (MMCdmaManualActivationProperties *self,
+ const gchar *mn_aaa_key,
+ GError **error)
+{
+ g_return_val_if_fail (MM_IS_CDMA_MANUAL_ACTIVATION_PROPERTIES (self), FALSE);
+
+ if (!validate_mn_aaa_key (mn_aaa_key, error))
+ return FALSE;
+
+ g_free (self->priv->mn_aaa_key);
+ self->priv->mn_aaa_key = g_strdup (mn_aaa_key);
+ return TRUE;
+}
+
+/*****************************************************************************/
+
+/**
+ * mm_cdma_manual_activation_properties_get_prl:
+ * @self: A #MMCdmaManualActivationProperties.
+ * @prl_len: (out): Size of the returned PRL.
+ *
+ * Gets the Preferred Roaming List.
+ *
+ * Returns: (transfer none): The PRL. Do not free the returned value, it is owned by @self.
+ */
+const guint8 *
+mm_cdma_manual_activation_properties_get_prl (MMCdmaManualActivationProperties *self,
+ gsize *prl_len)
+{
+ g_return_val_if_fail (MM_IS_CDMA_MANUAL_ACTIVATION_PROPERTIES (self), NULL);
+ if (self->priv->prl && prl_len)
+ *prl_len = self->priv->prl->len;
+
+ return self->priv->prl->data;
+}
+
+/**
+ * mm_cdma_manual_activation_properties_peek_prl_bytearray:
+ * @self: A #MMCdmaManualActivationProperties.
+ *
+ * Gets the Preferred Roaming List.
+ *
+ * Returns: (transfer none): A #GByteArray with the PRL, or %NULL if it doesn't contain any. Do not free the returned value, it is owned by @self.
+ */
+GByteArray *
+mm_cdma_manual_activation_properties_peek_prl_bytearray (MMCdmaManualActivationProperties *self)
+{
+ g_return_val_if_fail (MM_IS_CDMA_MANUAL_ACTIVATION_PROPERTIES (self), NULL);
+
+ return self->priv->prl;
+}
+
+/**
+ * mm_cdma_manual_activation_properties_get_prl_bytearray:
+ * @self: A #MMCdmaManualActivationProperties.
+ *
+ * Gets the Preferred Roaming List.
+ *
+ * Returns: (transfer full): A #GByteArray with the PRL, or %NULL if it doesn't contain any. The returned value should be freed with g_byte_array_unref().
+ */
+GByteArray *
+mm_cdma_manual_activation_properties_get_prl_bytearray (MMCdmaManualActivationProperties *self)
+{
+ g_return_val_if_fail (MM_IS_CDMA_MANUAL_ACTIVATION_PROPERTIES (self), NULL);
+
+ return (self->priv->prl ? g_byte_array_ref (self->priv->prl) : NULL);
+}
+
+static gboolean
+validate_prl (const guint8 *prl,
+ gsize prl_size,
+ GError **error)
+{
+ if (prl_size > 16384) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_INVALID_ARGS,
+ "PRL must be maximum 16384 bytes long");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ * mm_cdma_manual_activation_properties_set_prl:
+ * @self: A #MMCdmaManualActivationProperties.
+ * @prl: The PRL.
+ * @prl_length: Length of @prl.
+ * @error: Return location for error or %NULL.
+ *
+ * Sets the Preferred Roaming List.
+ *
+ * Returns: %TRUE if the PRL was successfully set, or %FALSE if @error is set.
+ */
+gboolean
+mm_cdma_manual_activation_properties_set_prl (MMCdmaManualActivationProperties *self,
+ const guint8 *prl,
+ gsize prl_length,
+ GError **error)
+{
+ g_return_val_if_fail (MM_IS_CDMA_MANUAL_ACTIVATION_PROPERTIES (self), FALSE);
+
+ if (!validate_prl (prl, prl_length, error))
+ return FALSE;
+
+ if (self->priv->prl)
+ g_byte_array_unref (self->priv->prl);
+
+ if (prl && prl_length)
+ self->priv->prl = g_byte_array_append (g_byte_array_sized_new (prl_length),
+ prl,
+ prl_length);
+ else
+ self->priv->prl = NULL;
+ return TRUE;
+}
+
+/**
+ * mm_cdma_manual_activation_properties_set_prl_bytearray:
+ * @self: A #MMCdmaManualActivationProperties.
+ * @prl: A #GByteArray with the PRL to set. This method takes a new reference of @prl.
+ * @error: Return location for error or %NULL.
+ *
+ * Sets the Preferred Roaming List.
+ *
+ * Returns: %TRUE if the PRL was successfully set, or %FALSE if @error is set.
+ */
+gboolean
+mm_cdma_manual_activation_properties_set_prl_bytearray (MMCdmaManualActivationProperties *self,
+ GByteArray *prl,
+ GError **error)
+{
+ g_return_val_if_fail (MM_IS_CDMA_MANUAL_ACTIVATION_PROPERTIES (self), FALSE);
+
+ if (!validate_prl (prl->data, prl->len, error))
+ return FALSE;
+
+ if (self->priv->prl)
+ g_byte_array_unref (self->priv->prl);
+
+ self->priv->prl = (prl ? g_byte_array_ref (prl) : NULL);
+ return TRUE;
+}
+
+/*****************************************************************************/
+
+/**
+ * mm_cdma_manual_activation_properties_get_dictionary:
+ * @self: A #MMCdmaManualActivationProperties.
+ *
+ * Gets a variant dictionary with the contents of @self.
+ *
+ * Returns: (transfer full): A dictionary with the properties. The returned value should be freed with g_variant_unref().
+ */
+GVariant *
+mm_cdma_manual_activation_properties_get_dictionary (MMCdmaManualActivationProperties *self)
+{
+ GVariantBuilder builder;
+
+ g_return_val_if_fail (MM_IS_CDMA_MANUAL_ACTIVATION_PROPERTIES (self), NULL);
+
+ /* We do allow NULL */
+ if (!self)
+ return NULL;
+
+ g_return_val_if_fail (MM_IS_CDMA_MANUAL_ACTIVATION_PROPERTIES (self), NULL);
+
+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
+
+ if (self->priv->spc)
+ g_variant_builder_add (&builder,
+ "{sv}",
+ PROPERTY_SPC,
+ g_variant_new_string (self->priv->spc));
+ if (self->priv->sid)
+ g_variant_builder_add (&builder,
+ "{sv}",
+ PROPERTY_SID,
+ g_variant_new_uint16 (self->priv->sid));
+ if (self->priv->mdn)
+ g_variant_builder_add (&builder,
+ "{sv}",
+ PROPERTY_MDN,
+ g_variant_new_string (self->priv->mdn));
+ if (self->priv->min)
+ g_variant_builder_add (&builder,
+ "{sv}",
+ PROPERTY_MIN,
+ g_variant_new_string (self->priv->min));
+ if (self->priv->mn_ha_key)
+ g_variant_builder_add (&builder,
+ "{sv}",
+ PROPERTY_MN_HA_KEY,
+ g_variant_new_string (self->priv->mn_ha_key));
+ if (self->priv->mn_aaa_key)
+ g_variant_builder_add (&builder,
+ "{sv}",
+ PROPERTY_MN_AAA_KEY,
+ g_variant_new_string (self->priv->mn_aaa_key));
+ if (self->priv->prl)
+ g_variant_builder_add (
+ &builder,
+ "{sv}",
+ PROPERTY_PRL,
+ g_variant_new_from_data (G_VARIANT_TYPE ("ay"),
+ self->priv->prl->data,
+ self->priv->prl->len * sizeof (guint8),
+ TRUE,
+ NULL,
+ NULL));
+
+ return g_variant_ref_sink (g_variant_builder_end (&builder));
+}
+
+/*****************************************************************************/
+
+static gboolean
+consume_variant (MMCdmaManualActivationProperties *self,
+ const gchar *key,
+ GVariant *value,
+ GError **error)
+{
+ if (g_str_equal (key, PROPERTY_SPC))
+ return (mm_cdma_manual_activation_properties_set_spc (
+ self,
+ g_variant_get_string (value, NULL),
+ error));
+
+ if (g_str_equal (key, PROPERTY_SID)) {
+ mm_cdma_manual_activation_properties_set_sid (
+ self,
+ g_variant_get_uint16 (value));
+ return TRUE;
+ }
+
+ if (g_str_equal (key, PROPERTY_MDN))
+ return (mm_cdma_manual_activation_properties_set_mdn (
+ self,
+ g_variant_get_string (value, NULL),
+ error));
+
+ if (g_str_equal (key, PROPERTY_MIN))
+ return (mm_cdma_manual_activation_properties_set_min (
+ self,
+ g_variant_get_string (value, NULL),
+ error));
+
+ if (g_str_equal (key, PROPERTY_MN_HA_KEY))
+ return (mm_cdma_manual_activation_properties_set_mn_ha_key (
+ self,
+ g_variant_get_string (value, NULL),
+ error));
+
+ if (g_str_equal (key, PROPERTY_MN_AAA_KEY))
+ return (mm_cdma_manual_activation_properties_set_mn_aaa_key (
+ self,
+ g_variant_get_string (value, NULL),
+ error));
+
+ if (g_str_equal (key, PROPERTY_PRL)) {
+ const guint8 *prl;
+ gsize prl_len = 0;
+
+ prl = g_variant_get_fixed_array (value, &prl_len, sizeof (guint8));
+ return (mm_cdma_manual_activation_properties_set_prl (
+ self,
+ prl,
+ prl_len,
+ error));
+ }
+
+ /* Set error */
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_INVALID_ARGS,
+ "Invalid properties dictionary, unexpected key '%s'",
+ key);
+ return FALSE;
+}
+
+/**
+ * mm_cdma_manual_activation_properties_new_from_dictionary:
+ * @dictionary: A variant dictionary with the properties of the image.
+ * @error: Return location for error or %NULL.
+ *
+ * Creates a new #MMCdmaManualActivationProperties object with the properties exposed in
+ * the dictionary.
+ *
+ * Returns: (transfer full): A #MMCdmaManualActivationProperties or %NULL if @error is set. The returned value should be freed with g_object_unref().
+ */
+MMCdmaManualActivationProperties *
+mm_cdma_manual_activation_properties_new_from_dictionary (GVariant *dictionary,
+ GError **error)
+{
+ GError *inner_error = NULL;
+ GVariantIter iter;
+ gchar *key;
+ GVariant *value;
+ MMCdmaManualActivationProperties *self;
+
+ if (!dictionary) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_INVALID_ARGS,
+ "Cannot create CDMA manual activation properties from empty dictionary");
+ return NULL;
+ }
+
+ if (!g_variant_is_of_type (dictionary, G_VARIANT_TYPE ("a{sv}"))) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_INVALID_ARGS,
+ "Cannot create CDMA manual activation properties from dictionary: "
+ "invalid variant type received");
+ return NULL;
+ }
+
+ self = mm_cdma_manual_activation_properties_new ();
+
+ g_variant_iter_init (&iter, dictionary);
+ while (!inner_error &&
+ g_variant_iter_next (&iter, "{sv}", &key, &value)) {
+ consume_variant (self,
+ key,
+ value,
+ &inner_error);
+ g_free (key);
+ g_variant_unref (value);
+ }
+
+ /* If error, destroy the object */
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ g_object_unref (self);
+ return NULL;
+ }
+
+ /* If mandatory properties missing, destroy the object */
+ if (!self->priv->spc ||
+ !self->priv->sid ||
+ !self->priv->mdn ||
+ !self->priv->min) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_INVALID_ARGS,
+ "Cannot create CDMA manual activation properties from dictionary: "
+ "mandatory parameter missing");
+ g_object_unref (self);
+ return NULL;
+ }
+
+ return self;
+}
+
+/*****************************************************************************/
+
+static gboolean
+consume_string (MMCdmaManualActivationProperties *self,
+ const gchar *key,
+ const gchar *value,
+ GError **error)
+{
+ if (g_str_equal (key, PROPERTY_SPC))
+ return mm_cdma_manual_activation_properties_set_spc (self, value, error);
+
+ if (g_str_equal (key, PROPERTY_SID)) {
+ guint sid;
+
+ if (!mm_get_uint_from_str (value, &sid)) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_INVALID_ARGS,
+ "Invalid SID integer value: '%s'",
+ value);
+ return FALSE;
+ }
+
+ mm_cdma_manual_activation_properties_set_sid (self, sid);
+ return TRUE;
+ }
+
+ if (g_str_equal (key, PROPERTY_MDN))
+ return mm_cdma_manual_activation_properties_set_mdn (self, value, error);
+
+ if (g_str_equal (key, PROPERTY_MIN))
+ return mm_cdma_manual_activation_properties_set_min (self, value, error);
+
+ if (g_str_equal (key, PROPERTY_MN_HA_KEY))
+ return mm_cdma_manual_activation_properties_set_mn_ha_key (self, value, error);
+
+ if (g_str_equal (key, PROPERTY_MN_AAA_KEY))
+ return mm_cdma_manual_activation_properties_set_mn_aaa_key (self, value, error);
+
+ if (g_str_equal (key, PROPERTY_PRL)) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_INVALID_ARGS,
+ "Invalid properties string, key '%s' cannot be given in a string",
+ key);
+ return FALSE;
+ }
+
+ /* Set error */
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_INVALID_ARGS,
+ "Invalid properties dictionary, unexpected key '%s'",
+ key);
+ return FALSE;
+}
+
+typedef struct {
+ MMCdmaManualActivationProperties *properties;
+ GError *error;
+} ParseKeyValueContext;
+
+static gboolean
+key_value_foreach (const gchar *key,
+ const gchar *value,
+ ParseKeyValueContext *ctx)
+{
+ return consume_string (ctx->properties,
+ key,
+ value,
+ &ctx->error);
+}
+
+MMCdmaManualActivationProperties *
+mm_cdma_manual_activation_properties_new_from_string (const gchar *str,
+ GError **error)
+{
+ ParseKeyValueContext ctx;
+
+ ctx.properties = mm_cdma_manual_activation_properties_new ();
+ ctx.error = NULL;
+
+ mm_common_parse_key_value_string (str,
+ &ctx.error,
+ (MMParseKeyValueForeachFn)key_value_foreach,
+ &ctx);
+
+ /* If error, destroy the object */
+ if (ctx.error) {
+ g_propagate_error (error, ctx.error);
+ g_object_unref (ctx.properties);
+ ctx.properties = NULL;
+ }
+
+ return ctx.properties;
+}
+
+/*****************************************************************************/
+
+/**
+ * mm_cdma_manual_activation_properties_new:
+ *
+ * Creates a new #MMCdmaManualActivationProperties object.
+ *
+ * Returns: (transfer full): A #MMCdmaManualActivationProperties. The returned value should be freed with g_object_unref().
+ */
+MMCdmaManualActivationProperties *
+mm_cdma_manual_activation_properties_new (void)
+{
+ return (MMCdmaManualActivationProperties *) g_object_new (MM_TYPE_CDMA_MANUAL_ACTIVATION_PROPERTIES, NULL);
+}
+
+static void
+mm_cdma_manual_activation_properties_init (MMCdmaManualActivationProperties *self)
+{
+ self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
+ MM_TYPE_CDMA_MANUAL_ACTIVATION_PROPERTIES,
+ MMCdmaManualActivationPropertiesPrivate);
+}
+
+static void
+finalize (GObject *object)
+{
+ MMCdmaManualActivationProperties *self = MM_CDMA_MANUAL_ACTIVATION_PROPERTIES (object);
+
+ g_free (self->priv->spc);
+ g_free (self->priv->mdn);
+ g_free (self->priv->min);
+ g_free (self->priv->mn_ha_key);
+ g_free (self->priv->mn_aaa_key);
+ if (self->priv->prl)
+ g_byte_array_unref (self->priv->prl);
+
+ G_OBJECT_CLASS (mm_cdma_manual_activation_properties_parent_class)->finalize (object);
+}
+
+static void
+mm_cdma_manual_activation_properties_class_init (MMCdmaManualActivationPropertiesClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ g_type_class_add_private (object_class, sizeof (MMCdmaManualActivationPropertiesPrivate));
+
+ object_class->finalize = finalize;
+}
diff --git a/libmm-glib/mm-cdma-manual-activation-properties.h b/libmm-glib/mm-cdma-manual-activation-properties.h
new file mode 100644
index 0000000..062f701
--- /dev/null
+++ b/libmm-glib/mm-cdma-manual-activation-properties.h
@@ -0,0 +1,113 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details:
+ *
+ * Copyright (C) 2013 Google Inc.
+ */
+
+#ifndef MM_CDMA_MANUAL_ACTIVATION_PROPERTIES_H
+#define MM_CDMA_MANUAL_ACTIVATION_PROPERTIES_H
+
+#if !defined (__LIBMM_GLIB_H_INSIDE__) && !defined (LIBMM_GLIB_COMPILATION)
+#error "Only <libmm-glib.h> can be included directly."
+#endif
+
+#include <ModemManager.h>
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+#define MM_TYPE_CDMA_MANUAL_ACTIVATION_PROPERTIES (mm_cdma_manual_activation_properties_get_type ())
+#define MM_CDMA_MANUAL_ACTIVATION_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MM_TYPE_CDMA_MANUAL_ACTIVATION_PROPERTIES, MMCdmaManualActivationProperties))
+#define MM_CDMA_MANUAL_ACTIVATION_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MM_TYPE_CDMA_MANUAL_ACTIVATION_PROPERTIES, MMCdmaManualActivationPropertiesClass))
+#define MM_IS_CDMA_MANUAL_ACTIVATION_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MM_TYPE_CDMA_MANUAL_ACTIVATION_PROPERTIES))
+#define MM_IS_CDMA_MANUAL_ACTIVATION_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MM_TYPE_CDMA_MANUAL_ACTIVATION_PROPERTIES))
+#define MM_CDMA_MANUAL_ACTIVATION_PROPERTIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MM_TYPE_CDMA_MANUAL_ACTIVATION_PROPERTIES, MMCdmaManualActivationPropertiesClass))
+
+typedef struct _MMCdmaManualActivationProperties MMCdmaManualActivationProperties;
+typedef struct _MMCdmaManualActivationPropertiesClass MMCdmaManualActivationPropertiesClass;
+typedef struct _MMCdmaManualActivationPropertiesPrivate MMCdmaManualActivationPropertiesPrivate;
+
+/**
+ * MMCdmaManualActivationProperties:
+ *
+ * The #MMCdmaManualActivationProperties structure contains private data and should only be accessed
+ * using the provided API.
+ */
+struct _MMCdmaManualActivationProperties {
+ /*< private >*/
+ GObject parent;
+ MMCdmaManualActivationPropertiesPrivate *priv;
+};
+
+struct _MMCdmaManualActivationPropertiesClass {
+ /*< private >*/
+ GObjectClass parent;
+};
+
+GType mm_cdma_manual_activation_properties_get_type (void);
+
+MMCdmaManualActivationProperties *mm_cdma_manual_activation_properties_new (void);
+
+gboolean mm_cdma_manual_activation_properties_set_spc (MMCdmaManualActivationProperties *self,
+ const gchar *spc,
+ GError **error);
+void mm_cdma_manual_activation_properties_set_sid (MMCdmaManualActivationProperties *self,
+ guint16 sid);
+gboolean mm_cdma_manual_activation_properties_set_mdn (MMCdmaManualActivationProperties *self,
+ const gchar *mdn,
+ GError **error);
+gboolean mm_cdma_manual_activation_properties_set_min (MMCdmaManualActivationProperties *self,
+ const gchar *min,
+ GError **error);
+gboolean mm_cdma_manual_activation_properties_set_mn_ha_key (MMCdmaManualActivationProperties *self,
+ const gchar *mn_ha_key,
+ GError **error);
+gboolean mm_cdma_manual_activation_properties_set_mn_aaa_key (MMCdmaManualActivationProperties *self,
+ const gchar *mn_aaa_key,
+ GError **error);
+gboolean mm_cdma_manual_activation_properties_set_prl (MMCdmaManualActivationProperties *self,
+ const guint8 *prl,
+ gsize prl_length,
+ GError **error);
+gboolean mm_cdma_manual_activation_properties_set_prl_bytearray (MMCdmaManualActivationProperties *self,
+ GByteArray *prl,
+ GError **error);
+
+const gchar *mm_cdma_manual_activation_properties_get_spc (MMCdmaManualActivationProperties *self);
+guint16 mm_cdma_manual_activation_properties_get_sid (MMCdmaManualActivationProperties *self);
+const gchar *mm_cdma_manual_activation_properties_get_mdn (MMCdmaManualActivationProperties *self);
+const gchar *mm_cdma_manual_activation_properties_get_min (MMCdmaManualActivationProperties *self);
+const gchar *mm_cdma_manual_activation_properties_get_mn_ha_key (MMCdmaManualActivationProperties *self);
+const gchar *mm_cdma_manual_activation_properties_get_mn_aaa_key (MMCdmaManualActivationProperties *self);
+const guint8 *mm_cdma_manual_activation_properties_get_prl (MMCdmaManualActivationProperties *self,
+ gsize *prl_len);
+GByteArray *mm_cdma_manual_activation_properties_peek_prl_bytearray (MMCdmaManualActivationProperties *self);
+GByteArray *mm_cdma_manual_activation_properties_get_prl_bytearray (MMCdmaManualActivationProperties *self);
+
+/*****************************************************************************/
+/* ModemManager/libmm-glib/mmcli specific methods */
+
+#if defined (_LIBMM_INSIDE_MM) || \
+ defined (_LIBMM_INSIDE_MMCLI) || \
+ defined (LIBMM_GLIB_COMPILATION)
+
+MMCdmaManualActivationProperties *mm_cdma_manual_activation_properties_new_from_string (const gchar *str,
+ GError **error);
+MMCdmaManualActivationProperties *mm_cdma_manual_activation_properties_new_from_dictionary (GVariant *dictionary,
+ GError **error);
+GVariant *mm_cdma_manual_activation_properties_get_dictionary (MMCdmaManualActivationProperties *self);
+
+#endif
+
+G_END_DECLS
+
+#endif /* MM_CDMA_MANUAL_ACTIVATION_PROPERTIES_H */
diff --git a/libmm-glib/mm-common-helpers.c b/libmm-glib/mm-common-helpers.c
index 740b316..088891f 100644
--- a/libmm-glib/mm-common-helpers.c
+++ b/libmm-glib/mm-common-helpers.c
@@ -745,6 +745,86 @@ mm_common_build_mode_combinations_default (void)
return g_variant_builder_end (&builder);
}
+GArray *
+mm_common_oma_pending_network_initiated_sessions_variant_to_garray (GVariant *variant)
+{
+ GArray *array = NULL;
+
+ if (variant) {
+ GVariantIter iter;
+ guint n;
+
+ g_variant_iter_init (&iter, variant);
+ n = g_variant_iter_n_children (&iter);
+
+ if (n > 0) {
+ MMOmaPendingNetworkInitiatedSession session;
+
+ array = g_array_sized_new (FALSE, FALSE, sizeof (MMOmaPendingNetworkInitiatedSession), n);
+ while (g_variant_iter_loop (&iter, "(uu)", &session.session_type, &session.session_id))
+ g_array_append_val (array, session);
+ }
+ }
+
+ /* If nothing set, fallback to empty */
+ if (!array)
+ array = g_array_new (FALSE, FALSE, sizeof (MMOmaPendingNetworkInitiatedSession));
+
+ return array;
+}
+
+MMOmaPendingNetworkInitiatedSession *
+mm_common_oma_pending_network_initiated_sessions_variant_to_array (GVariant *variant,
+ guint *n_sessions)
+{
+ GArray *array;
+
+ array = mm_common_oma_pending_network_initiated_sessions_variant_to_garray (variant);
+ if (n_sessions)
+ *n_sessions = array->len;
+ return (MMOmaPendingNetworkInitiatedSession *) g_array_free (array, FALSE);
+}
+
+GVariant *
+mm_common_oma_pending_network_initiated_sessions_array_to_variant (const MMOmaPendingNetworkInitiatedSession *sessions,
+ guint n_sessions)
+{
+ if (n_sessions > 0) {
+ GVariantBuilder builder;
+ guint i;
+
+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("a(uu)"));
+
+ for (i = 0; i < n_sessions; i++)
+ g_variant_builder_add_value (&builder,
+ g_variant_new ("(uu)",
+ ((guint32)sessions[i].session_type),
+ ((guint32)sessions[i].session_id)));
+ return g_variant_builder_end (&builder);
+ }
+
+ return mm_common_build_oma_pending_network_initiated_sessions_default ();
+}
+
+GVariant *
+mm_common_oma_pending_network_initiated_sessions_garray_to_variant (GArray *array)
+{
+ if (array)
+ return mm_common_oma_pending_network_initiated_sessions_array_to_variant ((const MMOmaPendingNetworkInitiatedSession *)array->data,
+ array->len);
+
+ return mm_common_oma_pending_network_initiated_sessions_array_to_variant (NULL, 0);
+}
+
+GVariant *
+mm_common_build_oma_pending_network_initiated_sessions_default (void)
+{
+ GVariantBuilder builder;
+
+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("a(uu)"));
+ return g_variant_builder_end (&builder);
+}
+
gboolean
mm_common_get_boolean_from_string (const gchar *value,
GError **error)
@@ -877,6 +957,122 @@ mm_common_get_sms_storage_from_string (const gchar *str,
return MM_SMS_STORAGE_UNKNOWN;
}
+MMSmsCdmaTeleserviceId
+mm_common_get_sms_cdma_teleservice_id_from_string (const gchar *str,
+ GError **error)
+{
+ GEnumClass *enum_class;
+ guint i;
+
+ enum_class = G_ENUM_CLASS (g_type_class_ref (MM_TYPE_SMS_CDMA_TELESERVICE_ID));
+
+ for (i = 0; enum_class->values[i].value_nick; i++) {
+ if (!g_ascii_strcasecmp (str, enum_class->values[i].value_nick))
+ return enum_class->values[i].value;
+ }
+
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_INVALID_ARGS,
+ "Couldn't match '%s' with a valid MMSmsCdmaTeleserviceId value",
+ str);
+ return MM_SMS_CDMA_TELESERVICE_ID_UNKNOWN;
+}
+
+MMSmsCdmaServiceCategory
+mm_common_get_sms_cdma_service_category_from_string (const gchar *str,
+ GError **error)
+{
+ GEnumClass *enum_class;
+ guint i;
+
+ enum_class = G_ENUM_CLASS (g_type_class_ref (MM_TYPE_SMS_CDMA_SERVICE_CATEGORY));
+
+ for (i = 0; enum_class->values[i].value_nick; i++) {
+ if (!g_ascii_strcasecmp (str, enum_class->values[i].value_nick))
+ return enum_class->values[i].value;
+ }
+
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_INVALID_ARGS,
+ "Couldn't match '%s' with a valid MMSmsCdmaServiceCategory value",
+ str);
+ return MM_SMS_CDMA_SERVICE_CATEGORY_UNKNOWN;
+}
+
+MMOmaFeature
+mm_common_get_oma_features_from_string (const gchar *str,
+ GError **error)
+{
+ GError *inner_error = NULL;
+ MMOmaFeature features;
+ gchar **feature_strings;
+ GFlagsClass *flags_class;
+
+ features = MM_OMA_FEATURE_NONE;
+
+ flags_class = G_FLAGS_CLASS (g_type_class_ref (MM_TYPE_OMA_FEATURE));
+ feature_strings = g_strsplit (str, "|", -1);
+
+ if (feature_strings) {
+ guint i;
+
+ for (i = 0; feature_strings[i]; i++) {
+ guint j;
+ gboolean found = FALSE;
+
+ for (j = 0; flags_class->values[j].value_nick; j++) {
+ if (!g_ascii_strcasecmp (feature_strings[i], flags_class->values[j].value_nick)) {
+ features |= flags_class->values[j].value;
+ found = TRUE;
+ break;
+ }
+ }
+
+ if (!found) {
+ inner_error = g_error_new (
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_INVALID_ARGS,
+ "Couldn't match '%s' with a valid MMOmaFeature value",
+ feature_strings[i]);
+ break;
+ }
+ }
+ }
+
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ features = MM_OMA_FEATURE_NONE;
+ }
+
+ g_type_class_unref (flags_class);
+ g_strfreev (feature_strings);
+ return features;
+}
+
+MMOmaSessionType
+mm_common_get_oma_session_type_from_string (const gchar *str,
+ GError **error)
+{
+ GEnumClass *enum_class;
+ guint i;
+
+ enum_class = G_ENUM_CLASS (g_type_class_ref (MM_TYPE_OMA_SESSION_TYPE));
+
+ for (i = 0; enum_class->values[i].value_nick; i++) {
+ if (!g_ascii_strcasecmp (str, enum_class->values[i].value_nick))
+ return enum_class->values[i].value;
+ }
+
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_INVALID_ARGS,
+ "Couldn't match '%s' with a valid MMOmaSessionType value",
+ str);
+ return MM_OMA_SESSION_TYPE_UNKNOWN;
+}
+
GVariant *
mm_common_build_bands_unknown (void)
{
diff --git a/libmm-glib/mm-common-helpers.h b/libmm-glib/mm-common-helpers.h
index c9e7c2c..b05a4a9 100644
--- a/libmm-glib/mm-common-helpers.h
+++ b/libmm-glib/mm-common-helpers.h
@@ -59,6 +59,14 @@ MMBearerAllowedAuth mm_common_get_allowed_auth_from_string (const gchar *str,
GError **error);
MMSmsStorage mm_common_get_sms_storage_from_string (const gchar *str,
GError **error);
+MMSmsCdmaTeleserviceId mm_common_get_sms_cdma_teleservice_id_from_string (const gchar *str,
+ GError **error);
+MMSmsCdmaServiceCategory mm_common_get_sms_cdma_service_category_from_string (const gchar *str,
+ GError **error);
+MMOmaFeature mm_common_get_oma_features_from_string (const gchar *str,
+ GError **error);
+MMOmaSessionType mm_common_get_oma_session_type_from_string (const gchar *str,
+ GError **error);
GArray *mm_common_ports_variant_to_garray (GVariant *variant);
MMModemPortInfo *mm_common_ports_variant_to_array (GVariant *variant,
@@ -103,6 +111,14 @@ GVariant *mm_common_capability_combinations_garray_to_variant (GArray *
GVariant *mm_common_build_capability_combinations_any (void);
GVariant *mm_common_build_capability_combinations_none (void);
+GArray *mm_common_oma_pending_network_initiated_sessions_variant_to_garray (GVariant *variant);
+MMOmaPendingNetworkInitiatedSession *mm_common_oma_pending_network_initiated_sessions_variant_to_array (GVariant *variant,
+ guint *n_modes);
+GVariant *mm_common_oma_pending_network_initiated_sessions_array_to_variant (const MMOmaPendingNetworkInitiatedSession *modes,
+ guint n_modes);
+GVariant *mm_common_oma_pending_network_initiated_sessions_garray_to_variant (GArray *array);
+GVariant *mm_common_build_oma_pending_network_initiated_sessions_default (void);
+
typedef gboolean (*MMParseKeyValueForeachFn) (const gchar *key,
const gchar *value,
gpointer user_data);
diff --git a/libmm-glib/mm-helper-types.h b/libmm-glib/mm-helper-types.h
index c235ff6..d4e7fa9 100644
--- a/libmm-glib/mm-helper-types.h
+++ b/libmm-glib/mm-helper-types.h
@@ -37,10 +37,11 @@
*
* #MMModemModeCombination is a simple struct holding a pair of #MMModemMode values.
*/
-typedef struct _MMModemModeCombination {
+typedef struct _MMModemModeCombination MMModemModeCombination;
+struct _MMModemModeCombination {
MMModemMode allowed;
MMModemMode preferred;
-} MMModemModeCombination;
+};
/**
* MMModemPortInfo:
@@ -49,12 +50,27 @@ typedef struct _MMModemModeCombination {
*
* Information of a given port.
*/
-typedef struct _MMModemPortInfo {
+typedef struct _MMModemPortInfo MMModemPortInfo;
+struct _MMModemPortInfo {
gchar *name;
MMModemPortType type;
-} MMModemPortInfo;
+};
void mm_modem_port_info_array_free (MMModemPortInfo *array,
guint array_size);
+/**
+ * MMOmaPendingNetworkInitiatedSession:
+ * @session_type: A #MMOmaSessionType.
+ * @session_id: Unique ID of the network-initiated OMA session.
+ *
+ * #MMOmaPendingNetworkInitiatedSession is a simple struct specifying the
+ * information available for a pending network-initiated OMA session.
+ */
+typedef struct _MMOmaPendingNetworkInitiatedSession MMOmaPendingNetworkInitiatedSession;
+struct _MMOmaPendingNetworkInitiatedSession {
+ MMOmaSessionType session_type;
+ guint session_id;
+};
+
#endif /* _MM_HELPER_TYPES_H_ */
diff --git a/libmm-glib/mm-location-gps-nmea.c b/libmm-glib/mm-location-gps-nmea.c
index 2070eeb..08ec97f 100644
--- a/libmm-glib/mm-location-gps-nmea.c
+++ b/libmm-glib/mm-location-gps-nmea.c
@@ -158,7 +158,7 @@ build_full_foreach (const gchar *trace_type,
*
* Gets a compilation of all cached traces.
*
- * Returns: (transfer full) a string containing all traces, or #NULL if none available. The returned value should be freed with g_free().
+ * Returns: (transfer full): a string containing all traces, or #NULL if none available. The returned value should be freed with g_free().
*/
gchar *
mm_location_gps_nmea_build_full (MMLocationGpsNmea *self)
diff --git a/libmm-glib/mm-manager.c b/libmm-glib/mm-manager.c
index 81c6e4f..8275f79 100644
--- a/libmm-glib/mm-manager.c
+++ b/libmm-glib/mm-manager.c
@@ -70,7 +70,9 @@ get_proxy_type (GDBusObjectManagerClient *manager,
g_hash_table_insert (lookup_hash, "org.freedesktop.ModemManager1.Modem.Messaging", GSIZE_TO_POINTER (MM_TYPE_MODEM_MESSAGING));
g_hash_table_insert (lookup_hash, "org.freedesktop.ModemManager1.Modem.Location", GSIZE_TO_POINTER (MM_TYPE_MODEM_LOCATION));
g_hash_table_insert (lookup_hash, "org.freedesktop.ModemManager1.Modem.Time", GSIZE_TO_POINTER (MM_TYPE_MODEM_TIME));
+ g_hash_table_insert (lookup_hash, "org.freedesktop.ModemManager1.Modem.Signal", GSIZE_TO_POINTER (MM_TYPE_MODEM_SIGNAL));
g_hash_table_insert (lookup_hash, "org.freedesktop.ModemManager1.Modem.Firmware", GSIZE_TO_POINTER (MM_TYPE_MODEM_FIRMWARE));
+ g_hash_table_insert (lookup_hash, "org.freedesktop.ModemManager1.Modem.Oma", GSIZE_TO_POINTER (MM_TYPE_MODEM_OMA));
g_hash_table_insert (lookup_hash, "org.freedesktop.ModemManager1.Modem.ModemCdma", GSIZE_TO_POINTER (MM_TYPE_MODEM_CDMA));
g_hash_table_insert (lookup_hash, "org.freedesktop.ModemManager1.Modem.Modem3gpp", GSIZE_TO_POINTER (MM_TYPE_MODEM_3GPP));
g_hash_table_insert (lookup_hash, "org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd", GSIZE_TO_POINTER (MM_TYPE_MODEM_3GPP_USSD));
diff --git a/libmm-glib/mm-modem-3gpp.c b/libmm-glib/mm-modem-3gpp.c
index 40c7e86..a926acc 100644
--- a/libmm-glib/mm-modem-3gpp.c
+++ b/libmm-glib/mm-modem-3gpp.c
@@ -246,6 +246,25 @@ mm_modem_3gpp_get_registration_state (MMModem3gpp *self)
/*****************************************************************************/
/**
+ * mm_modem_3gpp_get_subscription_state:
+ * @self: A #MMModem.
+ *
+ * Get the current subscription status of the account. This value is only
+ * available after the modem attempts to register with the network.
+ *
+ * Returns: A #MMModem3gppSubscriptionState value, specifying the current subscription state.
+ */
+MMModem3gppSubscriptionState
+mm_modem_3gpp_get_subscription_state (MMModem3gpp *self)
+{
+ g_return_val_if_fail (MM_IS_MODEM_3GPP (self), MM_MODEM_3GPP_SUBSCRIPTION_STATE_UNKNOWN);
+
+ return mm_gdbus_modem3gpp_get_subscription_state (MM_GDBUS_MODEM3GPP (self));
+}
+
+/*****************************************************************************/
+
+/**
* mm_modem_3gpp_get_enabled_facility_locks:
* @self: A #MMModem3gpp.
*
@@ -499,7 +518,7 @@ create_networks_list (GVariant *variant)
*
* Finishes an operation started with mm_modem_3gpp_scan().
*
- * Returns: a list of #MMModem3gppNetwork structs, or #NULL if @error is set. The returned value should be freed with g_list_free_full() using mm_modem_3gpp_network_free() as #GDestroyNotify function.
+ * Returns: (transfer full) (element-type ModemManager.Modem3gppNetwork): a list of #MMModem3gppNetwork structs, or #NULL if @error is set. The returned value should be freed with g_list_free_full() using mm_modem_3gpp_network_free() as #GDestroyNotify function.
*/
GList *
mm_modem_3gpp_scan_finish (MMModem3gpp *self,
@@ -552,7 +571,7 @@ mm_modem_3gpp_scan (MMModem3gpp *self,
* The calling thread is blocked until a reply is received. See mm_modem_3gpp_scan()
* for the asynchronous version of this method.
*
- * Returns: a list of #MMModem3gppNetwork structs, or #NULL if @error is set. The returned value should be freed with g_list_free_full() using mm_modem_3gpp_network_free() as #GDestroyNotify function.
+ * Returns: (transfer full) (element-type ModemManager.Modem3gppNetwork): a list of #MMModem3gppNetwork structs, or #NULL if @error is set. The returned value should be freed with g_list_free_full() using mm_modem_3gpp_network_free() as #GDestroyNotify function.
*/
GList *
mm_modem_3gpp_scan_sync (MMModem3gpp *self,
diff --git a/libmm-glib/mm-modem-3gpp.h b/libmm-glib/mm-modem-3gpp.h
index bb055dc..7cfe011 100644
--- a/libmm-glib/mm-modem-3gpp.h
+++ b/libmm-glib/mm-modem-3gpp.h
@@ -76,6 +76,7 @@ const gchar *mm_modem_3gpp_get_operator_name (MMModem3gpp *self);
gchar *mm_modem_3gpp_dup_operator_name (MMModem3gpp *self);
MMModem3gppRegistrationState mm_modem_3gpp_get_registration_state (MMModem3gpp *self);
+MMModem3gppSubscriptionState mm_modem_3gpp_get_subscription_state (MMModem3gpp *self);
MMModem3gppFacility mm_modem_3gpp_get_enabled_facility_locks (MMModem3gpp *self);
diff --git a/libmm-glib/mm-modem-cdma.c b/libmm-glib/mm-modem-cdma.c
index 6f042c0..a759697 100644
--- a/libmm-glib/mm-modem-cdma.c
+++ b/libmm-glib/mm-modem-cdma.c
@@ -341,6 +341,98 @@ mm_modem_cdma_activate_sync (MMModemCdma *self,
/*****************************************************************************/
+/**
+ * mm_modem_cdma_activate_manual_finish:
+ * @self: A #MMModemCdma.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to mm_modem_cdma_activate_manual().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with mm_modem_cdma_activate_manual().
+ *
+ * Returns: %TRUE if the activation was successful, %FALSE if @error is set.
+ */
+gboolean
+mm_modem_cdma_activate_manual_finish (MMModemCdma *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ g_return_val_if_fail (MM_IS_MODEM_CDMA (self), FALSE);
+
+ return mm_gdbus_modem_cdma_call_activate_manual_finish (MM_GDBUS_MODEM_CDMA (self), res, error);
+}
+
+/**
+ * mm_modem_cdma_activate_manual:
+ * @self: A #MMModemCdma.
+ * @properties: A #MMCdmaManualActivationProperties.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously requests to provision the modem with the given properties.
+ *
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call mm_modem_cdma_activate_manual_finish() to get the result of the operation.
+ *
+ * See mm_modem_cdma_activate_manual_sync() for the synchronous, blocking version of this method.
+ */
+void
+mm_modem_cdma_activate_manual (MMModemCdma *self,
+ MMCdmaManualActivationProperties *properties,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ GVariant *dictionary;
+
+ g_return_if_fail (MM_IS_MODEM_CDMA (self));
+
+ dictionary = mm_cdma_manual_activation_properties_get_dictionary (properties);
+ mm_gdbus_modem_cdma_call_activate_manual (MM_GDBUS_MODEM_CDMA (self),
+ dictionary,
+ cancellable,
+ callback,
+ user_data);
+ g_variant_unref (dictionary);
+}
+
+/**
+ * mm_modem_cdma_activate_manual_sync:
+ * @self: A #MMModemCdma.
+ * @properties: A #MMCdmaManualActivationProperties.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously requests to provision the modem with the given properties.
+ *
+ * The calling thread is blocked until a reply is received. See mm_modem_cdma_activate_manual()
+ * for the asynchronous version of this method.
+ *
+ * Returns: %TRUE if the activation was successful, %FALSE if @error is set.
+ */
+gboolean
+mm_modem_cdma_activate_manual_sync (MMModemCdma *self,
+ MMCdmaManualActivationProperties *properties,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GVariant *dictionary;
+ gboolean ret;
+
+ g_return_val_if_fail (MM_IS_MODEM_CDMA (self), FALSE);
+
+ dictionary = mm_cdma_manual_activation_properties_get_dictionary (properties);
+ ret = (mm_gdbus_modem_cdma_call_activate_manual_sync (
+ MM_GDBUS_MODEM_CDMA (self),
+ dictionary,
+ cancellable,
+ error));
+ g_variant_unref (dictionary);
+ return ret;
+}
+
+/*****************************************************************************/
+
static void
mm_modem_cdma_init (MMModemCdma *self)
{
diff --git a/libmm-glib/mm-modem-cdma.h b/libmm-glib/mm-modem-cdma.h
index 8c7cb9c..31e7824 100644
--- a/libmm-glib/mm-modem-cdma.h
+++ b/libmm-glib/mm-modem-cdma.h
@@ -31,6 +31,7 @@
#include <ModemManager.h>
#include "mm-gdbus-modem.h"
+#include "mm-cdma-manual-activation-properties.h"
G_BEGIN_DECLS
@@ -105,6 +106,19 @@ gboolean mm_modem_cdma_activate_sync (MMModemCdma *self,
GCancellable *cancellable,
GError **error);
+void mm_modem_cdma_activate_manual (MMModemCdma *self,
+ MMCdmaManualActivationProperties *properties,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+gboolean mm_modem_cdma_activate_manual_finish (MMModemCdma *self,
+ GAsyncResult *res,
+ GError **error);
+gboolean mm_modem_cdma_activate_manual_sync (MMModemCdma *self,
+ MMCdmaManualActivationProperties *properties,
+ GCancellable *cancellable,
+ GError **error);
+
G_END_DECLS
#endif /* _MM_MODEM_CDMA_H_ */
diff --git a/libmm-glib/mm-modem-firmware.c b/libmm-glib/mm-modem-firmware.c
index c52f316..0bc6c6b 100644
--- a/libmm-glib/mm-modem-firmware.c
+++ b/libmm-glib/mm-modem-firmware.c
@@ -245,7 +245,7 @@ build_results (const gchar *str_selected,
* mm_modem_firmware_list_finish:
* @self: A #MMModemFirmware.
* @selected: (out) (allow-none) (transfer full): The selected firmware slot, or NULL if no slot is selected (such as if all slots are empty, or no slots exist). The returned value should be freed with g_object_unref().
- * @installed: (out) (allow-none) (transfer full): A list of #MMFirmwareProperties objects specifying the installed images. The returned value should be freed with g_list_free_full() using g_object_unref() as #GDestroyNotify.
+ * @installed: (out) (allow-none) (transfer full) (element-type ModemManager.FirmwareProperties): A list of #MMFirmwareProperties objects specifying the installed images. The returned value should be freed with g_list_free_full() using g_object_unref() as #GDestroyNotify.
* @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to mm_modem_firmware_list().
* @error: Return location for error or %NULL.
*
@@ -321,7 +321,7 @@ mm_modem_firmware_list (MMModemFirmware *self,
* mm_modem_firmware_list_sync:
* @self: A #MMModemFirmware.
* @selected: (out) (allow-none) (transfer full): The selected firmware slot, or NULL if no slot is selected (such as if all slots are empty, or no slots exist). The returned value should be freed with g_object_unref().
- * @installed: (out) (allow-none) (transfer full): A list of #MMFirmwareProperties objects specifying the installed images. The returned value should be freed with g_list_free_full() using g_object_unref() as #GDestroyNotify.
+ * @installed: (out) (allow-none) (transfer full) (element-type ModemManager.FirmwareProperties): A list of #MMFirmwareProperties objects specifying the installed images. The returned value should be freed with g_list_free_full() using g_object_unref() as #GDestroyNotify.
* @cancellable: (allow-none): A #GCancellable or %NULL.
* @error: Return firmware for error or %NULL.
*
diff --git a/libmm-glib/mm-modem-location.c b/libmm-glib/mm-modem-location.c
index 1e5541a..7f38a65 100644
--- a/libmm-glib/mm-modem-location.c
+++ b/libmm-glib/mm-modem-location.c
@@ -101,7 +101,7 @@ mm_modem_location_get_capabilities (MMModemLocation *self)
/*****************************************************************************/
/**
- * mm_modem_location_get_capabilities:
+ * mm_modem_location_get_enabled:
* @self: A #MMModemLocation.
*
* Gets a bitmask of the location capabilities which are enabled in this #MMModemLocation.
@@ -389,7 +389,7 @@ mm_modem_location_get_full_sync (MMModemLocation *self,
*
* Finishes an operation started with mm_modem_location_get_3gpp().
*
- * Returns: (transfer full) A #MMLocation3gpp, or #NULL if not available. The returned value should be freed with g_object_unref().
+ * Returns: (transfer full): A #MMLocation3gpp, or #NULL if not available. The returned value should be freed with g_object_unref().
*/
MMLocation3gpp *
mm_modem_location_get_3gpp_finish (MMModemLocation *self,
@@ -437,7 +437,7 @@ mm_modem_location_get_3gpp (MMModemLocation *self,
* The calling thread is blocked until a reply is received. See mm_modem_location_get_3gpp()
* for the asynchronous version of this method.
*
- * Returns: (transfer full) A #MMLocation3gpp, or #NULL if not available. The returned value should be freed with g_object_unref().
+ * Returns: (transfer full): A #MMLocation3gpp, or #NULL if not available. The returned value should be freed with g_object_unref().
*/
MMLocation3gpp *
mm_modem_location_get_3gpp_sync (MMModemLocation *self,
@@ -461,7 +461,7 @@ mm_modem_location_get_3gpp_sync (MMModemLocation *self,
*
* Finishes an operation started with mm_modem_location_get_gps_nmea().
*
- * Returns: (transfer full) A #MMLocationGpsNmea, or #NULL if not available. The returned value should be freed with g_object_unref().
+ * Returns: (transfer full): A #MMLocationGpsNmea, or #NULL if not available. The returned value should be freed with g_object_unref().
*/
MMLocationGpsNmea *
mm_modem_location_get_gps_nmea_finish (MMModemLocation *self,
@@ -509,7 +509,7 @@ mm_modem_location_get_gps_nmea (MMModemLocation *self,
* The calling thread is blocked until a reply is received. See mm_modem_location_get_gps_nmea()
* for the asynchronous version of this method.
*
- * Returns: (transfer full) A #MMLocationGpsNmea, or #NULL if not available. The returned value should be freed with g_object_unref().
+ * Returns: (transfer full): A #MMLocationGpsNmea, or #NULL if not available. The returned value should be freed with g_object_unref().
*/
MMLocationGpsNmea *
mm_modem_location_get_gps_nmea_sync (MMModemLocation *self,
@@ -533,7 +533,7 @@ mm_modem_location_get_gps_nmea_sync (MMModemLocation *self,
*
* Finishes an operation started with mm_modem_location_get_gps_raw().
*
- * Returns: (transfer full) A #MMLocationGpsRaw, or #NULL if not available. The returned value should be freed with g_object_unref().
+ * Returns: (transfer full): A #MMLocationGpsRaw, or #NULL if not available. The returned value should be freed with g_object_unref().
*/
MMLocationGpsRaw *
mm_modem_location_get_gps_raw_finish (MMModemLocation *self,
@@ -581,7 +581,7 @@ mm_modem_location_get_gps_raw (MMModemLocation *self,
* The calling thread is blocked until a reply is received. See mm_modem_location_get_gps_raw()
* for the asynchronous version of this method.
*
- * Returns: (transfer full) A #MMLocationGpsRaw, or #NULL if not available. The returned value should be freed with g_object_unref().
+ * Returns: (transfer full): A #MMLocationGpsRaw, or #NULL if not available. The returned value should be freed with g_object_unref().
*/
MMLocationGpsRaw *
mm_modem_location_get_gps_raw_sync (MMModemLocation *self,
@@ -605,7 +605,7 @@ mm_modem_location_get_gps_raw_sync (MMModemLocation *self,
*
* Finishes an operation started with mm_modem_location_get_cdma_bs().
*
- * Returns: (transfer full) A #MMLocationCdmaBs, or #NULL if not available. The returned value should be freed with g_object_unref().
+ * Returns: (transfer full): A #MMLocationCdmaBs, or #NULL if not available. The returned value should be freed with g_object_unref().
*/
MMLocationCdmaBs *
mm_modem_location_get_cdma_bs_finish (MMModemLocation *self,
@@ -653,7 +653,7 @@ mm_modem_location_get_cdma_bs (MMModemLocation *self,
* The calling thread is blocked until a reply is received. See mm_modem_location_get_cdma_bs()
* for the asynchronous version of this method.
*
- * Returns: (transfer full) A #MMLocationCdmaBs, or #NULL if not available. The returned value should be freed with g_object_unref().
+ * Returns: (transfer full): A #MMLocationCdmaBs, or #NULL if not available. The returned value should be freed with g_object_unref().
*/
MMLocationCdmaBs *
mm_modem_location_get_cdma_bs_sync (MMModemLocation *self,
diff --git a/libmm-glib/mm-modem-messaging.c b/libmm-glib/mm-modem-messaging.c
index 50c525c..fdf1497 100644
--- a/libmm-glib/mm-modem-messaging.c
+++ b/libmm-glib/mm-modem-messaging.c
@@ -236,7 +236,7 @@ sms_object_list_free (GList *list)
static void
list_sms_context_complete_and_free (ListSmsContext *ctx)
{
- g_simple_async_result_complete (ctx->result);
+ g_simple_async_result_complete_in_idle (ctx->result);
g_strfreev (ctx->sms_paths);
sms_object_list_free (ctx->sms_objects);
@@ -255,7 +255,7 @@ list_sms_context_complete_and_free (ListSmsContext *ctx)
*
* Finishes an operation started with mm_modem_messaging_list().
*
- * Returns: (element-type MM.Sms) (transfer full): A list of #MMSms objects, or #NULL if either not found or @error is set. The returned value should be freed with g_list_free_full() using g_object_unref() as #GDestroyNotify function.
+ * Returns: (element-type ModemManager.Sms) (transfer full): A list of #MMSms objects, or #NULL if either not found or @error is set. The returned value should be freed with g_list_free_full() using g_object_unref() as #GDestroyNotify function.
*/
GList *
mm_modem_messaging_list_finish (MMModemMessaging *self,
@@ -331,32 +331,6 @@ create_next_sms (ListSmsContext *ctx)
NULL);
}
-static void
-list_ready (MMModemMessaging *self,
- GAsyncResult *res,
- ListSmsContext *ctx)
-{
- GError *error = NULL;
-
- mm_gdbus_modem_messaging_call_list_finish (MM_GDBUS_MODEM_MESSAGING (self), &ctx->sms_paths, res, &error);
- if (error) {
- g_simple_async_result_take_error (ctx->result, error);
- list_sms_context_complete_and_free (ctx);
- return;
- }
-
- /* If no SMS, just end here. */
- if (!ctx->sms_paths || !ctx->sms_paths[0]) {
- g_simple_async_result_set_op_res_gpointer (ctx->result, NULL, NULL);
- list_sms_context_complete_and_free (ctx);
- return;
- }
-
- /* Got list of paths. If at least one found, start creating objects for each */
- ctx->i = 0;
- create_next_sms (ctx);
-}
-
/**
* mm_modem_messaging_list:
* @self: A #MMModemMessaging.
@@ -390,10 +364,18 @@ mm_modem_messaging_list (MMModemMessaging *self,
if (cancellable)
ctx->cancellable = g_object_ref (cancellable);
- mm_gdbus_modem_messaging_call_list (MM_GDBUS_MODEM_MESSAGING (self),
- cancellable,
- (GAsyncReadyCallback)list_ready,
- ctx);
+ ctx->sms_paths = mm_gdbus_modem_messaging_dup_messages (MM_GDBUS_MODEM_MESSAGING (self));
+
+ /* If no SMS, just end here. */
+ if (!ctx->sms_paths || !ctx->sms_paths[0]) {
+ g_simple_async_result_set_op_res_gpointer (ctx->result, NULL, NULL);
+ list_sms_context_complete_and_free (ctx);
+ return;
+ }
+
+ /* Got list of paths. If at least one found, start creating objects for each */
+ ctx->i = 0;
+ create_next_sms (ctx);
}
/**
@@ -407,7 +389,7 @@ mm_modem_messaging_list (MMModemMessaging *self,
* The calling thread is blocked until a reply is received. See mm_modem_messaging_list()
* for the asynchronous version of this method.
*
- * Returns: (element-type MM.Sms) (transfer full): A list of #MMSms objects, or #NULL if either not found or @error is set. The returned value should be freed with g_list_free_full() using g_object_unref() as #GDestroyNotify function.
+ * Returns: (element-type MMSms) (transfer full): A list of #MMSms objects, or #NULL if either not found or @error is set. The returned value should be freed with g_list_free_full() using g_object_unref() as #GDestroyNotify function.
*/
GList *
mm_modem_messaging_list_sync (MMModemMessaging *self,
@@ -420,11 +402,7 @@ mm_modem_messaging_list_sync (MMModemMessaging *self,
g_return_val_if_fail (MM_IS_MODEM_MESSAGING (self), NULL);
- if (!mm_gdbus_modem_messaging_call_list_sync (MM_GDBUS_MODEM_MESSAGING (self),
- &sms_paths,
- cancellable,
- error))
- return NULL;
+ sms_paths = mm_gdbus_modem_messaging_dup_messages (MM_GDBUS_MODEM_MESSAGING (self));
/* Only non-empty lists are returned */
if (!sms_paths)
@@ -598,7 +576,7 @@ mm_modem_messaging_create (MMModemMessaging *self,
}
/**
- * mm_modem_create_sms_sync:
+ * mm_modem_messaging_create_sync:
* @self: A #MMModemMessaging.
* @properties: A ##MMSmsProperties object with the properties to use.
* @cancellable: (allow-none): A #GCancellable or %NULL.
diff --git a/libmm-glib/mm-modem-oma.c b/libmm-glib/mm-modem-oma.c
new file mode 100644
index 0000000..380bb08
--- /dev/null
+++ b/libmm-glib/mm-modem-oma.c
@@ -0,0 +1,593 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * libmm -- Access modem status & information from glib applications
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA.
+ *
+ * Copyright (C) 2013 Google, Inc.
+ */
+
+#include <gio/gio.h>
+#include <string.h>
+
+#include "mm-helpers.h"
+#include "mm-errors-types.h"
+#include "mm-modem-oma.h"
+#include "mm-common-helpers.h"
+
+/**
+ * SECTION: mm-modem-oma
+ * @title: MMModemOma
+ * @short_description: The OMA interface
+ *
+ * The #MMModemOma is an object providing access to the methods, signals and
+ * properties of the OMA interface.
+ *
+ * The OMA interface is exposed whenever a modem has OMA device management capabilities.
+ */
+
+G_DEFINE_TYPE (MMModemOma, mm_modem_oma, MM_GDBUS_TYPE_MODEM_OMA_PROXY)
+
+struct _MMModemOmaPrivate {
+ /* Supported Modes */
+ GMutex pending_network_initiated_sessions_mutex;
+ guint pending_network_initiated_sessions_id;
+ GArray *pending_network_initiated_sessions;
+};
+
+/*****************************************************************************/
+
+/**
+ * mm_modem_oma_get_path:
+ * @self: A #MMModemOma.
+ *
+ * Gets the DBus path of the #MMObject which implements this interface.
+ *
+ * Returns: (transfer none): The DBus path of the #MMObject object.
+ */
+const gchar *
+mm_modem_oma_get_path (MMModemOma *self)
+{
+ g_return_val_if_fail (MM_IS_MODEM_OMA (self), NULL);
+
+ RETURN_NON_EMPTY_CONSTANT_STRING (
+ g_dbus_proxy_get_object_path (G_DBUS_PROXY (self)));
+}
+
+/**
+ * mm_modem_oma_dup_path:
+ * @self: A #MMModemOma.
+ *
+ * Gets a copy of the DBus path of the #MMObject object which implements this interface.
+ *
+ * Returns: (transfer full): The DBus path of the #MMObject. The returned value should be freed with g_free().
+ */
+gchar *
+mm_modem_oma_dup_path (MMModemOma *self)
+{
+ gchar *value;
+
+ g_return_val_if_fail (MM_IS_MODEM_OMA (self), NULL);
+
+ g_object_get (G_OBJECT (self),
+ "g-object-path", &value,
+ NULL);
+ RETURN_NON_EMPTY_STRING (value);
+}
+
+/*****************************************************************************/
+
+/**
+ * mm_modem_oma_setup_finish:
+ * @self: A #MMModemOma.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to mm_modem_oma_setup().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with mm_modem_oma_setup().
+ *
+ * Returns: %TRUE if the setup was successful, %FALSE if @error is set.
+ */
+gboolean
+mm_modem_oma_setup_finish (MMModemOma *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ g_return_val_if_fail (MM_IS_MODEM_OMA (self), FALSE);
+
+ return mm_gdbus_modem_oma_call_setup_finish (MM_GDBUS_MODEM_OMA (self), res, error);
+}
+
+/**
+ * mm_modem_oma_setup:
+ * @self: A #MMModemOma.
+ * @features: Mask of #MMOmaFeatures to enable.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously sets up the OMA device management service.
+ *
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call mm_modem_oma_setup_finish() to get the result of the operation.
+ *
+ * See mm_modem_oma_setup_sync() for the synchronous, blocking version of this method.
+ */
+void
+mm_modem_oma_setup (MMModemOma *self,
+ MMOmaFeature features,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_return_if_fail (MM_IS_MODEM_OMA (self));
+
+ mm_gdbus_modem_oma_call_setup (MM_GDBUS_MODEM_OMA (self), features, cancellable, callback, user_data);
+}
+
+/**
+ * mm_modem_oma_setup_sync:
+ * @self: A #MMModemOma.
+ * @features: Mask of #MMOmaFeatures to enable.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously sets up the OMA device management service.
+ *
+ * The calling thread is blocked until a reply is received. See mm_modem_oma_setup()
+ * for the asynchronous version of this method.
+ *
+ * Returns: %TRUE if the setup was successful, %FALSE if @error is set.
+ */
+gboolean
+mm_modem_oma_setup_sync (MMModemOma *self,
+ MMOmaFeature features,
+ GCancellable *cancellable,
+ GError **error)
+{
+ g_return_val_if_fail (MM_IS_MODEM_OMA (self), FALSE);
+
+ return mm_gdbus_modem_oma_call_setup_sync (MM_GDBUS_MODEM_OMA (self), features, cancellable, error);
+}
+
+/*****************************************************************************/
+
+/**
+ * mm_modem_oma_start_client_initiated_session_finish:
+ * @self: A #MMModemOma.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to mm_modem_oma_start_client_initiated_session().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with mm_modem_oma_start_client_initiated_session().
+ *
+ * Returns: %TRUE if the session was started, %FALSE if @error is set.
+ */
+gboolean
+mm_modem_oma_start_client_initiated_session_finish (MMModemOma *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ g_return_val_if_fail (MM_IS_MODEM_OMA (self), FALSE);
+
+ return mm_gdbus_modem_oma_call_start_client_initiated_session_finish (MM_GDBUS_MODEM_OMA (self), res, error);
+}
+
+/**
+ * mm_modem_oma_start_client_initiated_session:
+ * @self: A #MMModemOma.
+ * @session_type: A #MMOmaSessionType.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously starts a client-initiated OMA device management session.
+ *
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call mm_modem_oma_start_client_initiated_session_finish() to get the result of the operation.
+ *
+ * See mm_modem_oma_start_client_initiated_session_sync() for the synchronous, blocking version of this method.
+ */
+void
+mm_modem_oma_start_client_initiated_session (MMModemOma *self,
+ MMOmaSessionType session_type,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_return_if_fail (MM_IS_MODEM_OMA (self));
+
+ mm_gdbus_modem_oma_call_start_client_initiated_session (MM_GDBUS_MODEM_OMA (self), session_type, cancellable, callback, user_data);
+}
+
+/**
+ * mm_modem_oma_start_client_initiated_session_sync:
+ * @self: A #MMModemOma.
+ * @session_type: A #MMOmaSessionType.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously starts a client-initiated OMA device management session.
+ *
+ * The calling thread is blocked until a reply is received. See mm_modem_oma_start_client_initiated_session()
+ * for the asynchronous version of this method.
+ *
+ * Returns: %TRUE if the session was started, %FALSE if @error is set.
+ */
+gboolean
+mm_modem_oma_start_client_initiated_session_sync (MMModemOma *self,
+ MMOmaSessionType session_type,
+ GCancellable *cancellable,
+ GError **error)
+{
+ g_return_val_if_fail (MM_IS_MODEM_OMA (self), FALSE);
+
+ return mm_gdbus_modem_oma_call_start_client_initiated_session_sync (MM_GDBUS_MODEM_OMA (self), session_type, cancellable, error);
+}
+
+/*****************************************************************************/
+
+/**
+ * mm_modem_oma_accept_network_initiated_session_finish:
+ * @self: A #MMModemOma.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to mm_modem_oma_accept_network_initiated_session().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with mm_modem_oma_accept_network_initiated_session().
+ *
+ * Returns: %TRUE if the session was started, %FALSE if @error is set.
+ */
+gboolean
+mm_modem_oma_accept_network_initiated_session_finish (MMModemOma *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ g_return_val_if_fail (MM_IS_MODEM_OMA (self), FALSE);
+
+ return mm_gdbus_modem_oma_call_accept_network_initiated_session_finish (MM_GDBUS_MODEM_OMA (self), res, error);
+}
+
+/**
+ * mm_modem_oma_accept_network_initiated_session:
+ * @self: A #MMModemOma.
+ * @session_id: The unique ID of the network-initiated session.
+ * @accept: %TRUE if the session is to be accepted, %FALSE otherwise.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously accepts a nework-initiated OMA device management session.
+ *
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call mm_modem_oma_accept_network_initiated_session_finish() to get the result of the operation.
+ *
+ * See mm_modem_oma_accept_network_initiated_session_sync() for the synchronous, blocking version of this method.
+ */
+void
+mm_modem_oma_accept_network_initiated_session (MMModemOma *self,
+ guint session_id,
+ gboolean accept,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_return_if_fail (MM_IS_MODEM_OMA (self));
+
+ mm_gdbus_modem_oma_call_accept_network_initiated_session (MM_GDBUS_MODEM_OMA (self), session_id, accept, cancellable, callback, user_data);
+}
+
+/**
+ * mm_modem_oma_accept_network_initiated_session_sync:
+ * @self: A #MMModemOma.
+ * @session_id: The unique ID of the network-initiated session.
+ * @accept: %TRUE if the session is to be accepted, %FALSE otherwise.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously accepts a nework-initiated OMA device management session.
+ *
+ * The calling thread is blocked until a reply is received. See mm_modem_oma_accept_network_initiated_session()
+ * for the asynchronous version of this method.
+ *
+ * Returns: %TRUE if the session was started, %FALSE if @error is set.
+ */
+gboolean
+mm_modem_oma_accept_network_initiated_session_sync (MMModemOma *self,
+ guint session_id,
+ gboolean accept,
+ GCancellable *cancellable,
+ GError **error)
+{
+ g_return_val_if_fail (MM_IS_MODEM_OMA (self), FALSE);
+
+ return mm_gdbus_modem_oma_call_accept_network_initiated_session_sync (MM_GDBUS_MODEM_OMA (self), session_id, accept, cancellable, error);
+}
+
+/*****************************************************************************/
+
+/**
+ * mm_modem_oma_cancel_session_finish:
+ * @self: A #MMModemOma.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to mm_modem_oma_cancel_session().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with mm_modem_oma_cancel_session().
+ *
+ * Returns: %TRUE if the session was started, %FALSE if @error is set.
+ */
+gboolean
+mm_modem_oma_cancel_session_finish (MMModemOma *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ g_return_val_if_fail (MM_IS_MODEM_OMA (self), FALSE);
+
+ return mm_gdbus_modem_oma_call_cancel_session_finish (MM_GDBUS_MODEM_OMA (self), res, error);
+}
+
+/**
+ * mm_modem_oma_cancel_session:
+ * @self: A #MMModemOma.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously cancels the current OMA device management session.
+ *
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call mm_modem_oma_cancel_session_finish() to get the result of the operation.
+ *
+ * See mm_modem_oma_cancel_session_sync() for the synchronous, blocking version of this method.
+ */
+void
+mm_modem_oma_cancel_session (MMModemOma *self,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_return_if_fail (MM_IS_MODEM_OMA (self));
+
+ mm_gdbus_modem_oma_call_cancel_session (MM_GDBUS_MODEM_OMA (self), cancellable, callback, user_data);
+}
+
+/**
+ * mm_modem_oma_cancel_session_sync:
+ * @self: A #MMModemOma.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously cancels the current OMA device management session.
+ *
+ * The calling thread is blocked until a reply is received. See mm_modem_oma_cancel_session()
+ * for the asynchronous version of this method.
+ *
+ * Returns: %TRUE if the session was started, %FALSE if @error is set.
+ */
+gboolean
+mm_modem_oma_cancel_session_sync (MMModemOma *self,
+ GCancellable *cancellable,
+ GError **error)
+{
+ g_return_val_if_fail (MM_IS_MODEM_OMA (self), FALSE);
+
+ return mm_gdbus_modem_oma_call_cancel_session_sync (MM_GDBUS_MODEM_OMA (self), cancellable, error);
+}
+
+/*****************************************************************************/
+
+/**
+ * mm_modem_oma_get_features:
+ * @self: A #MMModemOma.
+ *
+ * Gets the currently enabled OMA features.
+ *
+ * Returns: a bitmask of #MMOmaFeature values.
+ */
+MMOmaFeature
+mm_modem_oma_get_features (MMModemOma *self)
+{
+ g_return_val_if_fail (MM_IS_MODEM_OMA (self), MM_OMA_SESSION_TYPE_UNKNOWN);
+
+ return (MMOmaFeature) mm_gdbus_modem_oma_get_features (MM_GDBUS_MODEM_OMA (self));
+}
+
+/*****************************************************************************/
+
+/**
+ * mm_modem_oma_get_session_type:
+ * @self: A #MMModemOma.
+ *
+ * Gets the type of the current OMA device management session.
+ *
+ * Returns: a #MMOmaSessionType.
+ */
+MMOmaSessionType
+mm_modem_oma_get_session_type (MMModemOma *self)
+{
+ g_return_val_if_fail (MM_IS_MODEM_OMA (self), MM_OMA_SESSION_TYPE_UNKNOWN);
+
+ return (MMOmaSessionType) mm_gdbus_modem_oma_get_session_type (MM_GDBUS_MODEM_OMA (self));
+}
+
+/*****************************************************************************/
+
+/**
+ * mm_modem_oma_get_session_state:
+ * @self: A #MMModemOma.
+ *
+ * Gets the state of the current OMA device management session.
+ *
+ * Returns: a #MMOmaSessionState.
+ */
+MMOmaSessionState
+mm_modem_oma_get_session_state (MMModemOma *self)
+{
+ g_return_val_if_fail (MM_IS_MODEM_OMA (self), MM_OMA_SESSION_STATE_UNKNOWN);
+
+ return (MMOmaSessionState) mm_gdbus_modem_oma_get_session_state (MM_GDBUS_MODEM_OMA (self));
+}
+
+/*****************************************************************************/
+
+static void
+pending_network_initiated_sessions_updated (MMModemOma *self,
+ GParamSpec *pspec)
+{
+ g_mutex_lock (&self->priv->pending_network_initiated_sessions_mutex);
+ {
+ GVariant *dictionary;
+
+ if (self->priv->pending_network_initiated_sessions)
+ g_array_unref (self->priv->pending_network_initiated_sessions);
+
+ dictionary = mm_gdbus_modem_oma_get_pending_network_initiated_sessions (MM_GDBUS_MODEM_OMA (self));
+ self->priv->pending_network_initiated_sessions = (dictionary ?
+ mm_common_oma_pending_network_initiated_sessions_variant_to_garray (dictionary) :
+ NULL);
+ }
+ g_mutex_unlock (&self->priv->pending_network_initiated_sessions_mutex);
+}
+
+static gboolean
+ensure_internal_pending_network_initiated_sessions (MMModemOma *self,
+ MMOmaPendingNetworkInitiatedSession **dup_sessions,
+ guint *dup_sessions_n)
+{
+ gboolean ret;
+
+ g_mutex_lock (&self->priv->pending_network_initiated_sessions_mutex);
+ {
+ /* If this is the first time ever asking for the array, setup the
+ * update listener and the initial array, if any. */
+ if (!self->priv->pending_network_initiated_sessions_id) {
+ GVariant *dictionary;
+
+ dictionary = mm_gdbus_modem_oma_dup_pending_network_initiated_sessions (MM_GDBUS_MODEM_OMA (self));
+ if (dictionary) {
+ self->priv->pending_network_initiated_sessions = mm_common_oma_pending_network_initiated_sessions_variant_to_garray (dictionary);
+ g_variant_unref (dictionary);
+ }
+
+ /* No need to clear this signal connection when freeing self */
+ self->priv->pending_network_initiated_sessions_id =
+ g_signal_connect (self,
+ "notify::pending-network-initiated-sessions",
+ G_CALLBACK (pending_network_initiated_sessions_updated),
+ NULL);
+ }
+
+ if (!self->priv->pending_network_initiated_sessions)
+ ret = FALSE;
+ else {
+ ret = TRUE;
+
+ if (dup_sessions && dup_sessions_n) {
+ *dup_sessions_n = self->priv->pending_network_initiated_sessions->len;
+ if (self->priv->pending_network_initiated_sessions->len > 0) {
+ *dup_sessions = g_malloc (sizeof (MMOmaPendingNetworkInitiatedSession) * self->priv->pending_network_initiated_sessions->len);
+ memcpy (*dup_sessions, self->priv->pending_network_initiated_sessions->data, sizeof (MMOmaPendingNetworkInitiatedSession) * self->priv->pending_network_initiated_sessions->len);
+ } else
+ *dup_sessions = NULL;
+ }
+ }
+ }
+ g_mutex_unlock (&self->priv->pending_network_initiated_sessions_mutex);
+
+ return ret;
+}
+
+/**
+ * mm_modem_get_pending_network_initiated_sessions:
+ * @self: A #MMModem.
+ * @sessions: (out) (array length=n_sessions): Return location for the array of #MMOmaPendingNetworkInitiatedSession structs. The returned array should be freed with g_free() when no longer needed.
+ * @n_sessions: (out): Return location for the number of values in @sessions.
+ *
+ * Gets the list of pending network-initiated OMA sessions.
+ *
+ * Returns: %TRUE if @sessions and @n_sessions are set, %FALSE otherwise.
+ */
+gboolean
+mm_modem_get_pending_network_initiated_sessions (MMModemOma *self,
+ MMOmaPendingNetworkInitiatedSession **sessions,
+ guint *n_sessions)
+{
+ g_return_val_if_fail (MM_IS_MODEM_OMA (self), FALSE);
+ g_return_val_if_fail (sessions != NULL, FALSE);
+ g_return_val_if_fail (n_sessions != NULL, FALSE);
+
+ return ensure_internal_pending_network_initiated_sessions (self, sessions, n_sessions);
+}
+
+/**
+ * mm_modem_peek_pending_network_initiated_sessions:
+ * @self: A #MMModem.
+ * @sessions: (out) (array length=n_sessions): Return location for the array of #MMOmaPendingNetworkInitiatedSession values. Do not free the returned array, it is owned by @self.
+ * @n_sessions: (out): Return location for the number of values in @sessions.
+ *
+ * Gets the list of pending network-initiated OMA sessions.
+ *
+ * Returns: %TRUE if @sessions and @n_sessions are set, %FALSE otherwise.
+ */
+gboolean
+mm_modem_peek_pending_network_initiated_sessions (MMModemOma *self,
+ const MMOmaPendingNetworkInitiatedSession **sessions,
+ guint *n_sessions)
+{
+ g_return_val_if_fail (MM_IS_MODEM_OMA (self), FALSE);
+ g_return_val_if_fail (sessions != NULL, FALSE);
+ g_return_val_if_fail (n_sessions != NULL, FALSE);
+
+ if (!ensure_internal_pending_network_initiated_sessions (self, NULL, NULL))
+ return FALSE;
+
+ *n_sessions = self->priv->pending_network_initiated_sessions->len;
+ *sessions = (MMOmaPendingNetworkInitiatedSession *)self->priv->pending_network_initiated_sessions->data;
+ return TRUE;
+}
+
+/*****************************************************************************/
+
+static void
+mm_modem_oma_init (MMModemOma *self)
+{
+ /* Setup private data */
+ self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
+ MM_TYPE_MODEM_OMA,
+ MMModemOmaPrivate);
+ g_mutex_init (&self->priv->pending_network_initiated_sessions_mutex);
+}
+
+static void
+finalize (GObject *object)
+{
+ MMModemOma *self = MM_MODEM_OMA (object);
+
+ g_mutex_clear (&self->priv->pending_network_initiated_sessions_mutex);
+
+ if (self->priv->pending_network_initiated_sessions)
+ g_array_unref (self->priv->pending_network_initiated_sessions);
+
+ G_OBJECT_CLASS (mm_modem_oma_parent_class)->finalize (object);
+}
+
+static void
+mm_modem_oma_class_init (MMModemOmaClass *modem_class)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (modem_class);
+
+ g_type_class_add_private (object_class, sizeof (MMModemOmaPrivate));
+
+ /* Virtual methods */
+ object_class->finalize = finalize;
+}
diff --git a/libmm-glib/mm-modem-oma.h b/libmm-glib/mm-modem-oma.h
new file mode 100644
index 0000000..e6dc619
--- /dev/null
+++ b/libmm-glib/mm-modem-oma.h
@@ -0,0 +1,135 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * libmm -- Access modem status & information from glib applications
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA.
+ *
+ * Copyright (C) 2013 Google, Inc.
+ */
+
+#ifndef _MM_MODEM_OMA_H_
+#define _MM_MODEM_OMA_H_
+
+#if !defined (__LIBMM_GLIB_H_INSIDE__) && !defined (LIBMM_GLIB_COMPILATION)
+#error "Only <libmm-glib.h> can be included directly."
+#endif
+
+#include <ModemManager.h>
+
+#include "mm-helper-types.h"
+#include "mm-gdbus-modem.h"
+
+G_BEGIN_DECLS
+
+#define MM_TYPE_MODEM_OMA (mm_modem_oma_get_type ())
+#define MM_MODEM_OMA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MM_TYPE_MODEM_OMA, MMModemOma))
+#define MM_MODEM_OMA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MM_TYPE_MODEM_OMA, MMModemOmaClass))
+#define MM_IS_MODEM_OMA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MM_TYPE_MODEM_OMA))
+#define MM_IS_MODEM_OMA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), MM_TYPE_MODEM_OMA))
+#define MM_MODEM_OMA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MM_TYPE_MODEM_OMA, MMModemOmaClass))
+
+typedef struct _MMModemOma MMModemOma;
+typedef struct _MMModemOmaClass MMModemOmaClass;
+typedef struct _MMModemOmaPrivate MMModemOmaPrivate;
+
+/**
+ * MMModemOma:
+ *
+ * The #MMModemOma structure contains private data and should only be accessed
+ * using the provided API.
+ */
+struct _MMModemOma {
+ /*< private >*/
+ MmGdbusModemOmaProxy parent;
+ MMModemOmaPrivate *priv;
+};
+
+struct _MMModemOmaClass {
+ /*< private >*/
+ MmGdbusModemOmaProxyClass parent;
+};
+
+GType mm_modem_oma_get_type (void);
+
+const gchar *mm_modem_oma_get_path (MMModemOma *self);
+gchar *mm_modem_oma_dup_path (MMModemOma *self);
+
+void mm_modem_oma_setup (MMModemOma *self,
+ MMOmaFeature features,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+gboolean mm_modem_oma_setup_finish (MMModemOma *self,
+ GAsyncResult *res,
+ GError **error);
+gboolean mm_modem_oma_setup_sync (MMModemOma *self,
+ MMOmaFeature features,
+ GCancellable *cancellable,
+ GError **error);
+
+void mm_modem_oma_start_client_initiated_session (MMModemOma *self,
+ MMOmaSessionType session_type,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+gboolean mm_modem_oma_start_client_initiated_session_finish (MMModemOma *self,
+ GAsyncResult *res,
+ GError **error);
+gboolean mm_modem_oma_start_client_initiated_session_sync (MMModemOma *self,
+ MMOmaSessionType session_type,
+ GCancellable *cancellable,
+ GError **error);
+
+void mm_modem_oma_accept_network_initiated_session (MMModemOma *self,
+ guint session_id,
+ gboolean accept,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+gboolean mm_modem_oma_accept_network_initiated_session_finish (MMModemOma *self,
+ GAsyncResult *res,
+ GError **error);
+gboolean mm_modem_oma_accept_network_initiated_session_sync (MMModemOma *self,
+ guint session_id,
+ gboolean accept,
+ GCancellable *cancellable,
+ GError **error);
+
+void mm_modem_oma_cancel_session (MMModemOma *self,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+gboolean mm_modem_oma_cancel_session_finish (MMModemOma *self,
+ GAsyncResult *res,
+ GError **error);
+gboolean mm_modem_oma_cancel_session_sync (MMModemOma *self,
+ GCancellable *cancellable,
+ GError **error);
+
+MMOmaFeature mm_modem_oma_get_features (MMModemOma *self);
+MMOmaSessionType mm_modem_oma_get_session_type (MMModemOma *self);
+MMOmaSessionState mm_modem_oma_get_session_state (MMModemOma *self);
+
+gboolean mm_modem_peek_pending_network_initiated_sessions (MMModemOma *self,
+ const MMOmaPendingNetworkInitiatedSession **sessions,
+ guint *n_sessions);
+gboolean mm_modem_get_pending_network_initiated_sessions (MMModemOma *self,
+ MMOmaPendingNetworkInitiatedSession **sessions,
+ guint *n_sessions);
+
+G_END_DECLS
+
+#endif /* _MM_MODEM_OMA_H_ */
diff --git a/libmm-glib/mm-modem-signal.c b/libmm-glib/mm-modem-signal.c
new file mode 100644
index 0000000..620dd2a
--- /dev/null
+++ b/libmm-glib/mm-modem-signal.c
@@ -0,0 +1,602 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * libmm -- Access modem status & information from glib applications
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA.
+ *
+ * Copyright (C) 2012 Google, Inc.
+ * Copyright (C) 2012 Lanedo GmbH <aleksander@lanedo.com>
+ */
+
+#include <gio/gio.h>
+
+#include "mm-helpers.h"
+#include "mm-errors-types.h"
+#include "mm-modem-signal.h"
+
+/**
+ * SECTION: mm-modem-signal
+ * @title: MMModemSignal
+ * @short_description: The extended Signal interface
+ *
+ * The #MMModemSignal is an object providing access to the methods, signals and
+ * properties of the Signal interface.
+ *
+ * The Signal interface is exposed whenever a modem has extended signal retrieval
+ * capabilities.
+ */
+
+G_DEFINE_TYPE (MMModemSignal, mm_modem_signal, MM_GDBUS_TYPE_MODEM_SIGNAL_PROXY)
+
+typedef struct {
+ GMutex mutex;
+ guint id;
+ MMSignal *info;
+} UpdatedProperty;
+
+typedef enum {
+ UPDATED_PROPERTY_TYPE_CDMA = 0,
+ UPDATED_PROPERTY_TYPE_EVDO = 1,
+ UPDATED_PROPERTY_TYPE_GSM = 2,
+ UPDATED_PROPERTY_TYPE_UMTS = 3,
+ UPDATED_PROPERTY_TYPE_LTE = 4,
+ UPDATED_PROPERTY_TYPE_LAST
+} UpdatedPropertyType;
+
+struct _MMModemSignalPrivate {
+ UpdatedProperty values [UPDATED_PROPERTY_TYPE_LAST];
+};
+
+/*****************************************************************************/
+
+/**
+ * mm_modem_signal_get_path:
+ * @self: A #MMModemSignal.
+ *
+ * Gets the DBus path of the #MMObject which implements this interface.
+ *
+ * Returns: (transfer none): The DBus path of the #MMObject object.
+ */
+const gchar *
+mm_modem_signal_get_path (MMModemSignal *self)
+{
+ g_return_val_if_fail (MM_IS_MODEM_SIGNAL (self), NULL);
+
+ RETURN_NON_EMPTY_CONSTANT_STRING (
+ g_dbus_proxy_get_object_path (G_DBUS_PROXY (self)));
+}
+
+/**
+ * mm_modem_signal_dup_path:
+ * @self: A #MMModemSignal.
+ *
+ * Gets a copy of the DBus path of the #MMObject object which implements this interface.
+ *
+ * Returns: (transfer full): The DBus path of the #MMObject. The returned value should be freed with g_free().
+ */
+gchar *
+mm_modem_signal_dup_path (MMModemSignal *self)
+{
+ gchar *value;
+
+ g_return_val_if_fail (MM_IS_MODEM_SIGNAL (self), NULL);
+
+ g_object_get (G_OBJECT (self),
+ "g-object-path", &value,
+ NULL);
+ RETURN_NON_EMPTY_STRING (value);
+}
+
+/*****************************************************************************/
+
+/**
+ * mm_modem_signal_setup_finish:
+ * @self: A #MMModemSignal.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to mm_modem_signal_setup().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with mm_modem_signal_setup().
+ *
+ * Returns: %TRUE if the setup was successful, %FALSE if @error is set.
+ */
+gboolean
+mm_modem_signal_setup_finish (MMModemSignal *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ g_return_val_if_fail (MM_IS_MODEM_SIGNAL (self), FALSE);
+
+ return mm_gdbus_modem_signal_call_setup_finish (MM_GDBUS_MODEM_SIGNAL (self), res, error);
+}
+
+/**
+ * mm_modem_signal_setup:
+ * @self: A #MMModemSignal.
+ * @rate: Rate to use when refreshing signal values.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously setups the extended signal quality retrieval.
+ *
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call mm_modem_signal_setup_finish() to get the result of the operation.
+ *
+ * See mm_modem_signal_setup_sync() for the synchronous, blocking version of this method.
+ */
+void
+mm_modem_signal_setup (MMModemSignal *self,
+ guint rate,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_return_if_fail (MM_IS_MODEM_SIGNAL (self));
+
+ mm_gdbus_modem_signal_call_setup (MM_GDBUS_MODEM_SIGNAL (self), rate, cancellable, callback, user_data);
+}
+
+/**
+ * mm_modem_signal_setup_sync:
+ * @self: A #MMModemSignal.
+ * @rate: Rate to use when refreshing signal values.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously setups the extended signal quality retrieval.
+ *
+ * The calling thread is blocked until a reply is received. See mm_modem_signal_setup()
+ * for the asynchronous version of this method.
+ *
+ * Returns: %TRUE if the setup was successful, %FALSE if @error is set.
+ */
+gboolean
+mm_modem_signal_setup_sync (MMModemSignal *self,
+ guint rate,
+ GCancellable *cancellable,
+ GError **error)
+{
+ g_return_val_if_fail (MM_IS_MODEM_SIGNAL (self), FALSE);
+
+ return mm_gdbus_modem_signal_call_setup_sync (MM_GDBUS_MODEM_SIGNAL (self), rate, cancellable, error);
+}
+
+/*****************************************************************************/
+
+/**
+ * mm_modem_signal_get_rate:
+ * @self: A #MMModemSignal.
+ *
+ * Gets the currently configured refresh rate.
+ *
+ * Returns: the refresh rate, in seconds.
+ */
+guint
+mm_modem_signal_get_rate (MMModemSignal *self)
+{
+ g_return_val_if_fail (MM_IS_MODEM_SIGNAL (self), 0);
+
+ return mm_gdbus_modem_signal_get_rate (MM_GDBUS_MODEM_SIGNAL (self));
+}
+
+/*****************************************************************************/
+
+static void values_updated (MMModemSignal *self, GParamSpec *pspec, UpdatedPropertyType type);
+
+static void
+cdma_updated (MMModemSignal *self,
+ GParamSpec *pspec)
+{
+ values_updated (self, pspec, UPDATED_PROPERTY_TYPE_CDMA);
+}
+
+static void
+evdo_updated (MMModemSignal *self,
+ GParamSpec *pspec)
+{
+ values_updated (self, pspec, UPDATED_PROPERTY_TYPE_EVDO);
+}
+
+static void
+gsm_updated (MMModemSignal *self,
+ GParamSpec *pspec)
+{
+ values_updated (self, pspec, UPDATED_PROPERTY_TYPE_GSM);
+}
+
+static void
+umts_updated (MMModemSignal *self,
+ GParamSpec *pspec)
+{
+ values_updated (self, pspec, UPDATED_PROPERTY_TYPE_UMTS);
+}
+
+static void
+lte_updated (MMModemSignal *self,
+ GParamSpec *pspec)
+{
+ values_updated (self, pspec, UPDATED_PROPERTY_TYPE_LTE);
+}
+
+typedef GVariant * (* Getter) (MmGdbusModemSignal *self);
+typedef GVariant * (* Dupper) (MmGdbusModemSignal *self);
+typedef void (* UpdatedCallback) (MMModemSignal *self, GParamSpec *pspec);
+typedef struct {
+ const gchar *signal_name;
+ Getter get;
+ Dupper dup;
+ UpdatedCallback updated_callback;
+} SignalData;
+
+static const SignalData signal_data [UPDATED_PROPERTY_TYPE_LAST] = {
+ { "notify::cdma", mm_gdbus_modem_signal_get_cdma, mm_gdbus_modem_signal_dup_cdma, cdma_updated },
+ { "notify::evdo", mm_gdbus_modem_signal_get_evdo, mm_gdbus_modem_signal_dup_evdo, evdo_updated },
+ { "notify::gsm", mm_gdbus_modem_signal_get_gsm, mm_gdbus_modem_signal_dup_gsm, gsm_updated },
+ { "notify::umts", mm_gdbus_modem_signal_get_umts, mm_gdbus_modem_signal_dup_umts, umts_updated },
+ { "notify::lte", mm_gdbus_modem_signal_get_lte, mm_gdbus_modem_signal_dup_lte, lte_updated }
+};
+
+static void
+values_updated (MMModemSignal *self,
+ GParamSpec *pspec,
+ UpdatedPropertyType type)
+{
+ g_mutex_lock (&self->priv->values[type].mutex);
+ {
+ GVariant *dictionary;
+
+ g_clear_object (&self->priv->values[type].info);
+ dictionary = signal_data[type].get (MM_GDBUS_MODEM_SIGNAL (self));
+ if (dictionary) {
+ GError *error = NULL;
+
+ self->priv->values[type].info = mm_signal_new_from_dictionary (dictionary, &error);
+ if (error) {
+ g_warning ("Invalid signal info update received: %s", error->message);
+ g_error_free (error);
+ }
+ }
+ }
+ g_mutex_unlock (&self->priv->values[type].mutex);
+}
+
+static void
+ensure_internal (MMModemSignal *self,
+ MMSignal **dup,
+ UpdatedPropertyType type)
+{
+ g_mutex_lock (&self->priv->values[type].mutex);
+ {
+ /* If this is the first time ever asking for the object, setup the
+ * update listener and the initial object, if any. */
+ if (!self->priv->values[type].id) {
+ GVariant *dictionary;
+
+ dictionary = signal_data[type].dup (MM_GDBUS_MODEM_SIGNAL (self));
+ if (dictionary) {
+ GError *error = NULL;
+
+ self->priv->values[type].info = mm_signal_new_from_dictionary (dictionary, &error);
+ if (error) {
+ g_warning ("Invalid signal info: %s", error->message);
+ g_error_free (error);
+ }
+ g_variant_unref (dictionary);
+ }
+
+ /* No need to clear this signal connection when freeing self */
+ self->priv->values[type].id =
+ g_signal_connect (self,
+ signal_data[type].signal_name,
+ G_CALLBACK (signal_data[type].updated_callback),
+ NULL);
+ }
+
+ if (dup && self->priv->values[type].info)
+ *dup = g_object_ref (self->priv->values[type].info);
+ }
+ g_mutex_unlock (&self->priv->values[type].mutex);
+}
+
+/*****************************************************************************/
+
+/**
+ * mm_modem_signal_get_cdma:
+ * @self: A #MMModem.
+ *
+ * Gets a #MMSignal object specifying the CDMA signal information.
+ *
+ * <warning>The values reported by @self are not updated when the values in the
+ * interface change. Instead, the client is expected to call
+ * mm_modem_signal_get_cdma() again to get a new #MMSignal with the
+ * new values.</warning>
+ *
+ * Returns: (transfer full): A #MMSignal that must be freed with g_object_unref() or %NULL if unknown.
+ */
+MMSignal *
+mm_modem_signal_get_cdma (MMModemSignal *self)
+{
+ MMSignal *info = NULL;
+
+ g_return_val_if_fail (MM_IS_MODEM_SIGNAL (self), NULL);
+
+ ensure_internal (self, &info, UPDATED_PROPERTY_TYPE_CDMA);
+ return info;
+}
+
+/**
+ * mm_modem_signal_peek_cdma:
+ * @self: A #MMModem.
+ *
+ * Gets a #MMSignal object specifying the CDMA signal information.
+ *
+ * <warning>The returned value is only valid until the property changes so
+ * it is only safe to use this function on the thread where
+ * @self was constructed. Use mm_modem_signal_get_cdma() if on another
+ * thread.</warning>
+ *
+ * Returns: (transfer none): A #MMSignal. Do not free the returned value, it belongs to @self.
+ */
+MMSignal *
+mm_modem_signal_peek_cdma (MMModemSignal *self)
+{
+ g_return_val_if_fail (MM_IS_MODEM_SIGNAL (self), NULL);
+
+ ensure_internal (self, NULL, UPDATED_PROPERTY_TYPE_CDMA);
+ return self->priv->values[UPDATED_PROPERTY_TYPE_CDMA].info;
+}
+
+/*****************************************************************************/
+
+/**
+ * mm_modem_signal_get_evdo:
+ * @self: A #MMModem.
+ *
+ * Gets a #MMSignal object specifying the EV-DO signal information.
+ *
+ * <warning>The values reported by @self are not updated when the values in the
+ * interface change. Instead, the client is expected to call
+ * mm_modem_signal_get_evdo() again to get a new #MMSignal with the
+ * new values.</warning>
+ *
+ * Returns: (transfer full): A #MMSignal that must be freed with g_object_unref() or %NULL if unknown.
+ */
+MMSignal *
+mm_modem_signal_get_evdo (MMModemSignal *self)
+{
+ MMSignal *info = NULL;
+
+ g_return_val_if_fail (MM_IS_MODEM_SIGNAL (self), NULL);
+
+ ensure_internal (self, &info, UPDATED_PROPERTY_TYPE_EVDO);
+ return info;
+}
+
+/**
+ * mm_modem_signal_peek_evdo:
+ * @self: A #MMModem.
+ *
+ * Gets a #MMSignal object specifying the EV-DO signal information.
+ *
+ * <warning>The returned value is only valid until the property changes so
+ * it is only safe to use this function on the thread where
+ * @self was constructed. Use mm_modem_signal_get_evdo() if on another
+ * thread.</warning>
+ *
+ * Returns: (transfer none): A #MMSignal. Do not free the returned value, it belongs to @self.
+ */
+MMSignal *
+mm_modem_signal_peek_evdo (MMModemSignal *self)
+{
+ g_return_val_if_fail (MM_IS_MODEM_SIGNAL (self), NULL);
+
+ ensure_internal (self, NULL, UPDATED_PROPERTY_TYPE_EVDO);
+ return self->priv->values[UPDATED_PROPERTY_TYPE_EVDO].info;
+}
+
+/*****************************************************************************/
+
+/**
+ * mm_modem_signal_get_gsm:
+ * @self: A #MMModem.
+ *
+ * Gets a #MMSignal object specifying the GSM signal information.
+ *
+ * <warning>The values reported by @self are not updated when the values in the
+ * interface change. Instead, the client is expected to call
+ * mm_modem_signal_get_gsm() again to get a new #MMSignal with the
+ * new values.</warning>
+ *
+ * Returns: (transfer full): A #MMSignal that must be freed with g_object_unref() or %NULL if unknown.
+ */
+MMSignal *
+mm_modem_signal_get_gsm (MMModemSignal *self)
+{
+ MMSignal *info = NULL;
+
+ g_return_val_if_fail (MM_IS_MODEM_SIGNAL (self), NULL);
+
+ ensure_internal (self, &info, UPDATED_PROPERTY_TYPE_GSM);
+ return info;
+}
+
+/**
+ * mm_modem_signal_peek_gsm:
+ * @self: A #MMModem.
+ *
+ * Gets a #MMSignal object specifying the GSM signal information.
+ *
+ * <warning>The returned value is only valid until the property changes so
+ * it is only safe to use this function on the thread where
+ * @self was constructed. Use mm_modem_signal_get_gsm() if on another
+ * thread.</warning>
+ *
+ * Returns: (transfer none): A #MMSignal. Do not free the returned value, it belongs to @self.
+ */
+MMSignal *
+mm_modem_signal_peek_gsm (MMModemSignal *self)
+{
+ g_return_val_if_fail (MM_IS_MODEM_SIGNAL (self), NULL);
+
+ ensure_internal (self, NULL, UPDATED_PROPERTY_TYPE_GSM);
+ return self->priv->values[UPDATED_PROPERTY_TYPE_GSM].info;
+}
+
+/*****************************************************************************/
+
+/**
+ * mm_modem_signal_get_umts:
+ * @self: A #MMModem.
+ *
+ * Gets a #MMSignal object specifying the UMTS signal information.
+ *
+ * <warning>The values reported by @self are not updated when the values in the
+ * interface change. Instead, the client is expected to call
+ * mm_modem_signal_get_umts() again to get a new #MMSignal with the
+ * new values.</warning>
+ *
+ * Returns: (transfer full): A #MMSignal that must be freed with g_object_unref() or %NULL if unknown.
+ */
+MMSignal *
+mm_modem_signal_get_umts (MMModemSignal *self)
+{
+ MMSignal *info = NULL;
+
+ g_return_val_if_fail (MM_IS_MODEM_SIGNAL (self), NULL);
+
+ ensure_internal (self, &info, UPDATED_PROPERTY_TYPE_UMTS);
+ return info;
+}
+
+/**
+ * mm_modem_signal_peek_umts:
+ * @self: A #MMModem.
+ *
+ * Gets a #MMSignal object specifying the UMTS signal information.
+ *
+ * <warning>The returned value is only valid until the property changes so
+ * it is only safe to use this function on the thread where
+ * @self was constructed. Use mm_modem_signal_get_umts() if on another
+ * thread.</warning>
+ *
+ * Returns: (transfer none): A #MMSignal. Do not free the returned value, it belongs to @self.
+ */
+MMSignal *
+mm_modem_signal_peek_umts (MMModemSignal *self)
+{
+ g_return_val_if_fail (MM_IS_MODEM_SIGNAL (self), NULL);
+
+ ensure_internal (self, NULL, UPDATED_PROPERTY_TYPE_UMTS);
+ return self->priv->values[UPDATED_PROPERTY_TYPE_UMTS].info;
+}
+
+/*****************************************************************************/
+
+/**
+ * mm_modem_signal_get_lte:
+ * @self: A #MMModem.
+ *
+ * Gets a #MMSignal object specifying the LTE signal information.
+ *
+ * <warning>The values reported by @self are not updated when the values in the
+ * interface change. Instead, the client is expected to call
+ * mm_modem_signal_get_lte() again to get a new #MMSignal with the
+ * new values.</warning>
+ *
+ * Returns: (transfer full): A #MMSignal that must be freed with g_object_unref() or %NULL if unknown.
+ */
+MMSignal *
+mm_modem_signal_get_lte (MMModemSignal *self)
+{
+ MMSignal *info = NULL;
+
+ g_return_val_if_fail (MM_IS_MODEM_SIGNAL (self), NULL);
+
+ ensure_internal (self, &info, UPDATED_PROPERTY_TYPE_LTE);
+ return info;
+}
+
+/**
+ * mm_modem_signal_peek_lte:
+ * @self: A #MMModem.
+ *
+ * Gets a #MMSignal object specifying the LTE signal information.
+ *
+ * <warning>The returned value is only valid until the property changes so
+ * it is only safe to use this function on the thread where
+ * @self was constructed. Use mm_modem_signal_get_lte() if on another
+ * thread.</warning>
+ *
+ * Returns: (transfer none): A #MMSignal. Do not free the returned value, it belongs to @self.
+ */
+MMSignal *
+mm_modem_signal_peek_lte (MMModemSignal *self)
+{
+ g_return_val_if_fail (MM_IS_MODEM_SIGNAL (self), NULL);
+
+ ensure_internal (self, NULL, UPDATED_PROPERTY_TYPE_LTE);
+ return self->priv->values[UPDATED_PROPERTY_TYPE_LTE].info;
+}
+
+/*****************************************************************************/
+
+static void
+mm_modem_signal_init (MMModemSignal *self)
+{
+ guint i;
+
+ /* Setup private data */
+ self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, MM_TYPE_MODEM_SIGNAL, MMModemSignalPrivate);
+
+ for (i = 0; i < UPDATED_PROPERTY_TYPE_LAST; i++)
+ g_mutex_init (&self->priv->values[i].mutex);
+}
+
+static void
+finalize (GObject *object)
+{
+ MMModemSignal *self = MM_MODEM_SIGNAL (object);
+ guint i;
+
+ for (i = 0; i < UPDATED_PROPERTY_TYPE_LAST; i++)
+ g_mutex_clear (&self->priv->values[i].mutex);
+
+ G_OBJECT_CLASS (mm_modem_signal_parent_class)->finalize (object);
+}
+
+static void
+dispose (GObject *object)
+{
+ MMModemSignal *self = MM_MODEM_SIGNAL (object);
+ guint i;
+
+ for (i = 0; i < UPDATED_PROPERTY_TYPE_LAST; i++)
+ g_clear_object (&self->priv->values[i].info);
+
+ G_OBJECT_CLASS (mm_modem_signal_parent_class)->dispose (object);
+}
+
+static void
+mm_modem_signal_class_init (MMModemSignalClass *modem_class)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (modem_class);
+
+ g_type_class_add_private (object_class, sizeof (MMModemSignalPrivate));
+
+ /* Virtual methods */
+ object_class->dispose = dispose;
+ object_class->finalize = finalize;
+}
diff --git a/libmm-glib/mm-modem-signal.h b/libmm-glib/mm-modem-signal.h
new file mode 100644
index 0000000..ef2c8e1
--- /dev/null
+++ b/libmm-glib/mm-modem-signal.h
@@ -0,0 +1,101 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * libmm -- Access modem status & information from glib applications
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA.
+ *
+ * Copyright (C) 2013 Aleksander Morgado <aleksander@gnu.org>
+ */
+
+#ifndef _MM_MODEM_SIGNAL_H_
+#define _MM_MODEM_SIGNAL_H_
+
+#if !defined (__LIBMM_GLIB_H_INSIDE__) && !defined (LIBMM_GLIB_COMPILATION)
+#error "Only <libmm-glib.h> can be included directly."
+#endif
+
+#include <ModemManager.h>
+
+#include "mm-signal.h"
+#include "mm-gdbus-modem.h"
+
+G_BEGIN_DECLS
+
+#define MM_TYPE_MODEM_SIGNAL (mm_modem_signal_get_type ())
+#define MM_MODEM_SIGNAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MM_TYPE_MODEM_SIGNAL, MMModemSignal))
+#define MM_MODEM_SIGNAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MM_TYPE_MODEM_SIGNAL, MMModemSignalClass))
+#define MM_IS_MODEM_SIGNAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MM_TYPE_MODEM_SIGNAL))
+#define MM_IS_MODEM_SIGNAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), MM_TYPE_MODEM_SIGNAL))
+#define MM_MODEM_SIGNAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MM_TYPE_MODEM_SIGNAL, MMModemSignalClass))
+
+typedef struct _MMModemSignal MMModemSignal;
+typedef struct _MMModemSignalClass MMModemSignalClass;
+typedef struct _MMModemSignalPrivate MMModemSignalPrivate;
+
+/**
+ * MMModemSignal:
+ *
+ * The #MMModemSignal structure contains private data and should only be accessed
+ * using the provided API.
+ */
+struct _MMModemSignal {
+ /*< private >*/
+ MmGdbusModemSignalProxy parent;
+ MMModemSignalPrivate *priv;
+};
+
+struct _MMModemSignalClass {
+ /*< private >*/
+ MmGdbusModemSignalProxyClass parent;
+};
+
+GType mm_modem_signal_get_type (void);
+
+const gchar *mm_modem_signal_get_path (MMModemSignal *self);
+gchar *mm_modem_signal_dup_path (MMModemSignal *self);
+guint mm_modem_signal_get_rate (MMModemSignal *self);
+
+void mm_modem_signal_setup (MMModemSignal *self,
+ guint rate,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+gboolean mm_modem_signal_setup_finish (MMModemSignal *self,
+ GAsyncResult *res,
+ GError **error);
+gboolean mm_modem_signal_setup_sync (MMModemSignal *self,
+ guint rate,
+ GCancellable *cancellable,
+ GError **error);
+
+MMSignal *mm_modem_signal_get_cdma (MMModemSignal *self);
+MMSignal *mm_modem_signal_peek_cdma (MMModemSignal *self);
+
+MMSignal *mm_modem_signal_get_evdo (MMModemSignal *self);
+MMSignal *mm_modem_signal_peek_evdo (MMModemSignal *self);
+
+MMSignal *mm_modem_signal_get_gsm (MMModemSignal *self);
+MMSignal *mm_modem_signal_peek_gsm (MMModemSignal *self);
+
+MMSignal *mm_modem_signal_get_umts (MMModemSignal *self);
+MMSignal *mm_modem_signal_peek_umts (MMModemSignal *self);
+
+MMSignal *mm_modem_signal_get_lte (MMModemSignal *self);
+MMSignal *mm_modem_signal_peek_lte (MMModemSignal *self);
+
+G_END_DECLS
+
+#endif /* _MM_MODEM_SIGNAL_H_ */
diff --git a/libmm-glib/mm-modem-time.c b/libmm-glib/mm-modem-time.c
index c2d16d4..0cab521 100644
--- a/libmm-glib/mm-modem-time.c
+++ b/libmm-glib/mm-modem-time.c
@@ -97,7 +97,7 @@ mm_modem_time_dup_path (MMModemTime *self)
*
* Finishes an operation started with mm_modem_time_get_network_time().
*
- * Returns: A string containing the network time, or %NULL if @error is set. The returned value should be freed with g_free().
+ * Returns: (transfer full): A string containing the network time, or %NULL if @error is set. The returned value should be freed with g_free().
*/
gchar *
mm_modem_time_get_network_time_finish (MMModemTime *self,
@@ -153,7 +153,7 @@ mm_modem_time_get_network_time (MMModemTime *self,
* The calling thread is blocked until a reply is received. See mm_modem_time_get_network_time()
* for the asynchronous version of this method.
*
- * Returns: A string containing the network time, or %NULL if @error is set. The returned value should be freed with g_free().
+ * Returns: (transfer full): A string containing the network time, or %NULL if @error is set. The returned value should be freed with g_free().
*/
gchar *
mm_modem_time_get_network_time_sync (MMModemTime *self,
@@ -221,17 +221,17 @@ ensure_internal_timezone (MMModemTime *self,
}
/**
- * mm_modem_get_network_timezone:
- * @self: A #MMModem.
+ * mm_modem_time_get_network_timezone:
+ * @self: A #MMModemTime.
*
* Gets the network timezone information.
*
* <warning>The values reported by @self are not updated when the values in the
* interface change. Instead, the client is expected to call
- * mm_modem_get_network_timezone() again to get a new #MMNetworkTimezone with the
+ * mm_modem_time_get_network_timezone() again to get a new #MMNetworkTimezone with the
* new values.</warning>
*
- * Returns: (transfer full) A #MMNetworkTimezone that must be freed with g_object_unref() or %NULL if unknown.
+ * Returns: (transfer full): A #MMNetworkTimezone that must be freed with g_object_unref() or %NULL if unknown.
*/
MMNetworkTimezone *
mm_modem_time_get_network_timezone (MMModemTime *self)
@@ -245,17 +245,17 @@ mm_modem_time_get_network_timezone (MMModemTime *self)
}
/**
- * mm_modem_peek_network_timezone:
- * @self: A #MMModem.
+ * mm_modem_time_peek_network_timezone:
+ * @self: A #MMModemTime.
*
* Gets the network timezone information.
*
* <warning>The returned value is only valid until the property changes so
* it is only safe to use this function on the thread where
- * @self was constructed. Use mm_modem_get_network_timezone() if on another
+ * @self was constructed. Use mm_modem_time_get_network_timezone() if on another
* thread.</warning>
*
- * Returns: (transfer none) A #MMNetworkTimezone. Do not free the returned value, it belongs to @self.
+ * Returns: (transfer none): A #MMNetworkTimezone. Do not free the returned value, it belongs to @self.
*/
MMNetworkTimezone *
mm_modem_time_peek_network_timezone (MMModemTime *self)
diff --git a/libmm-glib/mm-modem.c b/libmm-glib/mm-modem.c
index 410b559..213f679 100644
--- a/libmm-glib/mm-modem.c
+++ b/libmm-glib/mm-modem.c
@@ -341,6 +341,45 @@ mm_modem_get_max_active_bearers (MMModem *self)
/*****************************************************************************/
/**
+ * mm_modem_get_bearer_paths:
+ * @self: A #MMModem.
+ *
+ * Gets the DBus paths of the #MMBearer handled in this #MMModem.
+ *
+ * <warning>The returned value is only valid until the property changes so
+ * it is only safe to use this function on the thread where
+ * @self was constructed. Use mm_modem_dup_bearer_paths() if on another
+ * thread.</warning>
+ *
+ * Returns: (transfer none): The DBus paths of the #MMBearer handled in this #MMModem, or %NULL if none available. Do not free the returned value, it belongs to @self.
+ */
+const gchar * const *
+mm_modem_get_bearer_paths (MMModem *self)
+{
+ g_return_val_if_fail (MM_IS_MODEM (self), NULL);
+
+ return mm_gdbus_modem_get_bearers (MM_GDBUS_MODEM (self));
+}
+
+/**
+ * mm_modem_dup_bearer_paths:
+ * @self: A #MMModem.
+ *
+ * Gets a copy of the DBus paths of the #MMBearer handled in this #MMModem.
+ *
+ * Returns: (transfer full): The DBus paths of the #MMBearer handled in this #MMModem, or %NULL if none available. The returned value should be freed with g_strfreev().
+ */
+gchar **
+mm_modem_dup_bearer_paths (MMModem *self)
+{
+ g_return_val_if_fail (MM_IS_MODEM (self), NULL);
+
+ return mm_gdbus_modem_dup_bearers (MM_GDBUS_MODEM (self));
+}
+
+/*****************************************************************************/
+
+/**
* mm_modem_get_manufacturer:
* @self: A #MMModem.
*
@@ -758,7 +797,7 @@ ensure_internal_ports (MMModem *self,
/**
* mm_modem_peek_current_ports:
* @self: A #MMModem.
- * @ports: (out) (array length=n_ports): Return location for the array of #MMModemPortInfo values. Do not free the returned value, it is owned by @self.
+ * @ports: (out) (array length=n_ports) (transfer none): Return location for the array of #MMModemPortInfo values. Do not free the returned value, it is owned by @self.
* @n_ports: (out): Return location for the number of values in @ports.
*
* Gets the list of ports in the modem.
@@ -986,7 +1025,7 @@ ensure_internal_unlock_retries (MMModem *self,
* mm_modem_get_unlock_retries() again to get a new #MMUnlockRetries with the
* new values.</warning>
*
- * Returns: (transfer full) A #MMUnlockRetries that must be freed with g_object_unref() or %NULL if unknown.
+ * Returns: (transfer full): A #MMUnlockRetries that must be freed with g_object_unref() or %NULL if unknown.
*/
MMUnlockRetries *
mm_modem_get_unlock_retries (MMModem *self)
@@ -1013,7 +1052,7 @@ mm_modem_get_unlock_retries (MMModem *self)
* @self was constructed. Use mm_modem_get_unlock_retries() if on another
* thread.</warning>
*
- * Returns: (transfer none) A #MMUnlockRetries. Do not free the returned value, it belongs to @self.
+ * Returns: (transfer none): A #MMUnlockRetries. Do not free the returned value, it belongs to @self.
*/
MMUnlockRetries *
mm_modem_peek_unlock_retries (MMModem *self)
@@ -1510,7 +1549,7 @@ mm_modem_get_current_bands (MMModem *self,
/**
* mm_modem_peek_current_bands:
* @self: A #MMModem.
- * @bands: (out) (array length=n_storages): Return location for the array of #MMModemBand values. Do not free the returned value, it is owned by @self.
+ * @bands: (out) (array length=n_bands): Return location for the array of #MMModemBand values. Do not free the returned value, it is owned by @self.
* @n_bands: (out): Return location for the number of values in @bands.
*
* Gets the list of radio frequency and technology bands the #MMModem is currently
@@ -1721,7 +1760,7 @@ bearer_object_list_free (GList *list)
static void
list_bearers_context_complete_and_free (ListBearersContext *ctx)
{
- g_simple_async_result_complete (ctx->result);
+ g_simple_async_result_complete_in_idle (ctx->result);
g_strfreev (ctx->bearer_paths);
bearer_object_list_free (ctx->bearer_objects);
@@ -1740,7 +1779,7 @@ list_bearers_context_complete_and_free (ListBearersContext *ctx)
*
* Finishes an operation started with mm_modem_list_bearers().
*
- * Returns: (transfer full): The list of #MMBearer objects, or %NULL if either none found or if @error is set.
+ * Returns: (transfer full) (element-type ModemManager.Modem): The list of #MMBearer objects, or %NULL if either none found or if @error is set.
*/
GList *
mm_modem_list_bearers_finish (MMModem *self,
@@ -1816,32 +1855,6 @@ create_next_bearer (ListBearersContext *ctx)
NULL);
}
-static void
-modem_list_bearers_ready (MMModem *self,
- GAsyncResult *res,
- ListBearersContext *ctx)
-{
- GError *error = NULL;
-
- mm_gdbus_modem_call_list_bearers_finish (MM_GDBUS_MODEM (self), &ctx->bearer_paths, res, &error);
- if (error) {
- g_simple_async_result_take_error (ctx->result, error);
- list_bearers_context_complete_and_free (ctx);
- return;
- }
-
- /* If no bearers, just end here. */
- if (!ctx->bearer_paths || !ctx->bearer_paths[0]) {
- g_simple_async_result_set_op_res_gpointer (ctx->result, NULL, NULL);
- list_bearers_context_complete_and_free (ctx);
- return;
- }
-
- /* Got list of paths. If at least one found, start creating objects for each */
- ctx->i = 0;
- create_next_bearer (ctx);
-}
-
/**
* mm_modem_list_bearers:
* @self: A #MMModem.
@@ -1875,10 +1888,19 @@ mm_modem_list_bearers (MMModem *self,
if (cancellable)
ctx->cancellable = g_object_ref (cancellable);
- mm_gdbus_modem_call_list_bearers (MM_GDBUS_MODEM (self),
- cancellable,
- (GAsyncReadyCallback)modem_list_bearers_ready,
- ctx);
+ /* Read from the property, skip List() */
+ ctx->bearer_paths = mm_gdbus_modem_dup_bearers (MM_GDBUS_MODEM (self));
+
+ /* If no bearers, just end here. */
+ if (!ctx->bearer_paths || !ctx->bearer_paths[0]) {
+ g_simple_async_result_set_op_res_gpointer (ctx->result, NULL, NULL);
+ list_bearers_context_complete_and_free (ctx);
+ return;
+ }
+
+ /* Got list of paths. If at least one found, start creating objects for each */
+ ctx->i = 0;
+ create_next_bearer (ctx);
}
/**
@@ -1892,7 +1914,7 @@ mm_modem_list_bearers (MMModem *self,
* The calling thread is blocked until a reply is received. See mm_modem_list_bearers()
* for the asynchronous version of this method.
*
- * Returns: (transfer full): The list of #MMBearer objects, or %NULL if either none found or if @error is set.
+ * Returns: (transfer full) (element-type ModemManager.Modem): The list of #MMBearer objects, or %NULL if either none found or if @error is set.
*/
GList *
mm_modem_list_bearers_sync (MMModem *self,
@@ -1905,11 +1927,8 @@ mm_modem_list_bearers_sync (MMModem *self,
g_return_val_if_fail (MM_IS_MODEM (self), NULL);
- if (!mm_gdbus_modem_call_list_bearers_sync (MM_GDBUS_MODEM (self),
- &bearer_paths,
- cancellable,
- error))
- return NULL;
+ /* Read from the property, skip List() */
+ bearer_paths = mm_gdbus_modem_dup_bearers (MM_GDBUS_MODEM (self));
/* Only non-empty lists are returned */
if (!bearer_paths)
@@ -2375,7 +2394,7 @@ mm_modem_factory_reset_sync (MMModem *self,
*
* Finishes an operation started with mm_modem_command().
*
- * Returns: (transfer full) A newly allocated string with the reply to the command, or #NULL if @error is set. The returned value should be freed with g_free().
+ * Returns: (transfer full): A newly allocated string with the reply to the command, or #NULL if @error is set. The returned value should be freed with g_free().
*/
gchar *
mm_modem_command_finish (MMModem *self,
@@ -2437,7 +2456,7 @@ mm_modem_command (MMModem *self,
* The calling thread is blocked until a reply is received. See mm_modem_command()
* for the asynchronous version of this method.
*
- * Returns: (transfer full) A newly allocated string with the reply to the command, or #NULL if @error is set. The returned value should be freed with g_free().
+ * Returns: (transfer full): A newly allocated string with the reply to the command, or #NULL if @error is set. The returned value should be freed with g_free().
*/
gchar *
mm_modem_command_sync (MMModem *self,
@@ -2802,7 +2821,7 @@ mm_modem_set_current_bands_sync (MMModem *self,
*
* Finishes an operation started with mm_modem_get_sim().
*
- * Returns: a #MMSim or #NULL if none available. The returned value should be freed with g_object_unref().
+ * Returns: (transfer full): a #MMSim or #NULL if none available. The returned value should be freed with g_object_unref().
*/
MMSim *
mm_modem_get_sim_finish (MMModem *self,
@@ -2906,7 +2925,7 @@ mm_modem_get_sim (MMModem *self,
* The calling thread is blocked until a reply is received. See mm_modem_get_sim()
* for the asynchronous version of this method.
*
- * Returns: a #MMSim or #NULL if none available. The returned value should be freed with g_object_unref().
+ * Returns: (transfer full): a #MMSim or #NULL if none available. The returned value should be freed with g_object_unref().
*/
MMSim *
mm_modem_get_sim_sync (MMModem *self,
diff --git a/libmm-glib/mm-modem.h b/libmm-glib/mm-modem.h
index 8fb1faf..0490628 100644
--- a/libmm-glib/mm-modem.h
+++ b/libmm-glib/mm-modem.h
@@ -87,6 +87,9 @@ guint mm_modem_get_max_bearers (MMModem *self);
guint mm_modem_get_max_active_bearers (MMModem *self);
+const gchar * const *mm_modem_get_bearer_paths (MMModem *self);
+gchar **mm_modem_dup_bearer_paths (MMModem *self);
+
const gchar *mm_modem_get_manufacturer (MMModem *self);
gchar *mm_modem_dup_manufacturer (MMModem *self);
diff --git a/libmm-glib/mm-object.c b/libmm-glib/mm-object.c
index 8d549bc..fa8fae2 100644
--- a/libmm-glib/mm-object.c
+++ b/libmm-glib/mm-object.c
@@ -412,6 +412,78 @@ mm_object_peek_modem_firmware (MMObject *self)
/*****************************************************************************/
+/**
+ * mm_object_get_modem_signal:
+ * @self: A #MMObject.
+ *
+ * Gets the #MMModemSignal instance for the D-Bus interface org.freedesktop.ModemManager1.Modem.Signal on @self, if any.
+ *
+ * Returns: (transfer full): A #MMModemSignal that must be freed with g_object_unref() or %NULL if @self does not implement the interface.
+ */
+MMModemSignal *
+mm_object_get_modem_signal (MMObject *self)
+{
+ g_return_val_if_fail (MM_IS_OBJECT (MM_GDBUS_OBJECT (self)), NULL);
+
+ return (MMModemSignal *)mm_gdbus_object_get_modem_signal (MM_GDBUS_OBJECT (self));
+}
+
+/**
+ * mm_object_peek_modem_signal: (skip)
+ * @self: A #MMObject.
+ *
+ * Like mm_object_get_modem_signal() but doesn't increase the reference count on the returned object.
+ *
+ * <warning>It is not safe to use the returned object if you are on another thread than the one where the #MMManager is running.</warning>
+ *
+ * Returns: (transfer none): A #MMModemSignal or %NULL if @self does not implement the interface. Do not free the returned object, it is owned by @self.
+ */
+MMModemSignal *
+mm_object_peek_modem_signal (MMObject *self)
+{
+ g_return_val_if_fail (MM_IS_OBJECT (MM_GDBUS_OBJECT (self)), NULL);
+
+ return (MMModemSignal *)mm_gdbus_object_peek_modem_signal (MM_GDBUS_OBJECT (self));
+}
+
+/*****************************************************************************/
+
+/**
+ * mm_object_get_modem_oma:
+ * @self: A #MMObject.
+ *
+ * Gets the #MMModemOma instance for the D-Bus interface org.freedesktop.ModemManager1.Modem.Oma on @self, if any.
+ *
+ * Returns: (transfer full): A #MMModemOma that must be freed with g_object_unref() or %NULL if @self does not implement the interface.
+ */
+MMModemOma *
+mm_object_get_modem_oma (MMObject *self)
+{
+ g_return_val_if_fail (MM_IS_OBJECT (MM_GDBUS_OBJECT (self)), NULL);
+
+ return (MMModemOma *)mm_gdbus_object_get_modem_oma (MM_GDBUS_OBJECT (self));
+}
+
+/**
+ * mm_object_peek_modem_oma: (skip)
+ * @self: A #MMObject.
+ *
+ * Like mm_object_get_modem_oma() but doesn't increase the reference count on the returned object.
+ *
+ * <warning>It is not safe to use the returned object if you are on another thread than the one where the #MMManager is running.</warning>
+ *
+ * Returns: (transfer none): A #MMModemOma or %NULL if @self does not implement the interface. Do not free the returned object, it is owned by @self.
+ */
+MMModemOma *
+mm_object_peek_modem_oma (MMObject *self)
+{
+ g_return_val_if_fail (MM_IS_OBJECT (MM_GDBUS_OBJECT (self)), NULL);
+
+ return (MMModemOma *)mm_gdbus_object_peek_modem_oma (MM_GDBUS_OBJECT (self));
+}
+
+/*****************************************************************************/
+
static void
mm_object_init (MMObject *self)
{
diff --git a/libmm-glib/mm-object.h b/libmm-glib/mm-object.h
index e2a758f..bef90b9 100644
--- a/libmm-glib/mm-object.h
+++ b/libmm-glib/mm-object.h
@@ -40,6 +40,8 @@
#include "mm-modem-messaging.h"
#include "mm-modem-time.h"
#include "mm-modem-firmware.h"
+#include "mm-modem-signal.h"
+#include "mm-modem-oma.h"
G_BEGIN_DECLS
@@ -84,6 +86,8 @@ MMModemLocation *mm_object_get_modem_location (MMObject *self);
MMModemMessaging *mm_object_get_modem_messaging (MMObject *self);
MMModemTime *mm_object_get_modem_time (MMObject *self);
MMModemFirmware *mm_object_get_modem_firmware (MMObject *self);
+MMModemSignal *mm_object_get_modem_signal (MMObject *self);
+MMModemOma *mm_object_get_modem_oma (MMObject *self);
MMModem *mm_object_peek_modem (MMObject *self);
MMModem3gpp *mm_object_peek_modem_3gpp (MMObject *self);
@@ -94,6 +98,8 @@ MMModemLocation *mm_object_peek_modem_location (MMObject *self);
MMModemMessaging *mm_object_peek_modem_messaging (MMObject *self);
MMModemTime *mm_object_peek_modem_time (MMObject *self);
MMModemFirmware *mm_object_peek_modem_firmware (MMObject *self);
+MMModemSignal *mm_object_peek_modem_signal (MMObject *self);
+MMModemOma *mm_object_peek_modem_oma (MMObject *self);
G_END_DECLS
diff --git a/libmm-glib/mm-signal.c b/libmm-glib/mm-signal.c
new file mode 100644
index 0000000..57baf5d
--- /dev/null
+++ b/libmm-glib/mm-signal.c
@@ -0,0 +1,441 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details:
+ *
+ * Copyright (C) 2013 Aleksander Morgado <aleksander@gnu.org>
+ */
+
+#include <string.h>
+#include <ctype.h>
+#include <stdlib.h>
+
+#include "mm-signal.h"
+#include "mm-errors-types.h"
+
+/**
+ * SECTION: mm-signal
+ * @title: MMSignal
+ * @short_description: Helper object to handle extended Signal information.
+ *
+ * The #MMSignal is an object handling the signal information of the
+ * modem.
+ */
+
+G_DEFINE_TYPE (MMSignal, mm_signal, G_TYPE_OBJECT)
+
+#define PROPERTY_RSSI "rssi"
+#define PROPERTY_ECIO "ecio"
+#define PROPERTY_SINR "sinr"
+#define PROPERTY_IO "io"
+#define PROPERTY_RSRQ "rsrq"
+#define PROPERTY_RSRP "rsrp"
+#define PROPERTY_SNR "snr"
+
+struct _MMSignalPrivate {
+ gdouble rssi;
+ gdouble ecio;
+ gdouble sinr;
+ gdouble io;
+ gdouble rsrq;
+ gdouble rsrp;
+ gdouble snr;
+};
+
+/*****************************************************************************/
+
+/**
+ * mm_signal_get_rssi:
+ * @self: a #MMSignal.
+ *
+ * Gets the RSSI (Received Signal Strength Indication), in dBm.
+ *
+ * Returns: the RSSI, or %MM_SIGNAL_UNKNOWN if unknown.
+ */
+gdouble
+mm_signal_get_rssi (MMSignal *self)
+{
+ g_return_val_if_fail (MM_IS_SIGNAL (self), MM_SIGNAL_UNKNOWN);
+
+ return self->priv->rssi;
+}
+
+void
+mm_signal_set_rssi (MMSignal *self,
+ gdouble value)
+{
+ g_return_if_fail (MM_IS_SIGNAL (self));
+
+ self->priv->rssi = value;
+}
+
+/*****************************************************************************/
+
+/**
+ * mm_signal_get_ecio:
+ * @self: a #MMSignal.
+ *
+ * Gets the Ec/Io, in dBm.
+ *
+ * Only applicable to CDMA1x, CDMA EV-DO and UMTS (WCDMA).
+ *
+ * Returns: the ECIO, or %MM_SIGNAL_UNKNOWN if unknown.
+ */
+gdouble
+mm_signal_get_ecio (MMSignal *self)
+{
+ g_return_val_if_fail (MM_IS_SIGNAL (self), MM_SIGNAL_UNKNOWN);
+
+ return self->priv->ecio;
+}
+
+void
+mm_signal_set_ecio (MMSignal *self,
+ gdouble value)
+{
+ g_return_if_fail (MM_IS_SIGNAL (self));
+
+ self->priv->ecio = value;
+}
+
+/*****************************************************************************/
+
+/**
+ * mm_signal_get_sinr:
+ * @self: a #MMSignal.
+ *
+ * Gets the SINR level, in dB.
+ *
+ * Only applicable to CDMA EV-DO.
+ *
+ * Returns: the SINR, or %MM_SIGNAL_UNKNOWN if unknown.
+ */
+gdouble
+mm_signal_get_sinr (MMSignal *self)
+{
+ g_return_val_if_fail (MM_IS_SIGNAL (self), MM_SIGNAL_UNKNOWN);
+
+ return self->priv->sinr;
+}
+
+void
+mm_signal_set_sinr (MMSignal *self,
+ gdouble value)
+{
+ g_return_if_fail (MM_IS_SIGNAL (self));
+
+ self->priv->sinr = value;
+}
+
+/*****************************************************************************/
+
+/**
+ * mm_signal_get_io:
+ * @self: a #MMSignal.
+ *
+ * Gets the Io, in dBm.
+ *
+ * Only applicable to CDMA EV-DO.
+ *
+ * Returns: the Io, or %MM_SIGNAL_UNKNOWN if unknown.
+ */
+gdouble
+mm_signal_get_io (MMSignal *self)
+{
+ g_return_val_if_fail (MM_IS_SIGNAL (self), MM_SIGNAL_UNKNOWN);
+
+ return self->priv->io;
+}
+
+void
+mm_signal_set_io (MMSignal *self,
+ gdouble value)
+{
+ g_return_if_fail (MM_IS_SIGNAL (self));
+
+ self->priv->io = value;
+}
+
+/*****************************************************************************/
+
+/**
+ * mm_signal_get_rsrp:
+ * @self: a #MMSignal.
+ *
+ * Gets the RSRP (Reference Signal Received Power), in dBm.
+ *
+ * Only applicable to LTE.
+ *
+ * Returns: the RSRP, or %MM_SIGNAL_UNKNOWN if unknown.
+ */
+gdouble
+mm_signal_get_rsrp (MMSignal *self)
+{
+ g_return_val_if_fail (MM_IS_SIGNAL (self), MM_SIGNAL_UNKNOWN);
+
+ return self->priv->rsrp;
+}
+
+void
+mm_signal_set_rsrp (MMSignal *self,
+ gdouble value)
+{
+ g_return_if_fail (MM_IS_SIGNAL (self));
+
+ self->priv->rsrp = value;
+}
+
+/*****************************************************************************/
+
+/**
+ * mm_signal_get_rsrq:
+ * @self: a #MMSignal.
+ *
+ * Gets the RSRQ (Reference Signal Received Quality), in dB.
+ *
+ * Only applicable to LTE.
+ *
+ * Returns: the RSRQ, or %MM_SIGNAL_UNKNOWN if unknown.
+ */
+gdouble
+mm_signal_get_rsrq (MMSignal *self)
+{
+ g_return_val_if_fail (MM_IS_SIGNAL (self), MM_SIGNAL_UNKNOWN);
+
+ return self->priv->rsrq;
+}
+
+void
+mm_signal_set_rsrq (MMSignal *self,
+ gdouble value)
+{
+ g_return_if_fail (MM_IS_SIGNAL (self));
+
+ self->priv->rsrq = value;
+}
+
+/*****************************************************************************/
+
+/**
+ * mm_signal_get_snr:
+ * @self: a #MMSignal.
+ *
+ * Gets the S/R ration, in dB.
+ *
+ * Only applicable to LTE.
+ *
+ * Returns: the S/R ratio, or %MM_SIGNAL_UNKNOWN if unknown.
+ */
+gdouble
+mm_signal_get_snr (MMSignal *self)
+{
+ g_return_val_if_fail (MM_IS_SIGNAL (self), MM_SIGNAL_UNKNOWN);
+
+ return self->priv->snr;
+}
+
+void
+mm_signal_set_snr (MMSignal *self,
+ gdouble value)
+{
+ g_return_if_fail (MM_IS_SIGNAL (self));
+
+ self->priv->snr = value;
+}
+
+/*****************************************************************************/
+
+/**
+ * mm_signal_get_dictionary:
+ * @self: A #MMSignal.
+ *
+ * Gets a variant dictionary with the contents of @self.
+ *
+ * Returns: (transfer full): A dictionary with the signal values. The returned value should be freed with g_variant_unref().
+ */
+GVariant *
+mm_signal_get_dictionary (MMSignal *self)
+{
+ GVariantBuilder builder;
+
+ /* We do allow NULL */
+ if (!self)
+ return NULL;
+
+ g_return_val_if_fail (MM_IS_SIGNAL (self), NULL);
+
+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
+
+ if (self->priv->rssi != MM_SIGNAL_UNKNOWN)
+ g_variant_builder_add (&builder,
+ "{sv}",
+ PROPERTY_RSSI,
+ g_variant_new_double (self->priv->rssi));
+
+ if (self->priv->ecio != MM_SIGNAL_UNKNOWN)
+ g_variant_builder_add (&builder,
+ "{sv}",
+ PROPERTY_ECIO,
+ g_variant_new_double (self->priv->ecio));
+
+ if (self->priv->sinr != MM_SIGNAL_UNKNOWN)
+ g_variant_builder_add (&builder,
+ "{sv}",
+ PROPERTY_SINR,
+ g_variant_new_double (self->priv->sinr));
+
+ if (self->priv->io != MM_SIGNAL_UNKNOWN)
+ g_variant_builder_add (&builder,
+ "{sv}",
+ PROPERTY_IO,
+ g_variant_new_double (self->priv->io));
+
+ if (self->priv->rsrp != MM_SIGNAL_UNKNOWN)
+ g_variant_builder_add (&builder,
+ "{sv}",
+ PROPERTY_RSRP,
+ g_variant_new_double (self->priv->rsrp));
+
+ if (self->priv->rsrq != MM_SIGNAL_UNKNOWN)
+ g_variant_builder_add (&builder,
+ "{sv}",
+ PROPERTY_RSRQ,
+ g_variant_new_double (self->priv->rsrq));
+
+ if (self->priv->snr != MM_SIGNAL_UNKNOWN)
+ g_variant_builder_add (&builder,
+ "{sv}",
+ PROPERTY_SNR,
+ g_variant_new_double (self->priv->snr));
+
+ return g_variant_ref_sink (g_variant_builder_end (&builder));
+}
+
+/*****************************************************************************/
+
+static gboolean
+consume_variant (MMSignal *self,
+ const gchar *key,
+ GVariant *value,
+ GError **error)
+{
+ if (g_str_equal (key, PROPERTY_RSSI))
+ self->priv->rssi = g_variant_get_double (value);
+ else if (g_str_equal (key, PROPERTY_ECIO))
+ self->priv->ecio = g_variant_get_double (value);
+ else if (g_str_equal (key, PROPERTY_SINR))
+ self->priv->sinr = g_variant_get_double (value);
+ else if (g_str_equal (key, PROPERTY_IO))
+ self->priv->io = g_variant_get_double (value);
+ else if (g_str_equal (key, PROPERTY_RSRP))
+ self->priv->rsrp = g_variant_get_double (value);
+ else if (g_str_equal (key, PROPERTY_RSRQ))
+ self->priv->rsrq = g_variant_get_double (value);
+ else if (g_str_equal (key, PROPERTY_SNR))
+ self->priv->snr = g_variant_get_double (value);
+ else {
+ /* Set error */
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_INVALID_ARGS,
+ "Invalid signal dictionary, unexpected key '%s'",
+ key);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ * mm_signal_new_from_dictionary:
+ * @dictionary: A variant dictionary with the signal information.
+ * @error: Return location for error or %NULL.
+ *
+ * Creates a new #MMSignal object with the values exposed in
+ * the dictionary.
+ *
+ * Returns: (transfer full): A #MMSignal or %NULL if @error is set. The returned value should be freed with g_object_unref().
+ */
+MMSignal *
+mm_signal_new_from_dictionary (GVariant *dictionary,
+ GError **error)
+{
+ GError *inner_error = NULL;
+ GVariantIter iter;
+ gchar *key;
+ GVariant *value;
+ MMSignal *self = NULL;
+
+ if (!dictionary) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_INVALID_ARGS,
+ "Cannot create Signal info from empty dictionary");
+ return NULL;
+ }
+
+ if (!g_variant_is_of_type (dictionary, G_VARIANT_TYPE ("a{sv}"))) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_INVALID_ARGS,
+ "Cannot create Signal info from dictionary: "
+ "invalid variant type received");
+ return NULL;
+ }
+
+ g_variant_iter_init (&iter, dictionary);
+ while (!inner_error && g_variant_iter_next (&iter, "{sv}", &key, &value)) {
+ if (!self)
+ self = mm_signal_new ();
+ consume_variant (self,
+ key,
+ value,
+ &inner_error);
+ g_free (key);
+ g_variant_unref (value);
+ }
+
+ /* If error, destroy the object */
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ g_clear_object (&self);
+ }
+
+ return self;
+}
+
+/*****************************************************************************/
+
+MMSignal *
+mm_signal_new (void)
+{
+ return MM_SIGNAL (g_object_new (MM_TYPE_SIGNAL, NULL));
+}
+
+static void
+mm_signal_init (MMSignal *self)
+{
+ self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, MM_TYPE_SIGNAL, MMSignalPrivate);
+ self->priv->rssi = MM_SIGNAL_UNKNOWN;
+ self->priv->ecio = MM_SIGNAL_UNKNOWN;
+ self->priv->sinr = MM_SIGNAL_UNKNOWN;
+ self->priv->io = MM_SIGNAL_UNKNOWN;
+ self->priv->rsrq = MM_SIGNAL_UNKNOWN;
+ self->priv->rsrp = MM_SIGNAL_UNKNOWN;
+ self->priv->snr = MM_SIGNAL_UNKNOWN;
+}
+
+static void
+mm_signal_class_init (MMSignalClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ g_type_class_add_private (object_class, sizeof (MMSignalPrivate));
+}
diff --git a/libmm-glib/mm-signal.h b/libmm-glib/mm-signal.h
new file mode 100644
index 0000000..47391f0
--- /dev/null
+++ b/libmm-glib/mm-signal.h
@@ -0,0 +1,98 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details:
+ *
+ * Copyright (C) 2013 Aleksander Morgado <aleksander@gnu.org>
+ */
+
+#ifndef MM_SIGNAL_H
+#define MM_SIGNAL_H
+
+#if !defined (__LIBMM_GLIB_H_INSIDE__) && !defined (LIBMM_GLIB_COMPILATION)
+#error "Only <libmm-glib.h> can be included directly."
+#endif
+
+#include <ModemManager.h>
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+/**
+ * MM_SIGNAL_UNKNOWN:
+ *
+ * Identifier for an unknown signal value.
+ */
+#define MM_SIGNAL_UNKNOWN G_MINDOUBLE
+
+#define MM_TYPE_SIGNAL (mm_signal_get_type ())
+#define MM_SIGNAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MM_TYPE_SIGNAL, MMSignal))
+#define MM_SIGNAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MM_TYPE_SIGNAL, MMSignalClass))
+#define MM_IS_SIGNAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MM_TYPE_SIGNAL))
+#define MM_IS_SIGNAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MM_TYPE_SIGNAL))
+#define MM_SIGNAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MM_TYPE_SIGNAL, MMSignalClass))
+
+typedef struct _MMSignal MMSignal;
+typedef struct _MMSignalClass MMSignalClass;
+typedef struct _MMSignalPrivate MMSignalPrivate;
+
+/**
+ * MMSignal:
+ *
+ * The #MMSignal structure contains private data and should
+ * only be accessed using the provided API.
+ */
+struct _MMSignal {
+ /*< private >*/
+ GObject parent;
+ MMSignalPrivate *priv;
+};
+
+struct _MMSignalClass {
+ /*< private >*/
+ GObjectClass parent;
+};
+
+GType mm_signal_get_type (void);
+
+gdouble mm_signal_get_rssi (MMSignal *self);
+gdouble mm_signal_get_ecio (MMSignal *self);
+gdouble mm_signal_get_sinr (MMSignal *self);
+gdouble mm_signal_get_io (MMSignal *self);
+gdouble mm_signal_get_rsrq (MMSignal *self);
+gdouble mm_signal_get_rsrp (MMSignal *self);
+gdouble mm_signal_get_snr (MMSignal *self);
+
+/*****************************************************************************/
+/* ModemManager/libmm-glib/mmcli specific methods */
+
+#if defined (_LIBMM_INSIDE_MM) || \
+ defined (_LIBMM_INSIDE_MMCLI) || \
+ defined (LIBMM_GLIB_COMPILATION)
+
+GVariant *mm_signal_get_dictionary (MMSignal *self);
+
+MMSignal *mm_signal_new (void);
+MMSignal *mm_signal_new_from_dictionary (GVariant *dictionary,
+ GError **error);
+
+void mm_signal_set_rssi (MMSignal *self, gdouble value);
+void mm_signal_set_ecio (MMSignal *self, gdouble value);
+void mm_signal_set_sinr (MMSignal *self, gdouble value);
+void mm_signal_set_io (MMSignal *self, gdouble value);
+void mm_signal_set_rsrq (MMSignal *self, gdouble value);
+void mm_signal_set_rsrp (MMSignal *self, gdouble value);
+void mm_signal_set_snr (MMSignal *self, gdouble value);
+
+#endif
+
+G_END_DECLS
+
+#endif /* MM_SIGNAL_H */
diff --git a/libmm-glib/mm-simple-connect-properties.c b/libmm-glib/mm-simple-connect-properties.c
index f57cc4f..200b7c3 100644
--- a/libmm-glib/mm-simple-connect-properties.c
+++ b/libmm-glib/mm-simple-connect-properties.c
@@ -363,6 +363,14 @@ mm_simple_connect_properties_get_number (MMSimpleConnectProperties *self)
/*****************************************************************************/
+/**
+ * mm_simple_connect_properties_get_bearer_properties:
+ * @self: a #MMSimpleConnectProperties:
+ *
+ * Returns the bearer properties of @self.
+ *
+ * Returns: (transfer full): a #MMBearerProperties
+ */
MMBearerProperties *
mm_simple_connect_properties_get_bearer_properties (MMSimpleConnectProperties *self)
{
diff --git a/libmm-glib/mm-simple-connect-properties.h b/libmm-glib/mm-simple-connect-properties.h
index e9c09ae..3167db0 100644
--- a/libmm-glib/mm-simple-connect-properties.h
+++ b/libmm-glib/mm-simple-connect-properties.h
@@ -100,7 +100,7 @@ MMSimpleConnectProperties *mm_simple_connect_properties_new_from_string (const g
MMSimpleConnectProperties *mm_simple_connect_properties_new_from_dictionary (GVariant *dictionary,
GError **error);
-MMBearerProperties *mm_simple_connect_properties_get_bearer_properties (MMSimpleConnectProperties *properties);
+MMBearerProperties *mm_simple_connect_properties_get_bearer_properties (MMSimpleConnectProperties *self);
GVariant *mm_simple_connect_properties_get_dictionary (MMSimpleConnectProperties *self);
#endif
diff --git a/libmm-glib/mm-simple-status.c b/libmm-glib/mm-simple-status.c
index 10dfee3..9be9573 100644
--- a/libmm-glib/mm-simple-status.c
+++ b/libmm-glib/mm-simple-status.c
@@ -44,6 +44,7 @@ enum {
PROP_3GPP_REGISTRATION_STATE,
PROP_3GPP_OPERATOR_CODE,
PROP_3GPP_OPERATOR_NAME,
+ PROP_3GPP_SUBSCRIPTION_STATE,
PROP_CDMA_CDMA1X_REGISTRATION_STATE,
PROP_CDMA_EVDO_REGISTRATION_STATE,
PROP_CDMA_SID,
@@ -72,6 +73,8 @@ struct _MMSimpleStatusPrivate {
gchar *modem_3gpp_operator_code;
/* 3GPP operator name, given only when registered, signature 's' */
gchar *modem_3gpp_operator_name;
+ /* 3GPP subsctiption state, signature 'u' */
+ MMModem3gppSubscriptionState modem_3gpp_subscription_state;
/* <--- From the Modem CDMA interface ---> */
/* CDMA/CDMA1x registration state, signature 'u' */
@@ -233,6 +236,25 @@ mm_simple_status_get_3gpp_operator_name (MMSimpleStatus *self)
/*****************************************************************************/
/**
+ * mm_simple_status_get_3gpp_subscription_state:
+ * @self: a #MMSimpleStatus.
+ *
+ * Gets the current subscription status of the account.
+ *
+ * Returns: a #MMModem3gppSubscriptionState.
+ */
+MMModem3gppSubscriptionState
+mm_simple_status_get_3gpp_subscription_state (MMSimpleStatus *self)
+{
+ g_return_val_if_fail (MM_IS_SIMPLE_STATUS (self), MM_MODEM_3GPP_SUBSCRIPTION_STATE_UNKNOWN);
+
+ return self->priv->modem_3gpp_subscription_state;
+}
+
+
+/*****************************************************************************/
+
+/**
* mm_simple_status_get_cdma_cdma1x_registration_state:
* @self: a #MMSimpleStatus.
*
@@ -375,6 +397,12 @@ mm_simple_status_get_dictionary (MMSimpleStatus *self)
}
+ if (self->priv->modem_3gpp_subscription_state)
+ g_variant_builder_add (&builder,
+ "{sv}",
+ MM_SIMPLE_PROPERTY_3GPP_SUBSCRIPTION_STATE,
+ g_variant_new_uint32 (self->priv->modem_3gpp_subscription_state));
+
return g_variant_ref_sink (g_variant_builder_end (&builder));
}
@@ -414,6 +442,7 @@ mm_simple_status_new_from_dictionary (GVariant *dictionary,
if (g_str_equal (key, MM_SIMPLE_PROPERTY_STATE) ||
g_str_equal (key, MM_SIMPLE_PROPERTY_ACCESS_TECHNOLOGIES) ||
g_str_equal (key, MM_SIMPLE_PROPERTY_3GPP_REGISTRATION_STATE) ||
+ g_str_equal (key, MM_SIMPLE_PROPERTY_3GPP_SUBSCRIPTION_STATE) ||
g_str_equal (key, MM_SIMPLE_PROPERTY_CDMA_CDMA1X_REGISTRATION_STATE) ||
g_str_equal (key, MM_SIMPLE_PROPERTY_CDMA_EVDO_REGISTRATION_STATE) ||
g_str_equal (key, MM_SIMPLE_PROPERTY_CDMA_SID) ||
@@ -505,6 +534,9 @@ set_property (GObject *object,
g_free (self->priv->modem_3gpp_operator_name);
self->priv->modem_3gpp_operator_name = g_value_dup_string (value);
break;
+ case PROP_3GPP_SUBSCRIPTION_STATE:
+ self->priv->modem_3gpp_subscription_state = g_value_get_enum (value);
+ break;
case PROP_CDMA_CDMA1X_REGISTRATION_STATE:
self->priv->modem_cdma_cdma1x_registration_state = g_value_get_enum (value);
break;
@@ -553,6 +585,9 @@ get_property (GObject *object,
case PROP_3GPP_OPERATOR_NAME:
g_value_set_string (value, self->priv->modem_3gpp_operator_name);
break;
+ case PROP_3GPP_SUBSCRIPTION_STATE:
+ g_value_set_enum (value, self->priv->modem_3gpp_subscription_state);
+ break;
case PROP_CDMA_CDMA1X_REGISTRATION_STATE:
g_value_set_enum (value, self->priv->modem_cdma_cdma1x_registration_state);
break;
@@ -582,6 +617,7 @@ mm_simple_status_init (MMSimpleStatus *self)
self->priv->state = MM_MODEM_STATE_UNKNOWN;
self->priv->access_technologies = MM_MODEM_ACCESS_TECHNOLOGY_UNKNOWN;
self->priv->modem_3gpp_registration_state = MM_MODEM_3GPP_REGISTRATION_STATE_UNKNOWN;
+ self->priv->modem_3gpp_subscription_state = MM_MODEM_3GPP_SUBSCRIPTION_STATE_UNKNOWN;
self->priv->current_bands = g_variant_ref_sink (mm_common_build_bands_unknown ());
self->priv->signal_quality = g_variant_ref_sink (g_variant_new ("(ub)", 0, 0));
self->priv->modem_cdma_cdma1x_registration_state = MM_MODEM_CDMA_REGISTRATION_STATE_UNKNOWN;
@@ -678,6 +714,15 @@ mm_simple_status_class_init (MMSimpleStatusClass *klass)
G_PARAM_READWRITE);
g_object_class_install_property (object_class, PROP_3GPP_OPERATOR_NAME, properties[PROP_3GPP_OPERATOR_NAME]);
+ properties[PROP_3GPP_SUBSCRIPTION_STATE] =
+ g_param_spec_enum (MM_SIMPLE_PROPERTY_3GPP_SUBSCRIPTION_STATE,
+ "3GPP subscription state",
+ "Subscription state of the account",
+ MM_TYPE_MODEM_3GPP_SUBSCRIPTION_STATE,
+ MM_MODEM_3GPP_SUBSCRIPTION_STATE_UNKNOWN,
+ G_PARAM_READWRITE);
+ g_object_class_install_property (object_class, PROP_3GPP_SUBSCRIPTION_STATE, properties[PROP_3GPP_SUBSCRIPTION_STATE]);
+
properties[PROP_CDMA_CDMA1X_REGISTRATION_STATE] =
g_param_spec_enum (MM_SIMPLE_PROPERTY_CDMA_CDMA1X_REGISTRATION_STATE,
"CDMA1x registration state",
diff --git a/libmm-glib/mm-simple-status.h b/libmm-glib/mm-simple-status.h
index 8292fdb..cbf93bc 100644
--- a/libmm-glib/mm-simple-status.h
+++ b/libmm-glib/mm-simple-status.h
@@ -67,6 +67,7 @@ MMModemAccessTechnology mm_simple_status_get_access_technologies (MMSimple
MMModem3gppRegistrationState mm_simple_status_get_3gpp_registration_state (MMSimpleStatus *self);
const gchar *mm_simple_status_get_3gpp_operator_code (MMSimpleStatus *self);
const gchar *mm_simple_status_get_3gpp_operator_name (MMSimpleStatus *self);
+MMModem3gppSubscriptionState mm_simple_status_get_3gpp_subscription_state (MMSimpleStatus *self);
MMModemCdmaRegistrationState mm_simple_status_get_cdma_cdma1x_registration_state (MMSimpleStatus *self);
MMModemCdmaRegistrationState mm_simple_status_get_cdma_evdo_registration_state (MMSimpleStatus *self);
@@ -88,6 +89,7 @@ guint mm_simple_status_get_cdma_nid
#define MM_SIMPLE_PROPERTY_3GPP_REGISTRATION_STATE "m3gpp-registration-state"
#define MM_SIMPLE_PROPERTY_3GPP_OPERATOR_CODE "m3gpp-operator-code"
#define MM_SIMPLE_PROPERTY_3GPP_OPERATOR_NAME "m3gpp-operator-name"
+#define MM_SIMPLE_PROPERTY_3GPP_SUBSCRIPTION_STATE "m3gpp-subscription-state"
#define MM_SIMPLE_PROPERTY_CDMA_CDMA1X_REGISTRATION_STATE "cdma-cdma1x-registration-state"
#define MM_SIMPLE_PROPERTY_CDMA_EVDO_REGISTRATION_STATE "cdma-evdo-registration-state"
diff --git a/libmm-glib/mm-sms-properties.c b/libmm-glib/mm-sms-properties.c
index bac363a..93e8b9b 100644
--- a/libmm-glib/mm-sms-properties.c
+++ b/libmm-glib/mm-sms-properties.c
@@ -34,7 +34,7 @@
* mm_modem_messaging_create() or mm_modem_messaging_create_sync().
*/
-G_DEFINE_TYPE (MMSmsProperties, mm_sms_properties, G_TYPE_OBJECT);
+G_DEFINE_TYPE (MMSmsProperties, mm_sms_properties, G_TYPE_OBJECT)
#define PROPERTY_TEXT "text"
#define PROPERTY_DATA "data"
@@ -43,6 +43,8 @@ G_DEFINE_TYPE (MMSmsProperties, mm_sms_properties, G_TYPE_OBJECT);
#define PROPERTY_VALIDITY "validity"
#define PROPERTY_CLASS "class"
#define PROPERTY_DELIVERY_REPORT_REQUEST "delivery-report-request"
+#define PROPERTY_TELESERVICE_ID "teleservice-id"
+#define PROPERTY_SERVICE_CATEGORY "service-category"
struct _MMSmsPropertiesPrivate {
gchar *text;
@@ -54,6 +56,8 @@ struct _MMSmsPropertiesPrivate {
gint class;
gboolean delivery_report_request_set;
gboolean delivery_report_request;
+ MMSmsCdmaTeleserviceId teleservice_id;
+ MMSmsCdmaServiceCategory service_category;
};
/*****************************************************************************/
@@ -385,6 +389,74 @@ mm_sms_properties_get_delivery_report_request (MMSmsProperties *self)
/*****************************************************************************/
+/**
+ * mm_sms_properties_set_teleservice_id:
+ * @self: A #MMSmsProperties.
+ * @teleservice_id: The CDMA teleservice ID.
+ *
+ * Sets the CDMA teleservice ID of the SMS.
+ */
+void
+mm_sms_properties_set_teleservice_id (MMSmsProperties *self,
+ MMSmsCdmaTeleserviceId teleservice_id)
+{
+ g_return_if_fail (MM_IS_SMS_PROPERTIES (self));
+
+ self->priv->teleservice_id = teleservice_id;
+}
+
+/**
+ * mm_sms_properties_get_teleservice_id:
+ * @self: A #MMSmsProperties.
+ *
+ * Gets the CDMA teleservice ID of the SMS.
+ *
+ * Returns: the CDMA teleservice ID.
+ */
+MMSmsCdmaTeleserviceId
+mm_sms_properties_get_teleservice_id (MMSmsProperties *self)
+{
+ g_return_val_if_fail (MM_IS_SMS_PROPERTIES (self), MM_SMS_CDMA_TELESERVICE_ID_UNKNOWN);
+
+ return self->priv->teleservice_id;
+}
+
+/*****************************************************************************/
+
+/**
+ * mm_sms_properties_set_service_category:
+ * @self: A #MMSmsProperties.
+ * @service_category: The CDMA service category.
+ *
+ * Sets the CDMA service category of the SMS.
+ */
+void
+mm_sms_properties_set_service_category (MMSmsProperties *self,
+ MMSmsCdmaServiceCategory service_category)
+{
+ g_return_if_fail (MM_IS_SMS_PROPERTIES (self));
+
+ self->priv->service_category = service_category;
+}
+
+/**
+ * mm_sms_properties_get_service_category:
+ * @self: A #MMSmsProperties.
+ *
+ * Gets the CDMA message service category of the SMS.
+ *
+ * Returns: the CDMA service category.
+ */
+MMSmsCdmaServiceCategory
+mm_sms_properties_get_service_category (MMSmsProperties *self)
+{
+ g_return_val_if_fail (MM_IS_SMS_PROPERTIES (self), MM_SMS_CDMA_SERVICE_CATEGORY_UNKNOWN);
+
+ return self->priv->service_category;
+}
+
+/*****************************************************************************/
+
GVariant *
mm_sms_properties_get_dictionary (MMSmsProperties *self)
{
@@ -446,6 +518,18 @@ mm_sms_properties_get_dictionary (MMSmsProperties *self)
PROPERTY_DELIVERY_REPORT_REQUEST,
g_variant_new_boolean (self->priv->delivery_report_request));
+ if (self->priv->teleservice_id != MM_SMS_CDMA_TELESERVICE_ID_UNKNOWN)
+ g_variant_builder_add (&builder,
+ "{sv}",
+ PROPERTY_TELESERVICE_ID,
+ g_variant_new_uint32 (self->priv->teleservice_id));
+
+ if (self->priv->service_category != MM_SMS_CDMA_SERVICE_CATEGORY_UNKNOWN)
+ g_variant_builder_add (&builder,
+ "{sv}",
+ PROPERTY_SERVICE_CATEGORY,
+ g_variant_new_uint32 (self->priv->service_category));
+
return g_variant_ref_sink (g_variant_builder_end (&builder));
}
@@ -539,7 +623,29 @@ consume_string (MMSmsProperties *self,
}
mm_sms_properties_set_delivery_report_request (self, request);
- } else if (g_str_equal (key, PROPERTY_DATA)) {
+ } else if (g_str_equal (key, PROPERTY_TELESERVICE_ID)) {
+ MMSmsCdmaTeleserviceId teleservice_id;
+ GError *inner_error = NULL;
+
+ teleservice_id = mm_common_get_sms_cdma_teleservice_id_from_string (value, &inner_error);
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ return FALSE;
+ }
+
+ mm_sms_properties_set_teleservice_id (self, teleservice_id);
+ } else if (g_str_equal (key, PROPERTY_SERVICE_CATEGORY)) {
+ MMSmsCdmaServiceCategory service_category;
+ GError *inner_error = NULL;
+
+ service_category = mm_common_get_sms_cdma_service_category_from_string (value, &inner_error);
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ return FALSE;
+ }
+
+ mm_sms_properties_set_service_category (self, service_category);
+ } else if (g_str_equal (key, PROPERTY_DATA)) {
g_set_error (error,
MM_CORE_ERROR,
MM_CORE_ERROR_INVALID_ARGS,
@@ -648,6 +754,14 @@ consume_variant (MMSmsProperties *properties,
mm_sms_properties_set_delivery_report_request (
properties,
g_variant_get_boolean (value));
+ else if (g_str_equal (key, PROPERTY_TELESERVICE_ID))
+ mm_sms_properties_set_teleservice_id (
+ properties,
+ g_variant_get_uint32 (value));
+ else if (g_str_equal (key, PROPERTY_SERVICE_CATEGORY))
+ mm_sms_properties_set_service_category (
+ properties,
+ g_variant_get_uint32 (value));
else {
/* Set error */
g_set_error (error,
@@ -708,6 +822,14 @@ mm_sms_properties_new_from_dictionary (GVariant *dictionary,
/*****************************************************************************/
+/**
+ * mm_sms_properties_dup:
+ * @orig: a #MMSmsProperties
+ *
+ * Returns a copy of @orig.
+ *
+ * Returns: (transfer full): a #MMSmsProperties
+ */
MMSmsProperties *
mm_sms_properties_dup (MMSmsProperties *orig)
{
@@ -748,6 +870,8 @@ mm_sms_properties_init (MMSmsProperties *self)
MMSmsPropertiesPrivate);
self->priv->validity_type = MM_SMS_VALIDITY_TYPE_UNKNOWN;
self->priv->class = -1;
+ self->priv->teleservice_id = MM_SMS_CDMA_TELESERVICE_ID_UNKNOWN;
+ self->priv->service_category = MM_SMS_CDMA_SERVICE_CATEGORY_UNKNOWN;
}
static void
diff --git a/libmm-glib/mm-sms-properties.h b/libmm-glib/mm-sms-properties.h
index b0c290a..fb9dbf9 100644
--- a/libmm-glib/mm-sms-properties.h
+++ b/libmm-glib/mm-sms-properties.h
@@ -74,6 +74,10 @@ void mm_sms_properties_set_class (MMSmsProperties *self,
gint class);
void mm_sms_properties_set_delivery_report_request (MMSmsProperties *self,
gboolean request);
+void mm_sms_properties_set_teleservice_id (MMSmsProperties *self,
+ MMSmsCdmaTeleserviceId teleservice_id);
+void mm_sms_properties_set_service_category (MMSmsProperties *self,
+ MMSmsCdmaServiceCategory service_category);
const gchar *mm_sms_properties_get_text (MMSmsProperties *self);
const guint8 *mm_sms_properties_get_data (MMSmsProperties *self,
@@ -86,6 +90,8 @@ MMSmsValidityType mm_sms_properties_get_validity_type (MMSmsProperties *se
guint mm_sms_properties_get_validity_relative (MMSmsProperties *self);
gint mm_sms_properties_get_class (MMSmsProperties *self);
gboolean mm_sms_properties_get_delivery_report_request (MMSmsProperties *self);
+MMSmsCdmaTeleserviceId mm_sms_properties_get_teleservice_id (MMSmsProperties *self);
+MMSmsCdmaServiceCategory mm_sms_properties_get_service_category (MMSmsProperties *self);
/*****************************************************************************/
/* ModemManager/libmm-glib/mmcli specific methods */
diff --git a/libmm-glib/mm-sms.c b/libmm-glib/mm-sms.c
index 8229021..a49deb8 100644
--- a/libmm-glib/mm-sms.c
+++ b/libmm-glib/mm-sms.c
@@ -154,7 +154,7 @@ mm_sms_get_data (MMSms *self,
/**
* mm_sms_dup_data:
* @self: A #MMSms.
- * @data_len: (out) Size of the output data, if any given.
+ * @data_len: (out): Size of the output data, if any given.
*
* Gets the message data.
*
@@ -571,6 +571,42 @@ mm_sms_get_pdu_type (MMSms *self)
/*****************************************************************************/
/**
+ * mm_sms_get_teleservice_id:
+ * @self: A #MMSms.
+ *
+ * Gets the 3GPP2 Teleservice ID.
+ *
+ * Returns: a #MMSmsCdmaTeleserviceId.
+ */
+MMSmsCdmaTeleserviceId
+mm_sms_get_teleservice_id (MMSms *self)
+{
+ g_return_val_if_fail (MM_IS_SMS (self), MM_SMS_CDMA_TELESERVICE_ID_UNKNOWN);
+
+ return (MMSmsCdmaTeleserviceId) mm_gdbus_sms_get_teleservice_id (MM_GDBUS_SMS (self));
+}
+
+/*****************************************************************************/
+
+/**
+ * mm_sms_get_service_category:
+ * @self: A #MMSms.
+ *
+ * Gets the 3GPP2 Service Category.
+ *
+ * Returns: a #MMSmsCdmaServiceCategory.
+ */
+MMSmsCdmaServiceCategory
+mm_sms_get_service_category (MMSms *self)
+{
+ g_return_val_if_fail (MM_IS_SMS (self), MM_SMS_CDMA_SERVICE_CATEGORY_UNKNOWN);
+
+ return (MMSmsCdmaServiceCategory) mm_gdbus_sms_get_service_category (MM_GDBUS_SMS (self));
+}
+
+/*****************************************************************************/
+
+/**
* mm_sms_send_finish:
* @self: A #MMSms.
* @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to mm_sms_send().
diff --git a/libmm-glib/mm-sms.h b/libmm-glib/mm-sms.h
index def70c1..4e4e935 100644
--- a/libmm-glib/mm-sms.h
+++ b/libmm-glib/mm-sms.h
@@ -103,6 +103,10 @@ MMSmsStorage mm_sms_get_storage (MMSms *self);
MMSmsPduType mm_sms_get_pdu_type (MMSms *self);
+MMSmsCdmaTeleserviceId mm_sms_get_teleservice_id (MMSms *self);
+
+MMSmsCdmaServiceCategory mm_sms_get_service_category (MMSms *self);
+
void mm_sms_send (MMSms *self,
GCancellable *cancellable,
GAsyncReadyCallback callback,
diff --git a/libmm-glib/mm-unlock-retries.c b/libmm-glib/mm-unlock-retries.c
index 4ce6c32..935c7ce 100644
--- a/libmm-glib/mm-unlock-retries.c
+++ b/libmm-glib/mm-unlock-retries.c
@@ -112,8 +112,8 @@ mm_unlock_retries_cmp (MMUnlockRetries *a,
/**
* mm_unlock_retries_foreach:
* @self: a @MMUnlockRetries.
- * @callback: callback to call for each available lock.
- * @user_data: data to pass to @callback.
+ * @callback: (scope call): callback to call for each available lock.
+ * @user_data: (closure): data to pass to @callback.
*
* Executes @callback for each lock information found in @self.
*/
diff --git a/libmm-glib/tests/Makefile.in b/libmm-glib/tests/Makefile.in
index 2d63a84..c6ade4c 100644
--- a/libmm-glib/tests/Makefile.in
+++ b/libmm-glib/tests/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -86,12 +86,13 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \
$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
- $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
- $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/introspection.m4 \
+ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
@@ -229,6 +230,14 @@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
@@ -295,6 +304,9 @@ STRIP = @STRIP@
SYSTEMD_UNIT_DIR = @SYSTEMD_UNIT_DIR@
UDEV_BASE_DIR = @UDEV_BASE_DIR@
USE_NLS = @USE_NLS@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
diff --git a/libqcdm/Makefile.in b/libqcdm/Makefile.in
index 5a5e248..4034356 100644
--- a/libqcdm/Makefile.in
+++ b/libqcdm/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -84,12 +84,13 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \
$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
- $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
- $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/introspection.m4 \
+ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
@@ -236,6 +237,14 @@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
@@ -302,6 +311,9 @@ STRIP = @STRIP@
SYSTEMD_UNIT_DIR = @SYSTEMD_UNIT_DIR@
UDEV_BASE_DIR = @UDEV_BASE_DIR@
USE_NLS = @USE_NLS@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
diff --git a/libqcdm/src/Makefile.in b/libqcdm/src/Makefile.in
index dcca09d..7870d0c 100644
--- a/libqcdm/src/Makefile.in
+++ b/libqcdm/src/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -85,12 +85,13 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \
$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
- $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
- $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/introspection.m4 \
+ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
@@ -230,6 +231,14 @@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
@@ -296,6 +305,9 @@ STRIP = @STRIP@
SYSTEMD_UNIT_DIR = @SYSTEMD_UNIT_DIR@
UDEV_BASE_DIR = @UDEV_BASE_DIR@
USE_NLS = @USE_NLS@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
diff --git a/libqcdm/src/commands.c b/libqcdm/src/commands.c
index 541cad7..ff7d232 100644
--- a/libqcdm/src/commands.c
+++ b/libqcdm/src/commands.c
@@ -1087,6 +1087,94 @@ qcdm_cmd_nv_set_hybrid_pref_result (const char *buf, size_t len, int *out_error)
/**********************************************************************/
+size_t
+qcdm_cmd_nv_get_ipv6_enabled_new (char *buf, size_t len)
+{
+ char cmdbuf[sizeof (DMCmdNVReadWrite) + 2];
+ DMCmdNVReadWrite *cmd = (DMCmdNVReadWrite *) &cmdbuf[0];
+
+ qcdm_return_val_if_fail (buf != NULL, 0);
+ qcdm_return_val_if_fail (len >= sizeof (*cmd) + DIAG_TRAILER_LEN, 0);
+
+ memset (cmd, 0, sizeof (*cmd));
+ cmd->code = DIAG_CMD_NV_READ;
+ cmd->nv_item = htole16 (DIAG_NV_IPV6_ENABLED);
+
+ return dm_encapsulate_buffer (cmdbuf, sizeof (*cmd), sizeof (cmdbuf), buf, len);
+}
+
+QcdmResult *
+qcdm_cmd_nv_get_ipv6_enabled_result (const char *buf, size_t len, int *out_error)
+{
+ QcdmResult *result = NULL;
+ DMCmdNVReadWrite *rsp = (DMCmdNVReadWrite *) buf;
+ DMNVItemIPv6Enabled *ipv6;
+
+ qcdm_return_val_if_fail (buf != NULL, NULL);
+
+ if (!check_command (buf, len, DIAG_CMD_NV_READ, sizeof (DMCmdNVReadWrite), out_error))
+ return NULL;
+
+ if (!check_nv_cmd (rsp, DIAG_NV_IPV6_ENABLED, out_error))
+ return NULL;
+
+ ipv6 = (DMNVItemIPv6Enabled *) &rsp->data[0];
+
+ if (ipv6->enabled > 1)
+ qcdm_warn (0, "Unknown ipv6 preference 0x%X", ipv6->enabled);
+
+ result = qcdm_result_new ();
+ qcdm_result_add_u8 (result, QCDM_CMD_NV_GET_IPV6_ENABLED_ITEM_ENABLED, ipv6->enabled);
+
+ return result;
+}
+
+size_t
+qcdm_cmd_nv_set_ipv6_enabled_new (char *buf,
+ size_t len,
+ u_int8_t enabled)
+{
+ char cmdbuf[sizeof (DMCmdNVReadWrite) + 2];
+ DMCmdNVReadWrite *cmd = (DMCmdNVReadWrite *) &cmdbuf[0];
+ DMNVItemIPv6Enabled *req;
+
+ qcdm_return_val_if_fail (buf != NULL, 0);
+ qcdm_return_val_if_fail (len >= sizeof (*cmd) + DIAG_TRAILER_LEN, 0);
+
+ if (enabled > QCDM_CMD_NV_IPV6_ENABLED_ON) {
+ qcdm_err (0, "Invalid ipv6 preference %d", enabled);
+ return 0;
+ }
+
+ memset (cmd, 0, sizeof (*cmd));
+ cmd->code = DIAG_CMD_NV_WRITE;
+ cmd->nv_item = htole16 (DIAG_NV_IPV6_ENABLED);
+
+ req = (DMNVItemIPv6Enabled *) &cmd->data[0];
+ if (enabled == QCDM_CMD_NV_IPV6_ENABLED_OFF)
+ req->enabled = DIAG_NV_IPV6_ENABLED_OFF;
+ else if (enabled == QCDM_CMD_NV_IPV6_ENABLED_ON)
+ req->enabled = DIAG_NV_IPV6_ENABLED_ON;
+
+ return dm_encapsulate_buffer (cmdbuf, sizeof (*cmd), sizeof (cmdbuf), buf, len);
+}
+
+QcdmResult *
+qcdm_cmd_nv_set_ipv6_enabled_result (const char *buf, size_t len, int *out_error)
+{
+ qcdm_return_val_if_fail (buf != NULL, NULL);
+
+ if (!check_command (buf, len, DIAG_CMD_NV_WRITE, sizeof (DMCmdNVReadWrite), out_error))
+ return NULL;
+
+ if (!check_nv_cmd ((DMCmdNVReadWrite *) buf, DIAG_NV_IPV6_ENABLED, out_error))
+ return NULL;
+
+ return qcdm_result_new ();
+}
+
+/**********************************************************************/
+
static qcdmbool
hdr_rev_pref_validate (u_int8_t dm)
{
diff --git a/libqcdm/src/commands.h b/libqcdm/src/commands.h
index 437261b..6f05f1c 100644
--- a/libqcdm/src/commands.h
+++ b/libqcdm/src/commands.h
@@ -351,6 +351,29 @@ QcdmResult *qcdm_cmd_nv_set_hybrid_pref_result (const char *buf,
/**********************************************************************/
+enum {
+ QCDM_CMD_NV_IPV6_ENABLED_OFF = 0x00,
+ QCDM_CMD_NV_IPV6_ENABLED_ON = 0x01,
+};
+
+#define QCDM_CMD_NV_GET_IPV6_ENABLED_ITEM_ENABLED "ipv6-enabled"
+
+size_t qcdm_cmd_nv_get_ipv6_enabled_new (char *buf, size_t len);
+
+QcdmResult *qcdm_cmd_nv_get_ipv6_enabled_result (const char *buf,
+ size_t len,
+ int *out_error);
+
+size_t qcdm_cmd_nv_set_ipv6_enabled_new (char *buf,
+ size_t len,
+ u_int8_t enabled);
+
+QcdmResult *qcdm_cmd_nv_set_ipv6_enabled_result (const char *buf,
+ size_t len,
+ int *out_error);
+
+/**********************************************************************/
+
/* Values for QCDM_CMD_NV_GET_HDR_REV_PREF_ITEM_REV_PREF */
enum {
QCDM_CMD_NV_HDR_REV_PREF_ITEM_REV_PREF_0 = 0x00,
diff --git a/libqcdm/src/nv-items.h b/libqcdm/src/nv-items.h
index 1a5db67..dae7f9d 100644
--- a/libqcdm/src/nv-items.h
+++ b/libqcdm/src/nv-items.h
@@ -37,6 +37,7 @@ enum {
DIAG_NV_DIR_NUMBER = 178, /* Mobile Directory Number (MDN) */
DIAG_NV_ROAM_PREF = 442, /* Roaming preference */
DIAG_NV_HYBRID_PREF = 562, /* Hybrid 1x + HDR preference */
+ DIAG_NV_IPV6_ENABLED = 1896, /* Enable IPv6 */
DIAG_NV_HDR_REV_PREF = 4964, /* HDR mode preference(?): rev0, revA, eHRPD */
};
@@ -114,5 +115,17 @@ struct DMNVItemHybridPref {
} __attribute__ ((packed));
typedef struct DMNVItemHybridPref DMNVItemHybridPref;
+/* IPv6 enable */
+enum {
+ DIAG_NV_IPV6_ENABLED_OFF = 0x00,
+ DIAG_NV_IPV6_ENABLED_ON = 0x01,
+};
+
+/* DIAG_NV_IPV6_ENABLED */
+struct DMNVItemIPv6Enabled {
+ u_int8_t enabled;
+} __attribute__ ((packed));
+typedef struct DMNVItemIPv6Enabled DMNVItemIPv6Enabled;
+
#endif /* LIBQCDM_NV_ITEMS_H */
diff --git a/libqcdm/tests/Makefile.am b/libqcdm/tests/Makefile.am
index ddf7d7b..241ae03 100644
--- a/libqcdm/tests/Makefile.am
+++ b/libqcdm/tests/Makefile.am
@@ -1,6 +1,6 @@
include $(top_srcdir)/gtester.make
-noinst_PROGRAMS = test-qcdm modepref
+noinst_PROGRAMS = test-qcdm modepref ipv6pref
TEST_PROGS += test-qcdm
INCLUDES = \
@@ -26,10 +26,16 @@ modepref_SOURCES = modepref.c
modepref_CPPFLAGS = $(MM_CFLAGS)
modepref_LDADD = $(MM_LIBS)
+ipv6pref_SOURCES = ipv6pref.c
+ipv6pref_CPPFLAGS = $(MM_CFLAGS)
+ipv6pref_LDADD = $(MM_LIBS)
+
if QCDM_STANDALONE
test_qcdm_LDADD += $(top_builddir)/src/libqcdm.la
modepref_LDADD += $(top_builddir)/src/libqcdm.la
+ipv6pref_LDADD += $(top_builddir)/src/libqcdm.la
else
test_qcdm_LDADD += $(top_builddir)/libqcdm/src/libqcdm.la
modepref_LDADD += $(top_builddir)/libqcdm/src/libqcdm.la
+ipv6pref_LDADD += $(top_builddir)/libqcdm/src/libqcdm.la
endif
diff --git a/libqcdm/tests/Makefile.in b/libqcdm/tests/Makefile.in
index 7ac8360..0765132 100644
--- a/libqcdm/tests/Makefile.in
+++ b/libqcdm/tests/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -80,22 +80,26 @@ build_triplet = @build@
host_triplet = @host@
DIST_COMMON = $(top_srcdir)/gtester.make $(srcdir)/Makefile.in \
$(srcdir)/Makefile.am $(top_srcdir)/depcomp
-noinst_PROGRAMS = test-qcdm$(EXEEXT) modepref$(EXEEXT)
+noinst_PROGRAMS = test-qcdm$(EXEEXT) modepref$(EXEEXT) \
+ ipv6pref$(EXEEXT)
@QCDM_STANDALONE_TRUE@am__append_1 = $(top_builddir)/src/libqcdm.la
@QCDM_STANDALONE_TRUE@am__append_2 = $(top_builddir)/src/libqcdm.la
-@QCDM_STANDALONE_FALSE@am__append_3 = $(top_builddir)/libqcdm/src/libqcdm.la
+@QCDM_STANDALONE_TRUE@am__append_3 = $(top_builddir)/src/libqcdm.la
@QCDM_STANDALONE_FALSE@am__append_4 = $(top_builddir)/libqcdm/src/libqcdm.la
+@QCDM_STANDALONE_FALSE@am__append_5 = $(top_builddir)/libqcdm/src/libqcdm.la
+@QCDM_STANDALONE_FALSE@am__append_6 = $(top_builddir)/libqcdm/src/libqcdm.la
subdir = libqcdm/tests
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \
$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
- $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
- $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/introspection.m4 \
+ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
@@ -104,15 +108,19 @@ CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
PROGRAMS = $(noinst_PROGRAMS)
-am_modepref_OBJECTS = modepref-modepref.$(OBJEXT)
-modepref_OBJECTS = $(am_modepref_OBJECTS)
+am_ipv6pref_OBJECTS = ipv6pref-ipv6pref.$(OBJEXT)
+ipv6pref_OBJECTS = $(am_ipv6pref_OBJECTS)
am__DEPENDENCIES_1 =
-modepref_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__append_2) \
- $(am__append_4)
+ipv6pref_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__append_3) \
+ $(am__append_6)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
am__v_lt_1 =
+am_modepref_OBJECTS = modepref-modepref.$(OBJEXT)
+modepref_OBJECTS = $(am_modepref_OBJECTS)
+modepref_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__append_2) \
+ $(am__append_5)
am_test_qcdm_OBJECTS = test_qcdm-test-qcdm-crc.$(OBJEXT) \
test_qcdm-test-qcdm-escaping.$(OBJEXT) \
test_qcdm-test-qcdm-utils.$(OBJEXT) \
@@ -121,7 +129,7 @@ am_test_qcdm_OBJECTS = test_qcdm-test-qcdm-crc.$(OBJEXT) \
test_qcdm-test-qcdm.$(OBJEXT)
test_qcdm_OBJECTS = $(am_test_qcdm_OBJECTS)
test_qcdm_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__append_1) \
- $(am__append_3)
+ $(am__append_4)
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
@@ -156,8 +164,9 @@ AM_V_CCLD = $(am__v_CCLD_@AM_V@)
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
-SOURCES = $(modepref_SOURCES) $(test_qcdm_SOURCES)
-DIST_SOURCES = $(modepref_SOURCES) $(test_qcdm_SOURCES)
+SOURCES = $(ipv6pref_SOURCES) $(modepref_SOURCES) $(test_qcdm_SOURCES)
+DIST_SOURCES = $(ipv6pref_SOURCES) $(modepref_SOURCES) \
+ $(test_qcdm_SOURCES)
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
@@ -241,6 +250,14 @@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
@@ -307,6 +324,9 @@ STRIP = @STRIP@
SYSTEMD_UNIT_DIR = @SYSTEMD_UNIT_DIR@
UDEV_BASE_DIR = @UDEV_BASE_DIR@
USE_NLS = @USE_NLS@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
@@ -389,10 +409,13 @@ test_qcdm_SOURCES = \
test-qcdm.c
test_qcdm_CPPFLAGS = $(MM_CFLAGS)
-test_qcdm_LDADD = $(MM_LIBS) $(am__append_1) $(am__append_3)
+test_qcdm_LDADD = $(MM_LIBS) $(am__append_1) $(am__append_4)
modepref_SOURCES = modepref.c
modepref_CPPFLAGS = $(MM_CFLAGS)
-modepref_LDADD = $(MM_LIBS) $(am__append_2) $(am__append_4)
+modepref_LDADD = $(MM_LIBS) $(am__append_2) $(am__append_5)
+ipv6pref_SOURCES = ipv6pref.c
+ipv6pref_CPPFLAGS = $(MM_CFLAGS)
+ipv6pref_LDADD = $(MM_LIBS) $(am__append_3) $(am__append_6)
all: all-am
.SUFFIXES:
@@ -438,6 +461,10 @@ clean-noinstPROGRAMS:
echo " rm -f" $$list; \
rm -f $$list
+ipv6pref$(EXEEXT): $(ipv6pref_OBJECTS) $(ipv6pref_DEPENDENCIES) $(EXTRA_ipv6pref_DEPENDENCIES)
+ @rm -f ipv6pref$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipv6pref_OBJECTS) $(ipv6pref_LDADD) $(LIBS)
+
modepref$(EXEEXT): $(modepref_OBJECTS) $(modepref_DEPENDENCIES) $(EXTRA_modepref_DEPENDENCIES)
@rm -f modepref$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(modepref_OBJECTS) $(modepref_LDADD) $(LIBS)
@@ -452,6 +479,7 @@ mostlyclean-compile:
distclean-compile:
-rm -f *.tab.c
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipv6pref-ipv6pref.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/modepref-modepref.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_qcdm-test-qcdm-com.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_qcdm-test-qcdm-crc.Po@am__quote@
@@ -484,6 +512,20 @@ distclean-compile:
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+ipv6pref-ipv6pref.o: ipv6pref.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ipv6pref_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ipv6pref-ipv6pref.o -MD -MP -MF $(DEPDIR)/ipv6pref-ipv6pref.Tpo -c -o ipv6pref-ipv6pref.o `test -f 'ipv6pref.c' || echo '$(srcdir)/'`ipv6pref.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ipv6pref-ipv6pref.Tpo $(DEPDIR)/ipv6pref-ipv6pref.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ipv6pref.c' object='ipv6pref-ipv6pref.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ipv6pref_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ipv6pref-ipv6pref.o `test -f 'ipv6pref.c' || echo '$(srcdir)/'`ipv6pref.c
+
+ipv6pref-ipv6pref.obj: ipv6pref.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ipv6pref_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ipv6pref-ipv6pref.obj -MD -MP -MF $(DEPDIR)/ipv6pref-ipv6pref.Tpo -c -o ipv6pref-ipv6pref.obj `if test -f 'ipv6pref.c'; then $(CYGPATH_W) 'ipv6pref.c'; else $(CYGPATH_W) '$(srcdir)/ipv6pref.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ipv6pref-ipv6pref.Tpo $(DEPDIR)/ipv6pref-ipv6pref.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ipv6pref.c' object='ipv6pref-ipv6pref.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ipv6pref_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ipv6pref-ipv6pref.obj `if test -f 'ipv6pref.c'; then $(CYGPATH_W) 'ipv6pref.c'; else $(CYGPATH_W) '$(srcdir)/ipv6pref.c'; fi`
+
modepref-modepref.o: modepref.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(modepref_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT modepref-modepref.o -MD -MP -MF $(DEPDIR)/modepref-modepref.Tpo -c -o modepref-modepref.o `test -f 'modepref.c' || echo '$(srcdir)/'`modepref.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/modepref-modepref.Tpo $(DEPDIR)/modepref-modepref.Po
diff --git a/libqcdm/tests/ipv6pref.c b/libqcdm/tests/ipv6pref.c
new file mode 100644
index 0000000..ba777d8
--- /dev/null
+++ b/libqcdm/tests/ipv6pref.c
@@ -0,0 +1,316 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
+/* This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Copyright (C) 2012 Red Hat, Inc.
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <sys/ioctl.h>
+#include <fcntl.h>
+#include <termios.h>
+#include <assert.h>
+#include <unistd.h>
+
+#include "utils.h"
+#include "errors.h"
+#include "commands.h"
+#include "com.h"
+
+static int debug = 0;
+
+static void
+print_buf (const char *detail, const char *buf, size_t len)
+{
+ int i = 0, z;
+ qcdmbool newline = FALSE;
+ char tmp[500];
+ u_int32_t flen;
+
+ flen = snprintf (tmp, sizeof (tmp) - 1, "%s (%zu) ", detail, len);
+ fprintf (stdout, "%s", tmp);
+ for (i = 0; i < len; i++) {
+ fprintf (stdout, "%02x ", buf[i] & 0xFF);
+ if (((i + 1) % 16) == 0) {
+ fprintf (stdout, "\n");
+ z = flen;
+ while (z--)
+ fprintf (stdout, " ");
+ newline = TRUE;
+ } else
+ newline = FALSE;
+ }
+
+ if (!newline)
+ fprintf (stdout, "\n");
+}
+
+static int
+com_setup (const char *port)
+{
+ int ret, fd;
+
+ errno = 0;
+ fd = open (port, O_RDWR | O_EXCL | O_NONBLOCK | O_NOCTTY);
+ if (fd < 0) {
+ fprintf (stderr, "E: failed to open port %s\n", port);
+ return -1;
+ }
+
+ ret = ioctl (fd, TIOCEXCL);
+ if (ret) {
+ fprintf (stderr, "E: failed to lock port %s\n", port);
+ close (fd);
+ return -1;
+ }
+
+ return fd;
+}
+
+/******************************************************************/
+
+static qcdmbool
+qcdm_send (int fd, char *buf, size_t len)
+{
+ int status;
+ int eagain_count = 1000;
+ size_t i = 0;
+
+ if (debug)
+ print_buf ("DM:ENC>>>", buf, len);
+
+ while (i < len) {
+ errno = 0;
+ status = write (fd, &buf[i], 1);
+ if (status < 0) {
+ if (errno == EAGAIN) {
+ eagain_count--;
+ if (eagain_count <= 0)
+ return FALSE;
+ } else
+ assert (errno == 0);
+ } else
+ i++;
+
+ usleep (1000);
+ }
+
+ return TRUE;
+}
+
+static size_t
+qcdm_wait_reply (int fd, char *buf, size_t len)
+{
+ fd_set in;
+ int result;
+ struct timeval timeout = { 1, 0 };
+ char readbuf[1024];
+ ssize_t bytes_read;
+ int total = 0, retries = 0;
+ size_t decap_len = 0;
+
+ FD_ZERO (&in);
+ FD_SET (fd, &in);
+ result = select (fd + 1, &in, NULL, NULL, &timeout);
+ if (result != 1 || !FD_ISSET (fd, &in))
+ return 0;
+
+ do {
+ errno = 0;
+ bytes_read = read (fd, &readbuf[total], 1);
+ if ((bytes_read == 0) || (errno == EAGAIN)) {
+ /* Haven't gotten the async control char yet */
+ if (retries > 20)
+ return 0; /* 2 seconds, give up */
+
+ /* Otherwise wait a bit and try again */
+ usleep (100000);
+ retries++;
+ continue;
+ } else if (bytes_read == 1) {
+ qcdmbool more = FALSE;
+ qcdmbool success;
+ size_t used = 0;
+
+ total++;
+ decap_len = 0;
+ success = dm_decapsulate_buffer (readbuf, total, buf, len, &decap_len, &used, &more);
+
+ /* Discard used data */
+ if (used > 0) {
+ total -= used;
+ memmove (readbuf, &readbuf[used], total);
+ }
+
+ if (success && !more) {
+ /* Success; we have a packet */
+ break;
+ }
+ } else {
+ /* Some error occurred */
+ return 0;
+ }
+ } while (total < sizeof (readbuf));
+
+ if (debug)
+ print_buf ("QCDM:DEC<<", buf, decap_len);
+
+ return decap_len;
+}
+
+static int
+qcdm_set_ipv6_enabled (int fd, u_int8_t ipv6pref)
+{
+ int err;
+ char buf[512];
+ size_t len;
+ QcdmResult *result;
+ size_t reply_len;
+
+ len = qcdm_cmd_nv_set_ipv6_enabled_new (buf, sizeof (buf), ipv6pref);
+ assert (len);
+
+ /* Send the command */
+ if (!qcdm_send (fd, buf, len)) {
+ fprintf (stderr, "E: failed to send QCDM IPv6 enabled command\n");
+ return -1;
+ }
+
+ reply_len = qcdm_wait_reply (fd, buf, sizeof (buf));
+ if (!reply_len) {
+ fprintf (stderr, "E: failed to receive QCDM IPv6 enabled command reply\n");
+ return -1;
+ }
+
+ /* Parse the response into a result structure */
+ err = QCDM_SUCCESS;
+ result = qcdm_cmd_nv_set_ipv6_enabled_result (buf, reply_len, &err);
+ if (!result) {
+ fprintf (stderr, "E: failed to parse QCDM IPv6 enabled command reply: %d\n", err);
+ return -1;
+ }
+
+ qcdm_result_unref (result);
+ return 0;
+}
+
+static int
+qcdm_get_ipv6_enabled (int fd)
+{
+ int err;
+ char buf[512];
+ size_t len;
+ QcdmResult *result;
+ size_t reply_len;
+ u_int8_t mode;
+
+ len = qcdm_cmd_nv_get_ipv6_enabled_new (buf, sizeof (buf));
+ assert (len);
+
+ /* Send the command */
+ if (!qcdm_send (fd, buf, len)) {
+ fprintf (stderr, "E: failed to send QCDM IPv6 enabled command\n");
+ return -1;
+ }
+
+ reply_len = qcdm_wait_reply (fd, buf, sizeof (buf));
+ if (!reply_len) {
+ fprintf (stderr, "E: failed to receive QCDM IPv6 pref command reply\n");
+ return -1;
+ }
+
+ /* Parse the response into a result structure */
+ err = QCDM_SUCCESS;
+ result = qcdm_cmd_nv_get_ipv6_enabled_result (buf, reply_len, &err);
+ if (!result) {
+ /* An inactive NVRAM entry has the same effect as setting "disabled" */
+ if (err == -QCDM_ERROR_NV_ERROR_INACTIVE)
+ return QCDM_CMD_NV_IPV6_ENABLED_OFF;
+
+ fprintf (stderr, "E: failed to parse QCDM IPv6 enabled command reply: %d\n", err);
+ return -1;
+ }
+
+ err = qcdm_result_get_u8 (result, QCDM_CMD_NV_GET_IPV6_ENABLED_ITEM_ENABLED, &mode);
+ qcdm_result_unref (result);
+ return mode;
+}
+
+/******************************************************************/
+
+static void
+usage (const char *prog)
+{
+ fprintf (stderr, "Usage: %s <DM port> [--enable|--disable] [--debug]\n", prog);
+ fprintf (stderr, " Current mode will always be printed.\n\n");
+}
+
+int
+main (int argc, char *argv[])
+{
+ const char *dmport = argv[1];
+ int fd, err, old, new = -1;
+
+ if (argc < 2 || argc > 4) {
+ usage (argv[0]);
+ return 1;
+ }
+
+ if (argc >= 3) {
+ if (strcasecmp (argv[2], "--debug") == 0)
+ debug = 1;
+ else if (strcasecmp (argv[2], "--enable") == 0)
+ new = QCDM_CMD_NV_IPV6_ENABLED_ON;
+ else if (strcasecmp (argv[2], "--disable") == 0)
+ new = QCDM_CMD_NV_IPV6_ENABLED_OFF;
+ else
+ usage (argv[0]);
+
+ if (argc >= 4 && strcasecmp (argv[3], "--debug") == 0)
+ debug = 1;
+ }
+
+ if (debug)
+ putenv ("QCDM_DEBUG=1");
+
+ fd = com_setup (dmport);
+ if (fd < 0)
+ return 1;
+
+ err = qcdm_port_setup (fd);
+ if (err != QCDM_SUCCESS) {
+ fprintf (stderr, "E: failed to set up DM port %s: %d\n", dmport, err);
+ return 1;
+ }
+
+ old = qcdm_get_ipv6_enabled (fd);
+ if (old < 0) {
+ fprintf (stderr, "E: failed to get IPv6 state\n");
+ return 1;
+ }
+ fprintf (stdout, "IPv6: %s\n", old ? "enabled" : "disabled");
+
+ if (new >=0 && old != new) {
+ if (qcdm_set_ipv6_enabled (fd, new))
+ fprintf (stdout, "Failed to %s IPv6\n", new ? "enable" : "disable");
+ else
+ fprintf (stdout, "IPv6 successfully %s. Replug your device.\n", new ? "enabled" : "disabled");
+ }
+
+ return 0;
+}
+
diff --git a/libqcdm/tests/test-qcdm-com.c b/libqcdm/tests/test-qcdm-com.c
index 369e7d4..8615284 100644
--- a/libqcdm/tests/test-qcdm-com.c
+++ b/libqcdm/tests/test-qcdm-com.c
@@ -698,6 +698,61 @@ test_com_read_hybrid_pref (void *f, void *data)
}
void
+test_com_read_ipv6_enabled (void *f, void *data)
+{
+ TestComData *d = data;
+ gboolean success;
+ int err = QCDM_SUCCESS;
+ char buf[512];
+ guint8 pref;
+ const char *msg;
+ gint len;
+ QcdmResult *result;
+ gsize reply_len;
+
+ len = qcdm_cmd_nv_get_ipv6_enabled_new (buf, sizeof (buf));
+ g_assert (len > 0);
+
+ /* Send the command */
+ success = send_command (d, buf, len);
+ g_assert (success);
+
+ /* Get a response */
+ reply_len = wait_reply (d, buf, sizeof (buf));
+
+ /* Parse the response into a result structure */
+ result = qcdm_cmd_nv_get_ipv6_enabled_result (buf, reply_len, &err);
+ if (!result) {
+ if ( err == -QCDM_ERROR_NVCMD_FAILED
+ || err == -QCDM_ERROR_RESPONSE_BAD_PARAMETER
+ || err == -QCDM_ERROR_NV_ERROR_INACTIVE
+ || err == -QCDM_ERROR_NV_ERROR_BAD_PARAMETER)
+ return;
+ g_assert_cmpint (err, ==, QCDM_SUCCESS);
+ }
+
+ g_print ("\n");
+
+ err = qcdm_result_get_u8 (result, QCDM_CMD_NV_GET_IPV6_ENABLED_ITEM_ENABLED, &pref);
+ g_assert_cmpint (err, ==, QCDM_SUCCESS);
+
+ switch (pref) {
+ case QCDM_CMD_NV_IPV6_ENABLED_OFF:
+ msg = "disabled";
+ break;
+ case QCDM_CMD_NV_IPV6_ENABLED_ON:
+ msg = "enabled";
+ break;
+ default:
+ msg = "unknown";
+ break;
+ }
+ g_message ("%s: IPv6 preference: 0x%02X (%s)", __func__, pref, msg);
+
+ qcdm_result_unref (result);
+}
+
+void
test_com_read_hdr_rev_pref (void *f, void *data)
{
TestComData *d = data;
diff --git a/libqcdm/tests/test-qcdm-com.h b/libqcdm/tests/test-qcdm-com.h
index 341d44e..2a6d58f 100644
--- a/libqcdm/tests/test-qcdm-com.h
+++ b/libqcdm/tests/test-qcdm-com.h
@@ -35,6 +35,8 @@ void test_com_read_mode_pref (void *f, void *data);
void test_com_read_hybrid_pref (void *f, void *data);
+void test_com_read_ipv6_enabled (void *f, void *data);
+
void test_com_read_hdr_rev_pref (void *f, void *data);
void test_com_status (void *f, void *data);
diff --git a/libqcdm/tests/test-qcdm.c b/libqcdm/tests/test-qcdm.c
index 8448364..2a21522 100644
--- a/libqcdm/tests/test-qcdm.c
+++ b/libqcdm/tests/test-qcdm.c
@@ -100,6 +100,7 @@ int main (int argc, char **argv)
g_test_suite_add (suite, TESTCASE (test_com_read_roam_pref, data->com_data));
g_test_suite_add (suite, TESTCASE (test_com_read_mode_pref, data->com_data));
g_test_suite_add (suite, TESTCASE (test_com_read_hybrid_pref, data->com_data));
+ g_test_suite_add (suite, TESTCASE (test_com_read_ipv6_enabled, data->com_data));
g_test_suite_add (suite, TESTCASE (test_com_read_hdr_rev_pref, data->com_data));
g_test_suite_add (suite, TESTCASE (test_com_status, data->com_data));
g_test_suite_add (suite, TESTCASE (test_com_sw_version, data->com_data));
diff --git a/libwmc/Makefile.in b/libwmc/Makefile.in
index 3f52235..e59a417 100644
--- a/libwmc/Makefile.in
+++ b/libwmc/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -84,12 +84,13 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \
$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
- $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
- $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/introspection.m4 \
+ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
@@ -236,6 +237,14 @@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
@@ -302,6 +311,9 @@ STRIP = @STRIP@
SYSTEMD_UNIT_DIR = @SYSTEMD_UNIT_DIR@
UDEV_BASE_DIR = @UDEV_BASE_DIR@
USE_NLS = @USE_NLS@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
diff --git a/libwmc/src/Makefile.in b/libwmc/src/Makefile.in
index 22bc8bc..175de65 100644
--- a/libwmc/src/Makefile.in
+++ b/libwmc/src/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -85,12 +85,13 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \
$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
- $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
- $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/introspection.m4 \
+ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
@@ -227,6 +228,14 @@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
@@ -293,6 +302,9 @@ STRIP = @STRIP@
SYSTEMD_UNIT_DIR = @SYSTEMD_UNIT_DIR@
UDEV_BASE_DIR = @UDEV_BASE_DIR@
USE_NLS = @USE_NLS@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
diff --git a/libwmc/tests/Makefile.in b/libwmc/tests/Makefile.in
index 36f4376..ec3bd9f 100644
--- a/libwmc/tests/Makefile.in
+++ b/libwmc/tests/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -88,12 +88,13 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \
$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
- $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
- $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/introspection.m4 \
+ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
@@ -233,6 +234,14 @@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
@@ -299,6 +308,9 @@ STRIP = @STRIP@
SYSTEMD_UNIT_DIR = @SYSTEMD_UNIT_DIR@
UDEV_BASE_DIR = @UDEV_BASE_DIR@
USE_NLS = @USE_NLS@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
diff --git a/m4/gtk-doc.m4 b/m4/gtk-doc.m4
index 0ada151..ac2eccb 100644
--- a/m4/gtk-doc.m4
+++ b/m4/gtk-doc.m4
@@ -37,7 +37,7 @@ AC_DEFUN([GTK_DOC_CHECK],
dnl don't check for glib if we build glib
if test "x$PACKAGE_NAME" != "xglib"; then
dnl don't fail if someone does not have glib
- PKG_CHECK_MODULES(GTKDOC_DEPS, glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0,,)
+ PKG_CHECK_MODULES(GTKDOC_DEPS, glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0,,[:])
fi
fi
@@ -58,6 +58,10 @@ AC_DEFUN([GTK_DOC_CHECK],
enable_gtk_doc_pdf=no
fi
+ if test -z "$AM_DEFAULT_VERBOSITY"; then
+ AM_DEFAULT_VERBOSITY=1
+ fi
+ AC_SUBST([AM_DEFAULT_VERBOSITY])
AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes])
AM_CONDITIONAL([GTK_DOC_BUILD_HTML], [test x$enable_gtk_doc_html = xyes])
diff --git a/m4/introspection.m4 b/m4/introspection.m4
new file mode 100644
index 0000000..d89c3d9
--- /dev/null
+++ b/m4/introspection.m4
@@ -0,0 +1,96 @@
+dnl -*- mode: autoconf -*-
+dnl Copyright 2009 Johan Dahlin
+dnl
+dnl This file is free software; the author(s) gives unlimited
+dnl permission to copy and/or distribute it, with or without
+dnl modifications, as long as this notice is preserved.
+dnl
+
+# serial 1
+
+m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
+[
+ AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
+ AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
+ AC_BEFORE([LT_INIT],[$0])dnl setup libtool first
+
+ dnl enable/disable introspection
+ m4_if([$2], [require],
+ [dnl
+ enable_introspection=yes
+ ],[dnl
+ AC_ARG_ENABLE(introspection,
+ AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]],
+ [Enable introspection for this build]),,
+ [enable_introspection=auto])
+ ])dnl
+
+ AC_MSG_CHECKING([for gobject-introspection])
+
+ dnl presence/version checking
+ AS_CASE([$enable_introspection],
+ [no], [dnl
+ found_introspection="no (disabled, use --enable-introspection to enable)"
+ ],dnl
+ [yes],[dnl
+ PKG_CHECK_EXISTS([gobject-introspection-1.0],,
+ AC_MSG_ERROR([gobject-introspection-1.0 is not installed]))
+ PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1],
+ found_introspection=yes,
+ AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME]))
+ ],dnl
+ [auto],[dnl
+ PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no)
+ dnl Canonicalize enable_introspection
+ enable_introspection=$found_introspection
+ ],dnl
+ [dnl
+ AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@])
+ ])dnl
+
+ AC_MSG_RESULT([$found_introspection])
+
+ INTROSPECTION_SCANNER=
+ INTROSPECTION_COMPILER=
+ INTROSPECTION_GENERATE=
+ INTROSPECTION_GIRDIR=
+ INTROSPECTION_TYPELIBDIR=
+ if test "x$found_introspection" = "xyes"; then
+ INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
+ INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
+ INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
+ INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
+ INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
+ INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
+ INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
+ INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
+ fi
+ AC_SUBST(INTROSPECTION_SCANNER)
+ AC_SUBST(INTROSPECTION_COMPILER)
+ AC_SUBST(INTROSPECTION_GENERATE)
+ AC_SUBST(INTROSPECTION_GIRDIR)
+ AC_SUBST(INTROSPECTION_TYPELIBDIR)
+ AC_SUBST(INTROSPECTION_CFLAGS)
+ AC_SUBST(INTROSPECTION_LIBS)
+ AC_SUBST(INTROSPECTION_MAKEFILE)
+
+ AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes")
+])
+
+
+dnl Usage:
+dnl GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version])
+
+AC_DEFUN([GOBJECT_INTROSPECTION_CHECK],
+[
+ _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1])
+])
+
+dnl Usage:
+dnl GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version])
+
+
+AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE],
+[
+ _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require])
+])
diff --git a/m4/libtool.m4 b/m4/libtool.m4
index 56666f0..44e0ecf 100644
--- a/m4/libtool.m4
+++ b/m4/libtool.m4
@@ -2669,14 +2669,10 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu)
# before this can be enabled.
hardcode_into_libs=yes
- # Add ABI-specific directories to the system library path.
- sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
-
# Append ld.so.conf contents to the search path
if test -f /etc/ld.so.conf; then
lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
-
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
fi
# We used to test for /lib/ld.so.1 and disable shared libraries on
diff --git a/m4/vapigen.m4 b/m4/vapigen.m4
new file mode 100644
index 0000000..2c435e7
--- /dev/null
+++ b/m4/vapigen.m4
@@ -0,0 +1,101 @@
+dnl vapigen.m4
+dnl
+dnl Copyright 2012 Evan Nemerson
+dnl
+dnl This library is free software; you can redistribute it and/or
+dnl modify it under the terms of the GNU Lesser General Public
+dnl License as published by the Free Software Foundation; either
+dnl version 2.1 of the License, or (at your option) any later version.
+dnl
+dnl This library is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+dnl Lesser General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU Lesser General Public
+dnl License along with this library; if not, write to the Free Software
+dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+# VAPIGEN_CHECK([VERSION], [API_VERSION], [FOUND_INTROSPECTION], [DEFAULT])
+# --------------------------------------
+# Check vapigen existence and version
+#
+# See http://live.gnome.org/Vala/UpstreamGuide for detailed documentation
+AC_DEFUN([VAPIGEN_CHECK],
+[
+ AS_IF([test "x$3" != "xyes"], [
+ m4_provide_if([GOBJECT_INTROSPECTION_CHECK], [], [
+ m4_provide_if([GOBJECT_INTROSPECTION_REQUIRE], [], [
+ AC_MSG_ERROR([[You must call GOBJECT_INTROSPECTION_CHECK or GOBJECT_INTROSPECTION_REQUIRE before using VAPIGEN_CHECK unless using the FOUND_INTROSPECTION argument is "yes"]])
+ ])
+ ])
+ ])
+
+ AC_ARG_ENABLE([vala],
+ [AS_HELP_STRING([--enable-vala[=@<:@no/auto/yes@:>@]],[build Vala bindings @<:@default=]ifelse($4,,auto,$4)[@:>@])],,[
+ AS_IF([test "x$4" = "x"], [
+ enable_vala=auto
+ ], [
+ enable_vala=$4
+ ])
+ ])
+
+ AS_CASE([$enable_vala], [no], [enable_vala=no],
+ [yes], [
+ AS_IF([test "x$3" != "xyes" -a "x$found_introspection" != "xyes"], [
+ AC_MSG_ERROR([Vala bindings require GObject Introspection])
+ ])
+ ], [auto], [
+ AS_IF([test "x$3" != "xyes" -a "x$found_introspection" != "xyes"], [
+ enable_vala=no
+ ])
+ ], [
+ AC_MSG_ERROR([Invalid argument passed to --enable-vala, should be one of @<:@no/auto/yes@:>@])
+ ])
+
+ AS_IF([test "x$2" = "x"], [
+ vapigen_pkg_name=vapigen
+ ], [
+ vapigen_pkg_name=vapigen-$2
+ ])
+ AS_IF([test "x$1" = "x"], [
+ vapigen_pkg="$vapigen_pkg_name"
+ ], [
+ vapigen_pkg="$vapigen_pkg_name >= $1"
+ ])
+
+ PKG_PROG_PKG_CONFIG
+
+ PKG_CHECK_EXISTS([$vapigen_pkg], [
+ AS_IF([test "$enable_vala" = "auto"], [
+ enable_vala=yes
+ ])
+ ], [
+ AS_CASE([$enable_vala], [yes], [
+ AC_MSG_ERROR([$vapigen_pkg not found])
+ ], [auto], [
+ enable_vala=no
+ ])
+ ])
+
+ AC_MSG_CHECKING([for vapigen])
+
+ AS_CASE([$enable_vala],
+ [yes], [
+ VAPIGEN=`$PKG_CONFIG --variable=vapigen $vapigen_pkg_name`
+ VAPIGEN_MAKEFILE=`$PKG_CONFIG --variable=datadir $vapigen_pkg_name`/vala/Makefile.vapigen
+ AS_IF([test "x$2" = "x"], [
+ VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir $vapigen_pkg_name`
+ ], [
+ VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir_versioned $vapigen_pkg_name`
+ ])
+ ])
+
+ AC_MSG_RESULT([$enable_vala])
+
+ AC_SUBST([VAPIGEN])
+ AC_SUBST([VAPIGEN_VAPIDIR])
+ AC_SUBST([VAPIGEN_MAKEFILE])
+
+ AM_CONDITIONAL(ENABLE_VAPIGEN, test "x$enable_vala" = "xyes")
+])
diff --git a/missing b/missing
index cdea514..db98974 100755
--- a/missing
+++ b/missing
@@ -1,7 +1,7 @@
#! /bin/sh
# Common wrapper for a few potentially missing GNU programs.
-scriptversion=2012-06-26.16; # UTC
+scriptversion=2013-10-28.13; # UTC
# Copyright (C) 1996-2013 Free Software Foundation, Inc.
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
@@ -160,7 +160,7 @@ give_advice ()
;;
autom4te*)
echo "You might have modified some maintainer files that require"
- echo "the 'automa4te' program to be rebuilt."
+ echo "the 'autom4te' program to be rebuilt."
program_details 'autom4te'
;;
bison*|yacc*)
diff --git a/plugins/Makefile.am b/plugins/Makefile.am
index 83f1fae..07e53e7 100644
--- a/plugins/Makefile.am
+++ b/plugins/Makefile.am
@@ -15,16 +15,19 @@ PLUGIN_COMMON_COMPILER_FLAGS = \
-I$(top_builddir)/libmm-glib/generated
PLUGIN_COMMON_LINKER_FLAGS = \
- $(GUDEV_LDFLAGS) \
+ $(GUDEV_LIBS) \
+ $(MM_LIBS) \
-module \
-avoid-version
if WITH_QMI
PLUGIN_COMMON_COMPILER_FLAGS += $(QMI_CFLAGS)
+PLUGIN_COMMON_LINKER_FLAGS += $(QMI_LIBS)
endif
if WITH_MBIM
PLUGIN_COMMON_COMPILER_FLAGS += $(MBIM_CFLAGS)
+PLUGIN_COMMON_LINKER_FLAGS += $(MBIM_LIBS)
endif
# UDev rules
@@ -44,7 +47,7 @@ libmm_utils_icera_la_SOURCES = \
icera/mm-broadband-bearer-icera.h \
icera/mm-broadband-bearer-icera.c
libmm_utils_icera_la_CPPFLAGS = $(PLUGIN_COMMON_COMPILER_FLAGS)
-libmm_utils_icera_la_LIBADD = $(GUDEV_LDFLAGS)
+libmm_utils_icera_la_LIBADD = $(GUDEV_LIBS) $(MM_LIBS)
ICERA_COMMON_COMPILER_FLAGS = -I$(top_srcdir)/plugins/icera
ICERA_COMMON_LIBADD_FLAGS = $(builddir)/libmm-utils-icera.la
@@ -77,7 +80,8 @@ pkglib_LTLIBRARIES = \
libmm-plugin-sierra.la \
libmm-plugin-mbm.la \
libmm-plugin-via.la \
- libmm-plugin-telit.la
+ libmm-plugin-telit.la \
+ libmm-plugin-mtk.la
# Generic
libmm_plugin_generic_la_SOURCES = \
@@ -110,6 +114,8 @@ libmm_plugin_huawei_la_SOURCES = \
huawei/mm-plugin-huawei.h \
huawei/mm-modem-helpers-huawei.c \
huawei/mm-modem-helpers-huawei.h \
+ huawei/mm-sim-huawei.c \
+ huawei/mm-sim-huawei.h \
huawei/mm-broadband-modem-huawei.c \
huawei/mm-broadband-modem-huawei.h \
huawei/mm-broadband-bearer-huawei.c \
@@ -127,8 +133,10 @@ test_modem_helpers_huawei_SOURCES = \
test_modem_helpers_huawei_CPPFLAGS = \
-I$(top_srcdir)/plugins/huawei \
$(PLUGIN_COMMON_COMPILER_FLAGS)
-test_modem_helpers_huawei_LDFLAGS = $(top_builddir)/libmm-glib/libmm-glib.la
-
+test_modem_helpers_huawei_LDADD = \
+ $(top_builddir)/libmm-glib/libmm-glib.la \
+ $(top_builddir)/src/libmodem-helpers.la
+test_modem_helpers_huawei_LDFLAGS = $(PLUGIN_COMMON_LINKER_FLAGS)
# MBM
libmm_plugin_mbm_la_SOURCES = \
@@ -343,6 +351,8 @@ libmm_plugin_novatel_la_LDFLAGS = $(PLUGIN_COMMON_LINKER_FLAGS)
# Altair LTE modem
libmm_plugin_altair_lte_la_SOURCES = \
+ altair/mm-modem-helpers-altair-lte.c \
+ altair/mm-modem-helpers-altair-lte.h \
altair/mm-plugin-altair-lte.c \
altair/mm-plugin-altair-lte.h \
altair/mm-broadband-modem-altair-lte.c \
@@ -352,6 +362,18 @@ libmm_plugin_altair_lte_la_SOURCES = \
libmm_plugin_altair_lte_la_CPPFLAGS = $(PLUGIN_COMMON_COMPILER_FLAGS)
libmm_plugin_altair_lte_la_LDFLAGS = $(PLUGIN_COMMON_LINKER_FLAGS)
+noinst_PROGRAMS += test-modem-helpers-altair-lte
+test_modem_helpers_altair_lte_SOURCES = \
+ altair/mm-modem-helpers-altair-lte.c \
+ altair/mm-modem-helpers-altair-lte.h \
+ altair/tests/test-modem-helpers-altair-lte.c
+test_modem_helpers_altair_lte_CPPFLAGS = \
+ -I$(top_srcdir)/plugins/altair \
+ $(PLUGIN_COMMON_COMPILER_FLAGS)
+test_modem_helpers_altair_lte_LDADD = $(top_builddir)/libmm-glib/libmm-glib.la
+test_modem_helpers_altair_lte_LDFLAGS = $(PLUGIN_COMMON_LINKER_FLAGS)
+
+
# VIA modem
libmm_plugin_via_la_SOURCES = \
via/mm-plugin-via.c \
@@ -369,6 +391,17 @@ libmm_plugin_telit_la_SOURCES = \
telit/mm-broadband-modem-telit.h
libmm_plugin_telit_la_CPPFLAGS = $(PLUGIN_COMMON_COMPILER_FLAGS)
libmm_plugin_telit_la_LDFLAGS = $(PLUGIN_COMMON_LINKER_FLAGS)
+udevrules_DATA += telit/77-mm-telit-port-types.rules
+
+# MTK
+libmm_plugin_mtk_la_SOURCES = \
+ mtk/mm-plugin-mtk.c \
+ mtk/mm-plugin-mtk.h \
+ mtk/mm-broadband-modem-mtk.h \
+ mtk/mm-broadband-modem-mtk.c
+libmm_plugin_mtk_la_CPPFLAGS = $(PLUGIN_COMMON_COMPILER_FLAGS)
+libmm_plugin_mtk_la_LDFLAGS = $(PLUGIN_COMMON_LINKER_FLAGS)
+udevrules_DATA += mtk/77-mm-mtk-port-types.rules
# Additional files to include in the distribution
diff --git a/plugins/Makefile.in b/plugins/Makefile.in
index 33ad27f..a1a0aba 100644
--- a/plugins/Makefile.in
+++ b/plugins/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -83,19 +83,23 @@ host_triplet = @host@
DIST_COMMON = $(top_srcdir)/gtester.make $(srcdir)/Makefile.in \
$(srcdir)/Makefile.am $(top_srcdir)/depcomp
@WITH_QMI_TRUE@am__append_1 = $(QMI_CFLAGS)
-@WITH_MBIM_TRUE@am__append_2 = $(MBIM_CFLAGS)
-noinst_PROGRAMS = test-modem-helpers-huawei$(EXEEXT)
+@WITH_QMI_TRUE@am__append_2 = $(QMI_LIBS)
+@WITH_MBIM_TRUE@am__append_3 = $(MBIM_CFLAGS)
+@WITH_MBIM_TRUE@am__append_4 = $(MBIM_LIBS)
+noinst_PROGRAMS = test-modem-helpers-huawei$(EXEEXT) \
+ test-modem-helpers-altair-lte$(EXEEXT)
subdir = plugins
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \
$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
- $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
- $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/introspection.m4 \
+ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
@@ -134,7 +138,7 @@ am__installdirs = "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(udevrulesdir)"
LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkglib_LTLIBRARIES)
libmm_plugin_altair_lte_la_LIBADD =
am__dirstamp = $(am__leading_dot)dirstamp
-am_libmm_plugin_altair_lte_la_OBJECTS = \
+am_libmm_plugin_altair_lte_la_OBJECTS = altair/libmm_plugin_altair_lte_la-mm-modem-helpers-altair-lte.lo \
altair/libmm_plugin_altair_lte_la-mm-plugin-altair-lte.lo \
altair/libmm_plugin_altair_lte_la-mm-broadband-modem-altair-lte.lo \
altair/libmm_plugin_altair_lte_la-mm-broadband-bearer-altair-lte.lo
@@ -201,6 +205,7 @@ libmm_plugin_huawei_la_LIBADD =
am_libmm_plugin_huawei_la_OBJECTS = \
huawei/libmm_plugin_huawei_la-mm-plugin-huawei.lo \
huawei/libmm_plugin_huawei_la-mm-modem-helpers-huawei.lo \
+ huawei/libmm_plugin_huawei_la-mm-sim-huawei.lo \
huawei/libmm_plugin_huawei_la-mm-broadband-modem-huawei.lo \
huawei/libmm_plugin_huawei_la-mm-broadband-bearer-huawei.lo
libmm_plugin_huawei_la_OBJECTS = $(am_libmm_plugin_huawei_la_OBJECTS)
@@ -261,6 +266,15 @@ libmm_plugin_motorola_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(AM_CFLAGS) $(CFLAGS) $(libmm_plugin_motorola_la_LDFLAGS) \
$(LDFLAGS) -o $@
+libmm_plugin_mtk_la_LIBADD =
+am_libmm_plugin_mtk_la_OBJECTS = \
+ mtk/libmm_plugin_mtk_la-mm-plugin-mtk.lo \
+ mtk/libmm_plugin_mtk_la-mm-broadband-modem-mtk.lo
+libmm_plugin_mtk_la_OBJECTS = $(am_libmm_plugin_mtk_la_OBJECTS)
+libmm_plugin_mtk_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(libmm_plugin_mtk_la_LDFLAGS) \
+ $(LDFLAGS) -o $@
libmm_plugin_nokia_icera_la_DEPENDENCIES = \
$(ICERA_COMMON_LIBADD_FLAGS)
am_libmm_plugin_nokia_icera_la_OBJECTS = \
@@ -404,17 +418,31 @@ libmm_plugin_zte_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(AM_CFLAGS) $(CFLAGS) $(libmm_plugin_zte_la_LDFLAGS) \
$(LDFLAGS) -o $@
-libmm_utils_icera_la_DEPENDENCIES =
+am__DEPENDENCIES_1 =
+libmm_utils_icera_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
am_libmm_utils_icera_la_OBJECTS = \
icera/libmm_utils_icera_la-mm-broadband-modem-icera.lo \
icera/libmm_utils_icera_la-mm-broadband-bearer-icera.lo
libmm_utils_icera_la_OBJECTS = $(am_libmm_utils_icera_la_OBJECTS)
PROGRAMS = $(noinst_PROGRAMS)
+am_test_modem_helpers_altair_lte_OBJECTS = altair/test_modem_helpers_altair_lte-mm-modem-helpers-altair-lte.$(OBJEXT) \
+ altair/tests/test_modem_helpers_altair_lte-test-modem-helpers-altair-lte.$(OBJEXT)
+test_modem_helpers_altair_lte_OBJECTS = \
+ $(am_test_modem_helpers_altair_lte_OBJECTS)
+test_modem_helpers_altair_lte_DEPENDENCIES = \
+ $(top_builddir)/libmm-glib/libmm-glib.la
+test_modem_helpers_altair_lte_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) \
+ $(test_modem_helpers_altair_lte_LDFLAGS) $(LDFLAGS) -o $@
am_test_modem_helpers_huawei_OBJECTS = huawei/test_modem_helpers_huawei-mm-modem-helpers-huawei.$(OBJEXT) \
huawei/tests/test_modem_helpers_huawei-test-modem-helpers-huawei.$(OBJEXT)
test_modem_helpers_huawei_OBJECTS = \
$(am_test_modem_helpers_huawei_OBJECTS)
-test_modem_helpers_huawei_LDADD = $(LDADD)
+test_modem_helpers_huawei_DEPENDENCIES = \
+ $(top_builddir)/libmm-glib/libmm-glib.la \
+ $(top_builddir)/src/libmodem-helpers.la
test_modem_helpers_huawei_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(AM_CFLAGS) $(CFLAGS) $(test_modem_helpers_huawei_LDFLAGS) \
@@ -464,6 +492,7 @@ SOURCES = $(libmm_plugin_altair_lte_la_SOURCES) \
$(libmm_plugin_longcheer_la_SOURCES) \
$(libmm_plugin_mbm_la_SOURCES) \
$(libmm_plugin_motorola_la_SOURCES) \
+ $(libmm_plugin_mtk_la_SOURCES) \
$(libmm_plugin_nokia_icera_la_SOURCES) \
$(libmm_plugin_nokia_la_SOURCES) \
$(libmm_plugin_novatel_lte_la_SOURCES) \
@@ -478,6 +507,7 @@ SOURCES = $(libmm_plugin_altair_lte_la_SOURCES) \
$(libmm_plugin_wavecom_la_SOURCES) \
$(libmm_plugin_x22x_la_SOURCES) $(libmm_plugin_zte_la_SOURCES) \
$(libmm_utils_icera_la_SOURCES) \
+ $(test_modem_helpers_altair_lte_SOURCES) \
$(test_modem_helpers_huawei_SOURCES)
DIST_SOURCES = $(libmm_plugin_altair_lte_la_SOURCES) \
$(libmm_plugin_anydata_la_SOURCES) \
@@ -490,6 +520,7 @@ DIST_SOURCES = $(libmm_plugin_altair_lte_la_SOURCES) \
$(libmm_plugin_longcheer_la_SOURCES) \
$(libmm_plugin_mbm_la_SOURCES) \
$(libmm_plugin_motorola_la_SOURCES) \
+ $(libmm_plugin_mtk_la_SOURCES) \
$(libmm_plugin_nokia_icera_la_SOURCES) \
$(libmm_plugin_nokia_la_SOURCES) \
$(libmm_plugin_novatel_lte_la_SOURCES) \
@@ -504,6 +535,7 @@ DIST_SOURCES = $(libmm_plugin_altair_lte_la_SOURCES) \
$(libmm_plugin_wavecom_la_SOURCES) \
$(libmm_plugin_x22x_la_SOURCES) $(libmm_plugin_zte_la_SOURCES) \
$(libmm_utils_icera_la_SOURCES) \
+ $(test_modem_helpers_altair_lte_SOURCES) \
$(test_modem_helpers_huawei_SOURCES)
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
@@ -589,6 +621,14 @@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
@@ -655,6 +695,9 @@ STRIP = @STRIP@
SYSTEMD_UNIT_DIR = @SYSTEMD_UNIT_DIR@
UDEV_BASE_DIR = @UDEV_BASE_DIR@
USE_NLS = @USE_NLS@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
@@ -731,12 +774,9 @@ PLUGIN_COMMON_COMPILER_FLAGS = $(MM_CFLAGS) $(GUDEV_CFLAGS) \
-I$(top_srcdir)/libmm-glib \
-I$(top_srcdir)/libmm-glib/generated \
-I$(top_builddir)/libmm-glib/generated $(am__append_1) \
- $(am__append_2)
-PLUGIN_COMMON_LINKER_FLAGS = \
- $(GUDEV_LDFLAGS) \
- -module \
- -avoid-version
-
+ $(am__append_3)
+PLUGIN_COMMON_LINKER_FLAGS = $(GUDEV_LIBS) $(MM_LIBS) -module \
+ -avoid-version $(am__append_2) $(am__append_4)
# UDev rules
udevrulesdir = $(UDEV_BASE_DIR)/rules.d
@@ -746,7 +786,9 @@ udevrules_DATA = huawei/77-mm-huawei-net-port-types.rules \
zte/77-mm-zte-port-types.rules \
longcheer/77-mm-longcheer-port-types.rules \
simtech/77-mm-simtech-port-types.rules \
- x22x/77-mm-x22x-port-types.rules
+ x22x/77-mm-x22x-port-types.rules \
+ telit/77-mm-telit-port-types.rules \
+ mtk/77-mm-mtk-port-types.rules
########################################
@@ -759,7 +801,7 @@ libmm_utils_icera_la_SOURCES = \
icera/mm-broadband-bearer-icera.c
libmm_utils_icera_la_CPPFLAGS = $(PLUGIN_COMMON_COMPILER_FLAGS)
-libmm_utils_icera_la_LIBADD = $(GUDEV_LDFLAGS)
+libmm_utils_icera_la_LIBADD = $(GUDEV_LIBS) $(MM_LIBS)
ICERA_COMMON_COMPILER_FLAGS = -I$(top_srcdir)/plugins/icera
ICERA_COMMON_LIBADD_FLAGS = $(builddir)/libmm-utils-icera.la
@@ -790,7 +832,8 @@ pkglib_LTLIBRARIES = \
libmm-plugin-sierra.la \
libmm-plugin-mbm.la \
libmm-plugin-via.la \
- libmm-plugin-telit.la
+ libmm-plugin-telit.la \
+ libmm-plugin-mtk.la
# Generic
@@ -825,6 +868,8 @@ libmm_plugin_huawei_la_SOURCES = \
huawei/mm-plugin-huawei.h \
huawei/mm-modem-helpers-huawei.c \
huawei/mm-modem-helpers-huawei.h \
+ huawei/mm-sim-huawei.c \
+ huawei/mm-sim-huawei.h \
huawei/mm-broadband-modem-huawei.c \
huawei/mm-broadband-modem-huawei.h \
huawei/mm-broadband-bearer-huawei.c \
@@ -841,7 +886,11 @@ test_modem_helpers_huawei_CPPFLAGS = \
-I$(top_srcdir)/plugins/huawei \
$(PLUGIN_COMMON_COMPILER_FLAGS)
-test_modem_helpers_huawei_LDFLAGS = $(top_builddir)/libmm-glib/libmm-glib.la
+test_modem_helpers_huawei_LDADD = \
+ $(top_builddir)/libmm-glib/libmm-glib.la \
+ $(top_builddir)/src/libmodem-helpers.la
+
+test_modem_helpers_huawei_LDFLAGS = $(PLUGIN_COMMON_LINKER_FLAGS)
# MBM
libmm_plugin_mbm_la_SOURCES = \
@@ -1069,6 +1118,8 @@ libmm_plugin_novatel_la_LDFLAGS = $(PLUGIN_COMMON_LINKER_FLAGS)
# Altair LTE modem
libmm_plugin_altair_lte_la_SOURCES = \
+ altair/mm-modem-helpers-altair-lte.c \
+ altair/mm-modem-helpers-altair-lte.h \
altair/mm-plugin-altair-lte.c \
altair/mm-plugin-altair-lte.h \
altair/mm-broadband-modem-altair-lte.c \
@@ -1078,6 +1129,17 @@ libmm_plugin_altair_lte_la_SOURCES = \
libmm_plugin_altair_lte_la_CPPFLAGS = $(PLUGIN_COMMON_COMPILER_FLAGS)
libmm_plugin_altair_lte_la_LDFLAGS = $(PLUGIN_COMMON_LINKER_FLAGS)
+test_modem_helpers_altair_lte_SOURCES = \
+ altair/mm-modem-helpers-altair-lte.c \
+ altair/mm-modem-helpers-altair-lte.h \
+ altair/tests/test-modem-helpers-altair-lte.c
+
+test_modem_helpers_altair_lte_CPPFLAGS = \
+ -I$(top_srcdir)/plugins/altair \
+ $(PLUGIN_COMMON_COMPILER_FLAGS)
+
+test_modem_helpers_altair_lte_LDADD = $(top_builddir)/libmm-glib/libmm-glib.la
+test_modem_helpers_altair_lte_LDFLAGS = $(PLUGIN_COMMON_LINKER_FLAGS)
# VIA modem
libmm_plugin_via_la_SOURCES = \
@@ -1098,6 +1160,16 @@ libmm_plugin_telit_la_SOURCES = \
libmm_plugin_telit_la_CPPFLAGS = $(PLUGIN_COMMON_COMPILER_FLAGS)
libmm_plugin_telit_la_LDFLAGS = $(PLUGIN_COMMON_LINKER_FLAGS)
+
+# MTK
+libmm_plugin_mtk_la_SOURCES = \
+ mtk/mm-plugin-mtk.c \
+ mtk/mm-plugin-mtk.h \
+ mtk/mm-broadband-modem-mtk.h \
+ mtk/mm-broadband-modem-mtk.c
+
+libmm_plugin_mtk_la_CPPFLAGS = $(PLUGIN_COMMON_COMPILER_FLAGS)
+libmm_plugin_mtk_la_LDFLAGS = $(PLUGIN_COMMON_LINKER_FLAGS)
all: all-am
.SUFFIXES:
@@ -1185,6 +1257,8 @@ altair/$(am__dirstamp):
altair/$(DEPDIR)/$(am__dirstamp):
@$(MKDIR_P) altair/$(DEPDIR)
@: > altair/$(DEPDIR)/$(am__dirstamp)
+altair/libmm_plugin_altair_lte_la-mm-modem-helpers-altair-lte.lo: \
+ altair/$(am__dirstamp) altair/$(DEPDIR)/$(am__dirstamp)
altair/libmm_plugin_altair_lte_la-mm-plugin-altair-lte.lo: \
altair/$(am__dirstamp) altair/$(DEPDIR)/$(am__dirstamp)
altair/libmm_plugin_altair_lte_la-mm-broadband-modem-altair-lte.lo: \
@@ -1271,6 +1345,8 @@ huawei/libmm_plugin_huawei_la-mm-plugin-huawei.lo: \
huawei/$(am__dirstamp) huawei/$(DEPDIR)/$(am__dirstamp)
huawei/libmm_plugin_huawei_la-mm-modem-helpers-huawei.lo: \
huawei/$(am__dirstamp) huawei/$(DEPDIR)/$(am__dirstamp)
+huawei/libmm_plugin_huawei_la-mm-sim-huawei.lo: \
+ huawei/$(am__dirstamp) huawei/$(DEPDIR)/$(am__dirstamp)
huawei/libmm_plugin_huawei_la-mm-broadband-modem-huawei.lo: \
huawei/$(am__dirstamp) huawei/$(DEPDIR)/$(am__dirstamp)
huawei/libmm_plugin_huawei_la-mm-broadband-bearer-huawei.lo: \
@@ -1351,6 +1427,19 @@ motorola/libmm_plugin_motorola_la-mm-broadband-modem-motorola.lo: \
libmm-plugin-motorola.la: $(libmm_plugin_motorola_la_OBJECTS) $(libmm_plugin_motorola_la_DEPENDENCIES) $(EXTRA_libmm_plugin_motorola_la_DEPENDENCIES)
$(AM_V_CCLD)$(libmm_plugin_motorola_la_LINK) -rpath $(pkglibdir) $(libmm_plugin_motorola_la_OBJECTS) $(libmm_plugin_motorola_la_LIBADD) $(LIBS)
+mtk/$(am__dirstamp):
+ @$(MKDIR_P) mtk
+ @: > mtk/$(am__dirstamp)
+mtk/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) mtk/$(DEPDIR)
+ @: > mtk/$(DEPDIR)/$(am__dirstamp)
+mtk/libmm_plugin_mtk_la-mm-plugin-mtk.lo: mtk/$(am__dirstamp) \
+ mtk/$(DEPDIR)/$(am__dirstamp)
+mtk/libmm_plugin_mtk_la-mm-broadband-modem-mtk.lo: \
+ mtk/$(am__dirstamp) mtk/$(DEPDIR)/$(am__dirstamp)
+
+libmm-plugin-mtk.la: $(libmm_plugin_mtk_la_OBJECTS) $(libmm_plugin_mtk_la_DEPENDENCIES) $(EXTRA_libmm_plugin_mtk_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libmm_plugin_mtk_la_LINK) -rpath $(pkglibdir) $(libmm_plugin_mtk_la_OBJECTS) $(libmm_plugin_mtk_la_LIBADD) $(LIBS)
nokia/$(am__dirstamp):
@$(MKDIR_P) nokia
@: > nokia/$(am__dirstamp)
@@ -1555,6 +1644,21 @@ clean-noinstPROGRAMS:
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
+altair/test_modem_helpers_altair_lte-mm-modem-helpers-altair-lte.$(OBJEXT): \
+ altair/$(am__dirstamp) altair/$(DEPDIR)/$(am__dirstamp)
+altair/tests/$(am__dirstamp):
+ @$(MKDIR_P) altair/tests
+ @: > altair/tests/$(am__dirstamp)
+altair/tests/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) altair/tests/$(DEPDIR)
+ @: > altair/tests/$(DEPDIR)/$(am__dirstamp)
+altair/tests/test_modem_helpers_altair_lte-test-modem-helpers-altair-lte.$(OBJEXT): \
+ altair/tests/$(am__dirstamp) \
+ altair/tests/$(DEPDIR)/$(am__dirstamp)
+
+test-modem-helpers-altair-lte$(EXEEXT): $(test_modem_helpers_altair_lte_OBJECTS) $(test_modem_helpers_altair_lte_DEPENDENCIES) $(EXTRA_test_modem_helpers_altair_lte_DEPENDENCIES)
+ @rm -f test-modem-helpers-altair-lte$(EXEEXT)
+ $(AM_V_CCLD)$(test_modem_helpers_altair_lte_LINK) $(test_modem_helpers_altair_lte_OBJECTS) $(test_modem_helpers_altair_lte_LDADD) $(LIBS)
huawei/test_modem_helpers_huawei-mm-modem-helpers-huawei.$(OBJEXT): \
huawei/$(am__dirstamp) huawei/$(DEPDIR)/$(am__dirstamp)
huawei/tests/$(am__dirstamp):
@@ -1575,6 +1679,7 @@ mostlyclean-compile:
-rm -f *.$(OBJEXT)
-rm -f altair/*.$(OBJEXT)
-rm -f altair/*.lo
+ -rm -f altair/tests/*.$(OBJEXT)
-rm -f anydata/*.$(OBJEXT)
-rm -f anydata/*.lo
-rm -f cinterion/*.$(OBJEXT)
@@ -1598,6 +1703,8 @@ mostlyclean-compile:
-rm -f mbm/*.lo
-rm -f motorola/*.$(OBJEXT)
-rm -f motorola/*.lo
+ -rm -f mtk/*.$(OBJEXT)
+ -rm -f mtk/*.lo
-rm -f nokia/*.$(OBJEXT)
-rm -f nokia/*.lo
-rm -f novatel/*.$(OBJEXT)
@@ -1628,7 +1735,10 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@altair/$(DEPDIR)/libmm_plugin_altair_lte_la-mm-broadband-bearer-altair-lte.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@altair/$(DEPDIR)/libmm_plugin_altair_lte_la-mm-broadband-modem-altair-lte.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@altair/$(DEPDIR)/libmm_plugin_altair_lte_la-mm-modem-helpers-altair-lte.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@altair/$(DEPDIR)/libmm_plugin_altair_lte_la-mm-plugin-altair-lte.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@altair/$(DEPDIR)/test_modem_helpers_altair_lte-mm-modem-helpers-altair-lte.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@altair/tests/$(DEPDIR)/test_modem_helpers_altair_lte-test-modem-helpers-altair-lte.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@anydata/$(DEPDIR)/libmm_plugin_anydata_la-mm-broadband-modem-anydata.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@anydata/$(DEPDIR)/libmm_plugin_anydata_la-mm-plugin-anydata.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@cinterion/$(DEPDIR)/libmm_plugin_cinterion_la-mm-broadband-modem-cinterion.Plo@am__quote@
@@ -1640,6 +1750,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@huawei/$(DEPDIR)/libmm_plugin_huawei_la-mm-broadband-modem-huawei.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@huawei/$(DEPDIR)/libmm_plugin_huawei_la-mm-modem-helpers-huawei.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@huawei/$(DEPDIR)/libmm_plugin_huawei_la-mm-plugin-huawei.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@huawei/$(DEPDIR)/libmm_plugin_huawei_la-mm-sim-huawei.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@huawei/$(DEPDIR)/test_modem_helpers_huawei-mm-modem-helpers-huawei.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@huawei/tests/$(DEPDIR)/test_modem_helpers_huawei-test-modem-helpers-huawei.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@icera/$(DEPDIR)/libmm_utils_icera_la-mm-broadband-bearer-icera.Plo@am__quote@
@@ -1658,6 +1769,8 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@mbm/$(DEPDIR)/libmm_plugin_mbm_la-mm-sim-mbm.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@motorola/$(DEPDIR)/libmm_plugin_motorola_la-mm-broadband-modem-motorola.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@motorola/$(DEPDIR)/libmm_plugin_motorola_la-mm-plugin-motorola.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@mtk/$(DEPDIR)/libmm_plugin_mtk_la-mm-broadband-modem-mtk.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@mtk/$(DEPDIR)/libmm_plugin_mtk_la-mm-plugin-mtk.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@nokia/$(DEPDIR)/libmm_plugin_nokia_icera_la-mm-plugin-nokia-icera.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@nokia/$(DEPDIR)/libmm_plugin_nokia_la-mm-broadband-modem-nokia.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@nokia/$(DEPDIR)/libmm_plugin_nokia_la-mm-plugin-nokia.Plo@am__quote@
@@ -1724,6 +1837,13 @@ distclean-compile:
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+altair/libmm_plugin_altair_lte_la-mm-modem-helpers-altair-lte.lo: altair/mm-modem-helpers-altair-lte.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_altair_lte_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT altair/libmm_plugin_altair_lte_la-mm-modem-helpers-altair-lte.lo -MD -MP -MF altair/$(DEPDIR)/libmm_plugin_altair_lte_la-mm-modem-helpers-altair-lte.Tpo -c -o altair/libmm_plugin_altair_lte_la-mm-modem-helpers-altair-lte.lo `test -f 'altair/mm-modem-helpers-altair-lte.c' || echo '$(srcdir)/'`altair/mm-modem-helpers-altair-lte.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) altair/$(DEPDIR)/libmm_plugin_altair_lte_la-mm-modem-helpers-altair-lte.Tpo altair/$(DEPDIR)/libmm_plugin_altair_lte_la-mm-modem-helpers-altair-lte.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='altair/mm-modem-helpers-altair-lte.c' object='altair/libmm_plugin_altair_lte_la-mm-modem-helpers-altair-lte.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_altair_lte_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o altair/libmm_plugin_altair_lte_la-mm-modem-helpers-altair-lte.lo `test -f 'altair/mm-modem-helpers-altair-lte.c' || echo '$(srcdir)/'`altair/mm-modem-helpers-altair-lte.c
+
altair/libmm_plugin_altair_lte_la-mm-plugin-altair-lte.lo: altair/mm-plugin-altair-lte.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_altair_lte_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT altair/libmm_plugin_altair_lte_la-mm-plugin-altair-lte.lo -MD -MP -MF altair/$(DEPDIR)/libmm_plugin_altair_lte_la-mm-plugin-altair-lte.Tpo -c -o altair/libmm_plugin_altair_lte_la-mm-plugin-altair-lte.lo `test -f 'altair/mm-plugin-altair-lte.c' || echo '$(srcdir)/'`altair/mm-plugin-altair-lte.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) altair/$(DEPDIR)/libmm_plugin_altair_lte_la-mm-plugin-altair-lte.Tpo altair/$(DEPDIR)/libmm_plugin_altair_lte_la-mm-plugin-altair-lte.Plo
@@ -1836,6 +1956,13 @@ huawei/libmm_plugin_huawei_la-mm-modem-helpers-huawei.lo: huawei/mm-modem-helper
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_huawei_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o huawei/libmm_plugin_huawei_la-mm-modem-helpers-huawei.lo `test -f 'huawei/mm-modem-helpers-huawei.c' || echo '$(srcdir)/'`huawei/mm-modem-helpers-huawei.c
+huawei/libmm_plugin_huawei_la-mm-sim-huawei.lo: huawei/mm-sim-huawei.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_huawei_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT huawei/libmm_plugin_huawei_la-mm-sim-huawei.lo -MD -MP -MF huawei/$(DEPDIR)/libmm_plugin_huawei_la-mm-sim-huawei.Tpo -c -o huawei/libmm_plugin_huawei_la-mm-sim-huawei.lo `test -f 'huawei/mm-sim-huawei.c' || echo '$(srcdir)/'`huawei/mm-sim-huawei.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) huawei/$(DEPDIR)/libmm_plugin_huawei_la-mm-sim-huawei.Tpo huawei/$(DEPDIR)/libmm_plugin_huawei_la-mm-sim-huawei.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='huawei/mm-sim-huawei.c' object='huawei/libmm_plugin_huawei_la-mm-sim-huawei.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_huawei_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o huawei/libmm_plugin_huawei_la-mm-sim-huawei.lo `test -f 'huawei/mm-sim-huawei.c' || echo '$(srcdir)/'`huawei/mm-sim-huawei.c
+
huawei/libmm_plugin_huawei_la-mm-broadband-modem-huawei.lo: huawei/mm-broadband-modem-huawei.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_huawei_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT huawei/libmm_plugin_huawei_la-mm-broadband-modem-huawei.lo -MD -MP -MF huawei/$(DEPDIR)/libmm_plugin_huawei_la-mm-broadband-modem-huawei.Tpo -c -o huawei/libmm_plugin_huawei_la-mm-broadband-modem-huawei.lo `test -f 'huawei/mm-broadband-modem-huawei.c' || echo '$(srcdir)/'`huawei/mm-broadband-modem-huawei.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) huawei/$(DEPDIR)/libmm_plugin_huawei_la-mm-broadband-modem-huawei.Tpo huawei/$(DEPDIR)/libmm_plugin_huawei_la-mm-broadband-modem-huawei.Plo
@@ -1948,6 +2075,20 @@ motorola/libmm_plugin_motorola_la-mm-broadband-modem-motorola.lo: motorola/mm-br
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_motorola_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o motorola/libmm_plugin_motorola_la-mm-broadband-modem-motorola.lo `test -f 'motorola/mm-broadband-modem-motorola.c' || echo '$(srcdir)/'`motorola/mm-broadband-modem-motorola.c
+mtk/libmm_plugin_mtk_la-mm-plugin-mtk.lo: mtk/mm-plugin-mtk.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_mtk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mtk/libmm_plugin_mtk_la-mm-plugin-mtk.lo -MD -MP -MF mtk/$(DEPDIR)/libmm_plugin_mtk_la-mm-plugin-mtk.Tpo -c -o mtk/libmm_plugin_mtk_la-mm-plugin-mtk.lo `test -f 'mtk/mm-plugin-mtk.c' || echo '$(srcdir)/'`mtk/mm-plugin-mtk.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) mtk/$(DEPDIR)/libmm_plugin_mtk_la-mm-plugin-mtk.Tpo mtk/$(DEPDIR)/libmm_plugin_mtk_la-mm-plugin-mtk.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mtk/mm-plugin-mtk.c' object='mtk/libmm_plugin_mtk_la-mm-plugin-mtk.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_mtk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mtk/libmm_plugin_mtk_la-mm-plugin-mtk.lo `test -f 'mtk/mm-plugin-mtk.c' || echo '$(srcdir)/'`mtk/mm-plugin-mtk.c
+
+mtk/libmm_plugin_mtk_la-mm-broadband-modem-mtk.lo: mtk/mm-broadband-modem-mtk.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_mtk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mtk/libmm_plugin_mtk_la-mm-broadband-modem-mtk.lo -MD -MP -MF mtk/$(DEPDIR)/libmm_plugin_mtk_la-mm-broadband-modem-mtk.Tpo -c -o mtk/libmm_plugin_mtk_la-mm-broadband-modem-mtk.lo `test -f 'mtk/mm-broadband-modem-mtk.c' || echo '$(srcdir)/'`mtk/mm-broadband-modem-mtk.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) mtk/$(DEPDIR)/libmm_plugin_mtk_la-mm-broadband-modem-mtk.Tpo mtk/$(DEPDIR)/libmm_plugin_mtk_la-mm-broadband-modem-mtk.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mtk/mm-broadband-modem-mtk.c' object='mtk/libmm_plugin_mtk_la-mm-broadband-modem-mtk.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_mtk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mtk/libmm_plugin_mtk_la-mm-broadband-modem-mtk.lo `test -f 'mtk/mm-broadband-modem-mtk.c' || echo '$(srcdir)/'`mtk/mm-broadband-modem-mtk.c
+
nokia/libmm_plugin_nokia_icera_la-mm-plugin-nokia-icera.lo: nokia/mm-plugin-nokia-icera.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_nokia_icera_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nokia/libmm_plugin_nokia_icera_la-mm-plugin-nokia-icera.lo -MD -MP -MF nokia/$(DEPDIR)/libmm_plugin_nokia_icera_la-mm-plugin-nokia-icera.Tpo -c -o nokia/libmm_plugin_nokia_icera_la-mm-plugin-nokia-icera.lo `test -f 'nokia/mm-plugin-nokia-icera.c' || echo '$(srcdir)/'`nokia/mm-plugin-nokia-icera.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) nokia/$(DEPDIR)/libmm_plugin_nokia_icera_la-mm-plugin-nokia-icera.Tpo nokia/$(DEPDIR)/libmm_plugin_nokia_icera_la-mm-plugin-nokia-icera.Plo
@@ -2221,6 +2362,34 @@ icera/libmm_utils_icera_la-mm-broadband-bearer-icera.lo: icera/mm-broadband-bear
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_utils_icera_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o icera/libmm_utils_icera_la-mm-broadband-bearer-icera.lo `test -f 'icera/mm-broadband-bearer-icera.c' || echo '$(srcdir)/'`icera/mm-broadband-bearer-icera.c
+altair/test_modem_helpers_altair_lte-mm-modem-helpers-altair-lte.o: altair/mm-modem-helpers-altair-lte.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_modem_helpers_altair_lte_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT altair/test_modem_helpers_altair_lte-mm-modem-helpers-altair-lte.o -MD -MP -MF altair/$(DEPDIR)/test_modem_helpers_altair_lte-mm-modem-helpers-altair-lte.Tpo -c -o altair/test_modem_helpers_altair_lte-mm-modem-helpers-altair-lte.o `test -f 'altair/mm-modem-helpers-altair-lte.c' || echo '$(srcdir)/'`altair/mm-modem-helpers-altair-lte.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) altair/$(DEPDIR)/test_modem_helpers_altair_lte-mm-modem-helpers-altair-lte.Tpo altair/$(DEPDIR)/test_modem_helpers_altair_lte-mm-modem-helpers-altair-lte.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='altair/mm-modem-helpers-altair-lte.c' object='altair/test_modem_helpers_altair_lte-mm-modem-helpers-altair-lte.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_modem_helpers_altair_lte_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o altair/test_modem_helpers_altair_lte-mm-modem-helpers-altair-lte.o `test -f 'altair/mm-modem-helpers-altair-lte.c' || echo '$(srcdir)/'`altair/mm-modem-helpers-altair-lte.c
+
+altair/test_modem_helpers_altair_lte-mm-modem-helpers-altair-lte.obj: altair/mm-modem-helpers-altair-lte.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_modem_helpers_altair_lte_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT altair/test_modem_helpers_altair_lte-mm-modem-helpers-altair-lte.obj -MD -MP -MF altair/$(DEPDIR)/test_modem_helpers_altair_lte-mm-modem-helpers-altair-lte.Tpo -c -o altair/test_modem_helpers_altair_lte-mm-modem-helpers-altair-lte.obj `if test -f 'altair/mm-modem-helpers-altair-lte.c'; then $(CYGPATH_W) 'altair/mm-modem-helpers-altair-lte.c'; else $(CYGPATH_W) '$(srcdir)/altair/mm-modem-helpers-altair-lte.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) altair/$(DEPDIR)/test_modem_helpers_altair_lte-mm-modem-helpers-altair-lte.Tpo altair/$(DEPDIR)/test_modem_helpers_altair_lte-mm-modem-helpers-altair-lte.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='altair/mm-modem-helpers-altair-lte.c' object='altair/test_modem_helpers_altair_lte-mm-modem-helpers-altair-lte.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_modem_helpers_altair_lte_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o altair/test_modem_helpers_altair_lte-mm-modem-helpers-altair-lte.obj `if test -f 'altair/mm-modem-helpers-altair-lte.c'; then $(CYGPATH_W) 'altair/mm-modem-helpers-altair-lte.c'; else $(CYGPATH_W) '$(srcdir)/altair/mm-modem-helpers-altair-lte.c'; fi`
+
+altair/tests/test_modem_helpers_altair_lte-test-modem-helpers-altair-lte.o: altair/tests/test-modem-helpers-altair-lte.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_modem_helpers_altair_lte_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT altair/tests/test_modem_helpers_altair_lte-test-modem-helpers-altair-lte.o -MD -MP -MF altair/tests/$(DEPDIR)/test_modem_helpers_altair_lte-test-modem-helpers-altair-lte.Tpo -c -o altair/tests/test_modem_helpers_altair_lte-test-modem-helpers-altair-lte.o `test -f 'altair/tests/test-modem-helpers-altair-lte.c' || echo '$(srcdir)/'`altair/tests/test-modem-helpers-altair-lte.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) altair/tests/$(DEPDIR)/test_modem_helpers_altair_lte-test-modem-helpers-altair-lte.Tpo altair/tests/$(DEPDIR)/test_modem_helpers_altair_lte-test-modem-helpers-altair-lte.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='altair/tests/test-modem-helpers-altair-lte.c' object='altair/tests/test_modem_helpers_altair_lte-test-modem-helpers-altair-lte.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_modem_helpers_altair_lte_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o altair/tests/test_modem_helpers_altair_lte-test-modem-helpers-altair-lte.o `test -f 'altair/tests/test-modem-helpers-altair-lte.c' || echo '$(srcdir)/'`altair/tests/test-modem-helpers-altair-lte.c
+
+altair/tests/test_modem_helpers_altair_lte-test-modem-helpers-altair-lte.obj: altair/tests/test-modem-helpers-altair-lte.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_modem_helpers_altair_lte_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT altair/tests/test_modem_helpers_altair_lte-test-modem-helpers-altair-lte.obj -MD -MP -MF altair/tests/$(DEPDIR)/test_modem_helpers_altair_lte-test-modem-helpers-altair-lte.Tpo -c -o altair/tests/test_modem_helpers_altair_lte-test-modem-helpers-altair-lte.obj `if test -f 'altair/tests/test-modem-helpers-altair-lte.c'; then $(CYGPATH_W) 'altair/tests/test-modem-helpers-altair-lte.c'; else $(CYGPATH_W) '$(srcdir)/altair/tests/test-modem-helpers-altair-lte.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) altair/tests/$(DEPDIR)/test_modem_helpers_altair_lte-test-modem-helpers-altair-lte.Tpo altair/tests/$(DEPDIR)/test_modem_helpers_altair_lte-test-modem-helpers-altair-lte.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='altair/tests/test-modem-helpers-altair-lte.c' object='altair/tests/test_modem_helpers_altair_lte-test-modem-helpers-altair-lte.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_modem_helpers_altair_lte_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o altair/tests/test_modem_helpers_altair_lte-test-modem-helpers-altair-lte.obj `if test -f 'altair/tests/test-modem-helpers-altair-lte.c'; then $(CYGPATH_W) 'altair/tests/test-modem-helpers-altair-lte.c'; else $(CYGPATH_W) '$(srcdir)/altair/tests/test-modem-helpers-altair-lte.c'; fi`
+
huawei/test_modem_helpers_huawei-mm-modem-helpers-huawei.o: huawei/mm-modem-helpers-huawei.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_modem_helpers_huawei_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT huawei/test_modem_helpers_huawei-mm-modem-helpers-huawei.o -MD -MP -MF huawei/$(DEPDIR)/test_modem_helpers_huawei-mm-modem-helpers-huawei.Tpo -c -o huawei/test_modem_helpers_huawei-mm-modem-helpers-huawei.o `test -f 'huawei/mm-modem-helpers-huawei.c' || echo '$(srcdir)/'`huawei/mm-modem-helpers-huawei.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) huawei/$(DEPDIR)/test_modem_helpers_huawei-mm-modem-helpers-huawei.Tpo huawei/$(DEPDIR)/test_modem_helpers_huawei-mm-modem-helpers-huawei.Po
@@ -2266,6 +2435,7 @@ clean-libtool:
-rm -rf longcheer/.libs longcheer/_libs
-rm -rf mbm/.libs mbm/_libs
-rm -rf motorola/.libs motorola/_libs
+ -rm -rf mtk/.libs mtk/_libs
-rm -rf nokia/.libs nokia/_libs
-rm -rf novatel/.libs novatel/_libs
-rm -rf option/.libs option/_libs
@@ -2418,6 +2588,8 @@ distclean-generic:
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-rm -f altair/$(DEPDIR)/$(am__dirstamp)
-rm -f altair/$(am__dirstamp)
+ -rm -f altair/tests/$(DEPDIR)/$(am__dirstamp)
+ -rm -f altair/tests/$(am__dirstamp)
-rm -f anydata/$(DEPDIR)/$(am__dirstamp)
-rm -f anydata/$(am__dirstamp)
-rm -f cinterion/$(DEPDIR)/$(am__dirstamp)
@@ -2442,6 +2614,8 @@ distclean-generic:
-rm -f mbm/$(am__dirstamp)
-rm -f motorola/$(DEPDIR)/$(am__dirstamp)
-rm -f motorola/$(am__dirstamp)
+ -rm -f mtk/$(DEPDIR)/$(am__dirstamp)
+ -rm -f mtk/$(am__dirstamp)
-rm -f nokia/$(DEPDIR)/$(am__dirstamp)
-rm -f nokia/$(am__dirstamp)
-rm -f novatel/$(DEPDIR)/$(am__dirstamp)
@@ -2476,7 +2650,7 @@ clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
clean-noinstPROGRAMS clean-pkglibLTLIBRARIES mostlyclean-am
distclean: distclean-am
- -rm -rf altair/$(DEPDIR) anydata/$(DEPDIR) cinterion/$(DEPDIR) generic/$(DEPDIR) gobi/$(DEPDIR) huawei/$(DEPDIR) huawei/tests/$(DEPDIR) icera/$(DEPDIR) iridium/$(DEPDIR) linktop/$(DEPDIR) longcheer/$(DEPDIR) mbm/$(DEPDIR) motorola/$(DEPDIR) nokia/$(DEPDIR) novatel/$(DEPDIR) option/$(DEPDIR) pantech/$(DEPDIR) samsung/$(DEPDIR) sierra/$(DEPDIR) simtech/$(DEPDIR) telit/$(DEPDIR) via/$(DEPDIR) wavecom/$(DEPDIR) x22x/$(DEPDIR) zte/$(DEPDIR)
+ -rm -rf altair/$(DEPDIR) altair/tests/$(DEPDIR) anydata/$(DEPDIR) cinterion/$(DEPDIR) generic/$(DEPDIR) gobi/$(DEPDIR) huawei/$(DEPDIR) huawei/tests/$(DEPDIR) icera/$(DEPDIR) iridium/$(DEPDIR) linktop/$(DEPDIR) longcheer/$(DEPDIR) mbm/$(DEPDIR) motorola/$(DEPDIR) mtk/$(DEPDIR) nokia/$(DEPDIR) novatel/$(DEPDIR) option/$(DEPDIR) pantech/$(DEPDIR) samsung/$(DEPDIR) sierra/$(DEPDIR) simtech/$(DEPDIR) telit/$(DEPDIR) via/$(DEPDIR) wavecom/$(DEPDIR) x22x/$(DEPDIR) zte/$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
@@ -2522,7 +2696,7 @@ install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
- -rm -rf altair/$(DEPDIR) anydata/$(DEPDIR) cinterion/$(DEPDIR) generic/$(DEPDIR) gobi/$(DEPDIR) huawei/$(DEPDIR) huawei/tests/$(DEPDIR) icera/$(DEPDIR) iridium/$(DEPDIR) linktop/$(DEPDIR) longcheer/$(DEPDIR) mbm/$(DEPDIR) motorola/$(DEPDIR) nokia/$(DEPDIR) novatel/$(DEPDIR) option/$(DEPDIR) pantech/$(DEPDIR) samsung/$(DEPDIR) sierra/$(DEPDIR) simtech/$(DEPDIR) telit/$(DEPDIR) via/$(DEPDIR) wavecom/$(DEPDIR) x22x/$(DEPDIR) zte/$(DEPDIR)
+ -rm -rf altair/$(DEPDIR) altair/tests/$(DEPDIR) anydata/$(DEPDIR) cinterion/$(DEPDIR) generic/$(DEPDIR) gobi/$(DEPDIR) huawei/$(DEPDIR) huawei/tests/$(DEPDIR) icera/$(DEPDIR) iridium/$(DEPDIR) linktop/$(DEPDIR) longcheer/$(DEPDIR) mbm/$(DEPDIR) motorola/$(DEPDIR) mtk/$(DEPDIR) nokia/$(DEPDIR) novatel/$(DEPDIR) option/$(DEPDIR) pantech/$(DEPDIR) samsung/$(DEPDIR) sierra/$(DEPDIR) simtech/$(DEPDIR) telit/$(DEPDIR) via/$(DEPDIR) wavecom/$(DEPDIR) x22x/$(DEPDIR) zte/$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
diff --git a/plugins/altair/mm-broadband-bearer-altair-lte.c b/plugins/altair/mm-broadband-bearer-altair-lte.c
index 85432b9..f1ba73d 100644
--- a/plugins/altair/mm-broadband-bearer-altair-lte.c
+++ b/plugins/altair/mm-broadband-bearer-altair-lte.c
@@ -29,6 +29,7 @@
#include "mm-base-modem-at.h"
#include "mm-broadband-bearer-altair-lte.h"
+#include "mm-iface-modem-3gpp.h"
#include "mm-log.h"
#include "mm-modem-helpers.h"
@@ -64,7 +65,7 @@ detailed_connect_context_new (MMBroadbandBearer *self,
ctx->self = g_object_ref (self);
ctx->modem = MM_BASE_MODEM (g_object_ref (modem));
ctx->primary = g_object_ref (primary);
- ctx->data = data;
+ ctx->data = g_object_ref (data);
/* NOTE:
* We don't currently support cancelling AT commands, so we'll just check
* whether the operation is to be cancelled at each step. */
@@ -82,8 +83,7 @@ detailed_connect_context_complete_and_free (DetailedConnectContext *ctx)
g_simple_async_result_complete_in_idle (ctx->result);
g_object_unref (ctx->result);
g_object_unref (ctx->cancellable);
- if (ctx->data)
- g_object_unref (ctx->data);
+ g_object_unref (ctx->data);
g_object_unref (ctx->primary);
g_object_unref (ctx->modem);
g_object_unref (ctx->self);
@@ -110,9 +110,7 @@ connect_3gpp_connect_ready (MMBaseModem *modem,
GError *error = NULL;
MMBearerIpConfig *config;
- result = mm_base_modem_at_command_finish (MM_BASE_MODEM (modem),
- res,
- &error);
+ result = mm_base_modem_at_command_full_finish (modem, res, &error);
if (!result) {
mm_warn ("connect failed: %s", error->message);
g_simple_async_result_take_error (ctx->result, error);
@@ -147,9 +145,7 @@ connect_3gpp_apnsettings_ready (MMBaseModem *modem,
const gchar *result;
GError *error = NULL;
- result = mm_base_modem_at_command_finish (MM_BASE_MODEM (modem),
- res,
- &error);
+ result = mm_base_modem_at_command_full_finish (modem, res, &error);
if (!result) {
mm_warn ("setting APN failed: %s", error->message);
g_simple_async_result_take_error (ctx->result, error);
@@ -158,17 +154,19 @@ connect_3gpp_apnsettings_ready (MMBaseModem *modem,
}
mm_dbg ("APN set - connecting bearer");
- mm_base_modem_at_command (
- ctx->modem,
- "%DPDNACT=1",
- 10, /* timeout */
- FALSE, /* allow_cached */
- (GAsyncReadyCallback)connect_3gpp_connect_ready, /* callback */
- ctx); /* user_data */
+ mm_base_modem_at_command_full (ctx->modem,
+ ctx->primary,
+ "%DPDNACT=1",
+ 20, /* timeout */
+ FALSE, /* allow_cached */
+ FALSE, /* is_raw */
+ ctx->cancellable,
+ (GAsyncReadyCallback)connect_3gpp_connect_ready,
+ ctx); /* user_data */
}
static void
-connect_3gpp (MMBroadbandBearer *bearer,
+connect_3gpp (MMBroadbandBearer *self,
MMBroadbandModem *modem,
MMAtSerialPort *primary,
MMAtSerialPort *secondary,
@@ -179,39 +177,57 @@ connect_3gpp (MMBroadbandBearer *bearer,
DetailedConnectContext *ctx;
gchar *command, *apn;
MMBearerProperties *config;
+ MMModem3gppRegistrationState registration_state;
+ MMPort *data;
- ctx = detailed_connect_context_new (
- bearer,
- modem,
- primary,
- /* Get a 'net' data port */
- mm_base_modem_get_best_data_port (MM_BASE_MODEM (modem),
- MM_PORT_TYPE_NET),
- cancellable,
- callback,
- user_data);
-
- if (!ctx->data) {
- g_simple_async_result_set_error (
- ctx->result,
- MM_CORE_ERROR,
- MM_CORE_ERROR_CONNECTED,
- "Couldn't connect: no available net port available");
- detailed_connect_context_complete_and_free (ctx);
+ /* There is a known firmware bug that can leave the modem unusable if a
+ * connect attempt is made when out of coverage. So, fail without trying.
+ */
+ g_object_get (modem,
+ MM_IFACE_MODEM_3GPP_REGISTRATION_STATE, &registration_state,
+ NULL);
+ if (registration_state == MM_MODEM_3GPP_REGISTRATION_STATE_UNKNOWN) {
+ g_simple_async_report_error_in_idle (G_OBJECT (self),
+ callback,
+ user_data,
+ MM_MOBILE_EQUIPMENT_ERROR,
+ MM_MOBILE_EQUIPMENT_ERROR_NO_NETWORK,
+ "Out of coverage, can't connect.");
return;
}
- config = mm_bearer_peek_config (MM_BEARER (bearer));
+ data = mm_base_modem_peek_best_data_port (MM_BASE_MODEM (modem), MM_PORT_TYPE_NET);
+ if (!data) {
+ g_simple_async_report_error_in_idle (G_OBJECT (self),
+ callback,
+ user_data,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_CONNECTED,
+ "Couldn't connect: no available net port available");
+ return;
+ }
+
+ ctx = detailed_connect_context_new (self,
+ modem,
+ primary,
+ data,
+ cancellable,
+ callback,
+ user_data);
+
+ config = mm_bearer_peek_config (MM_BEARER (self));
apn = mm_at_serial_port_quote_string (mm_bearer_properties_get_apn (config));
command = g_strdup_printf ("%%APNN=%s",apn);
g_free (apn);
- mm_base_modem_at_command (
- ctx->modem,
- command,
- 6, /* timeout */
- FALSE, /* allow_cached */
- (GAsyncReadyCallback)connect_3gpp_apnsettings_ready,
- ctx); /* user_data */
+ mm_base_modem_at_command_full (ctx->modem,
+ ctx->primary,
+ command,
+ 10, /* timeout */
+ FALSE, /* allow_cached */
+ FALSE, /* is_raw */
+ ctx->cancellable,
+ (GAsyncReadyCallback)connect_3gpp_apnsettings_ready,
+ ctx); /* user_data */
g_free (command);
}
@@ -222,7 +238,6 @@ typedef struct {
MMBroadbandBearer *self;
MMBaseModem *modem;
MMAtSerialPort *primary;
- MMAtSerialPort *secondary;
MMPort *data;
GSimpleAsyncResult *result;
} DetailedDisconnectContext;
@@ -231,7 +246,6 @@ static DetailedDisconnectContext *
detailed_disconnect_context_new (MMBroadbandBearer *self,
MMBroadbandModem *modem,
MMAtSerialPort *primary,
- MMAtSerialPort *secondary,
MMPort *data,
GAsyncReadyCallback callback,
gpointer user_data)
@@ -242,7 +256,6 @@ detailed_disconnect_context_new (MMBroadbandBearer *self,
ctx->self = g_object_ref (self);
ctx->modem = MM_BASE_MODEM (g_object_ref (modem));
ctx->primary = g_object_ref (primary);
- ctx->secondary = (secondary ? g_object_ref (secondary) : NULL);
ctx->data = g_object_ref (data);
ctx->result = g_simple_async_result_new (G_OBJECT (self),
callback,
@@ -265,8 +278,6 @@ detailed_disconnect_context_complete_and_free (DetailedDisconnectContext *ctx)
g_simple_async_result_complete_in_idle (ctx->result);
g_object_unref (ctx->result);
g_object_unref (ctx->data);
- if (ctx->secondary)
- g_object_unref (ctx->secondary);
g_object_unref (ctx->primary);
g_object_unref (ctx->modem);
g_object_unref (ctx->self);
@@ -282,9 +293,7 @@ disconnect_3gpp_check_status (MMBaseModem *modem,
const gchar *result;
GError *error = NULL;
- result = mm_base_modem_at_command_finish (MM_BASE_MODEM (modem),
- res,
- &error);
+ result = mm_base_modem_at_command_full_finish (modem, res, &error);
if (!result) {
mm_warn ("Disconnect failed: %s", error->message);
g_simple_async_result_take_error (ctx->result, error);
@@ -306,17 +315,35 @@ disconnect_3gpp (MMBroadbandBearer *self,
gpointer user_data)
{
DetailedDisconnectContext *ctx;
+ MMModem3gppRegistrationState registration_state;
+
+ /* There is a known firmware bug that can leave the modem unusable if a
+ * disconnect attempt is made when out of coverage. So, fail without trying.
+ */
+ g_object_get (modem,
+ MM_IFACE_MODEM_3GPP_REGISTRATION_STATE, &registration_state,
+ NULL);
+ if (registration_state == MM_MODEM_3GPP_REGISTRATION_STATE_UNKNOWN) {
+ g_simple_async_report_error_in_idle (G_OBJECT (self),
+ callback,
+ user_data,
+ MM_MOBILE_EQUIPMENT_ERROR,
+ MM_MOBILE_EQUIPMENT_ERROR_NO_NETWORK,
+ "Out of coverage, can't disconnect.");
+ return;
+ }
- ctx = detailed_disconnect_context_new (self, modem, primary, secondary,
- data, callback, user_data);
-
- mm_base_modem_at_command (
- ctx->modem,
- "%DPDNACT=0",
- 10, /* timeout */
- FALSE, /* allow_cached */
- (GAsyncReadyCallback)disconnect_3gpp_check_status,
- ctx); /* user_data */
+ ctx = detailed_disconnect_context_new (self, modem, primary, data, callback, user_data);
+
+ mm_base_modem_at_command_full (ctx->modem,
+ ctx->primary,
+ "%DPDNACT=0",
+ 20, /* timeout */
+ FALSE, /* allow_cached */
+ FALSE, /* is_raw */
+ NULL, /* cancellable */
+ (GAsyncReadyCallback)disconnect_3gpp_check_status,
+ ctx); /* user_data */
}
/*****************************************************************************/
diff --git a/plugins/altair/mm-broadband-modem-altair-lte.c b/plugins/altair/mm-broadband-modem-altair-lte.c
index 3c5ef6c..3dca860 100644
--- a/plugins/altair/mm-broadband-modem-altair-lte.c
+++ b/plugins/altair/mm-broadband-modem-altair-lte.c
@@ -24,6 +24,9 @@
#include <ctype.h>
#include "ModemManager.h"
+#define _LIBMM_INSIDE_MM
+#include <libmm-glib.h>
+
#include "mm-base-modem-at.h"
#include "mm-broadband-bearer-altair-lte.h"
#include "mm-broadband-modem-altair-lte.h"
@@ -34,6 +37,7 @@
#include "mm-iface-modem-messaging.h"
#include "mm-log.h"
#include "mm-modem-helpers.h"
+#include "mm-modem-helpers-altair-lte.h"
#include "mm-serial-parsers.h"
#include "mm-bearer-list.h"
@@ -49,8 +53,16 @@ G_DEFINE_TYPE_EXTENDED (MMBroadbandModemAltairLte, mm_broadband_modem_altair_lte
G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_MESSAGING, iface_modem_messaging_init));
struct _MMBroadbandModemAltairLtePrivate {
+ /* Regex for SIM refresh notifications */
+ GRegex *sim_refresh_regex;
+ /* Timer that goes off 10s after the last SIM refresh notification.
+ * This indicates that there are no more SIM refreshes and we should
+ * reregister the device.*/
+ guint sim_refresh_timer_id;
/* Regex for bearer related notifications */
GRegex *statcm_regex;
+ /* Regex for PCO notifications */
+ GRegex *pcoinfo_regex;
};
static MMIfaceModem3gpp *iface_modem_3gpp_parent;
@@ -74,7 +86,7 @@ modem_power_down (MMIfaceModem *self,
{
mm_base_modem_at_command (MM_BASE_MODEM (self),
"+CFUN=4",
- 6,
+ 20,
FALSE,
callback,
user_data);
@@ -162,7 +174,7 @@ load_unlock_retries_ready (MMBaseModem *self,
GError *error = NULL;
gint pin1, puk1, pin2, puk2;
- response = mm_base_modem_at_command_finish (MM_BASE_MODEM (self), res, &error);
+ response = mm_base_modem_at_command_finish (self, res, &error);
if (!response) {
mm_dbg ("Couldn't query unlock retries: '%s'", error->message);
g_simple_async_result_take_error (operation_result, error);
@@ -465,6 +477,116 @@ reset (MMIfaceModem *self,
}
/*****************************************************************************/
+/* Run registration checks (3GPP interface) */
+
+static gboolean
+modem_3gpp_run_registration_checks_finish (MMIfaceModem3gpp *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ return !g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res),
+ error);
+}
+
+static void
+run_registration_checks_subscription_state_ready (MMIfaceModem3gpp *self,
+ GAsyncResult *res,
+ GSimpleAsyncResult *operation_result)
+{
+ GError *error = NULL;
+ const gchar *at_response;
+ gchar *ceer_response;
+
+ /* If the AT+CEER command fails, or we fail to obtain a valid result, we
+ * ignore the error. This allows the registration attempt to continue.
+ * So, the async response from this function is *always* True.
+ */
+ g_simple_async_result_set_op_res_gboolean (operation_result, TRUE);
+
+ at_response = mm_base_modem_at_command_finish (MM_BASE_MODEM (self), res, &error);
+ if (!at_response) {
+ g_assert (error);
+ mm_warn ("AT+CEER failed: %s", error->message);
+ g_error_free (error);
+ g_simple_async_result_complete (operation_result);
+ g_object_unref (operation_result);
+ return;
+ }
+
+ ceer_response = mm_altair_parse_ceer_response (at_response, &error);
+ if (!ceer_response) {
+ g_assert (error);
+ mm_warn ("Failed to parse AT+CEER response: %s", error->message);
+ g_error_free (error);
+ g_simple_async_result_complete (operation_result);
+ g_object_unref (operation_result);
+ return;
+ }
+
+ if (g_strcmp0 ("EPS_AND_NON_EPS_SERVICES_NOT_ALLOWED", ceer_response) == 0) {
+ mm_dbg ("Registration failed due to unprovisioned SIM.");
+ mm_iface_modem_3gpp_update_subscription_state (self, MM_MODEM_3GPP_SUBSCRIPTION_STATE_UNPROVISIONED);
+ } else {
+ mm_dbg ("Failed to find a better reason for registration failure.");
+ }
+
+ g_simple_async_result_complete (operation_result);
+ g_object_unref (operation_result);
+ g_free (ceer_response);
+}
+
+static void
+run_registration_checks_ready (MMIfaceModem3gpp *self,
+ GAsyncResult *res,
+ GSimpleAsyncResult *operation_result)
+{
+ GError *error = NULL;
+ gboolean success;
+
+ g_assert (iface_modem_3gpp_parent->run_registration_checks_finish);
+ success = iface_modem_3gpp_parent->run_registration_checks_finish (self, res, &error);
+ if (!success) {
+ g_assert (error);
+ g_simple_async_result_take_error (operation_result, error);
+ g_simple_async_result_complete (operation_result);
+ g_object_unref (operation_result);
+ return;
+ }
+
+ mm_dbg ("Checking if SIM is unprovisioned (ignoring registration state).");
+ mm_base_modem_at_command (MM_BASE_MODEM (self),
+ "+CEER",
+ 6,
+ FALSE,
+ (GAsyncReadyCallback) run_registration_checks_subscription_state_ready,
+ operation_result);
+}
+
+static void
+modem_3gpp_run_registration_checks (MMIfaceModem3gpp *self,
+ gboolean cs_supported,
+ gboolean ps_supported,
+ gboolean eps_supported,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ GSimpleAsyncResult *operation_result;
+
+ operation_result = g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ modem_3gpp_run_registration_checks);
+
+ g_assert (iface_modem_3gpp_parent->run_registration_checks);
+ iface_modem_3gpp_parent->run_registration_checks (self,
+ cs_supported,
+ ps_supported,
+ eps_supported,
+ (GAsyncReadyCallback) run_registration_checks_ready,
+ operation_result);
+}
+
+/*****************************************************************************/
/* Register in network (3GPP interface) */
static void
@@ -505,7 +627,101 @@ modem_3gpp_register_in_network_finish (MMIfaceModem3gpp *self,
}
/*****************************************************************************/
-/* Setup/Cleanup unsolicited events (3GPP interface) */
+/* SIMREFRESH unsolicited event handler */
+
+static void
+altair_reregister_ready (MMBaseModem *self,
+ GAsyncResult *res,
+ gpointer user_data)
+{
+ if (!mm_base_modem_at_command_finish (self, res, NULL)) {
+ mm_dbg ("Failed to reregister modem");
+ } else {
+ mm_dbg ("Modem reregistered successfully");
+ }
+}
+
+static void
+altair_deregister_ready (MMBaseModem *self,
+ GAsyncResult *res,
+ gpointer user_data)
+{
+ if (!mm_base_modem_at_command_finish (self, res, NULL)) {
+ mm_dbg ("Deregister modem failed");
+ return;
+ }
+
+ mm_dbg ("Deregistered modem, now reregistering");
+
+ /* Register */
+ mm_base_modem_at_command (
+ self,
+ "%CMATT=1",
+ 10,
+ FALSE, /* allow_cached */
+ (GAsyncReadyCallback)altair_reregister_ready,
+ NULL);
+}
+
+static void
+altair_load_own_numbers_ready (MMIfaceModem *iface_modem,
+ GAsyncResult *res,
+ MMBroadbandModemAltairLte *self)
+{
+ GError *error = NULL;
+ GStrv str_list;
+
+ str_list = MM_IFACE_MODEM_GET_INTERFACE (self)->load_own_numbers_finish (MM_IFACE_MODEM (self), res, &error);
+ if (error) {
+ mm_warn ("Couldn't reload Own Numbers: '%s'", error->message);
+ g_error_free (error);
+ }
+ if (str_list) {
+ mm_iface_modem_update_own_numbers (iface_modem, str_list);
+ g_strfreev (str_list);
+ }
+
+ /* Deregister */
+ mm_dbg ("Reregistering modem");
+ mm_base_modem_at_command (
+ MM_BASE_MODEM (self),
+ "%CMATT=0",
+ 10,
+ FALSE, /* allow_cached */
+ (GAsyncReadyCallback)altair_deregister_ready,
+ NULL);
+}
+
+static gboolean
+altair_sim_refresh_timer_expired (MMBroadbandModemAltairLte *self)
+{
+ mm_dbg ("No more SIM refreshes, reloading Own Numbers and reregistering modem");
+
+ g_assert (MM_IFACE_MODEM_GET_INTERFACE (self)->load_own_numbers);
+ g_assert (MM_IFACE_MODEM_GET_INTERFACE (self)->load_own_numbers_finish);
+ MM_IFACE_MODEM_GET_INTERFACE (self)->load_own_numbers (
+ MM_IFACE_MODEM (self),
+ (GAsyncReadyCallback)altair_load_own_numbers_ready,
+ self);
+
+ self->priv->sim_refresh_timer_id = 0;
+ return FALSE;
+}
+
+static void
+altair_sim_refresh_changed (MMAtSerialPort *port,
+ GMatchInfo *match_info,
+ MMBroadbandModemAltairLte *self)
+{
+ mm_dbg ("Received SIM refresh notification");
+ if (self->priv->sim_refresh_timer_id) {
+ g_source_remove (self->priv->sim_refresh_timer_id);
+ }
+ self->priv->sim_refresh_timer_id =
+ g_timeout_add_seconds(10,
+ (GSourceFunc)altair_sim_refresh_timer_expired,
+ self);
+}
typedef enum {
MM_STATCM_ALTAIR_LTE_DEREGISTERED = 0,
@@ -518,9 +734,13 @@ static void
bearer_list_report_disconnect_status_foreach (MMBearer *bearer,
gpointer *user_data)
{
- mm_bearer_report_disconnection (bearer);
+ mm_bearer_report_connection_status (bearer,
+ MM_BEARER_CONNECTION_STATUS_DISCONNECTED);
}
+/*****************************************************************************/
+/* STATCM unsolicited event handler */
+
static void
altair_statcm_changed (MMAtSerialPort *port,
GMatchInfo *match_info,
@@ -552,6 +772,14 @@ altair_statcm_changed (MMAtSerialPort *port,
}
+/*****************************************************************************/
+/* Setup/Cleanup unsolicited events (3GPP interface) */
+
+static void
+altair_pco_info_changed (MMAtSerialPort *port,
+ GMatchInfo *match_info,
+ MMBroadbandModemAltairLte *self);
+
static void
set_3gpp_unsolicited_events_handlers (MMBroadbandModemAltairLte *self,
gboolean enable)
@@ -567,6 +795,14 @@ set_3gpp_unsolicited_events_handlers (MMBroadbandModemAltairLte *self,
if (!ports[i])
continue;
+ /* SIM refresh handler */
+ mm_at_serial_port_add_unsolicited_msg_handler (
+ ports[i],
+ self->priv->sim_refresh_regex,
+ enable ? (MMAtSerialUnsolicitedMsgFn)altair_sim_refresh_changed : NULL,
+ enable ? self : NULL,
+ NULL);
+
/* bearer mode related */
mm_at_serial_port_add_unsolicited_msg_handler (
ports[i],
@@ -574,6 +810,14 @@ set_3gpp_unsolicited_events_handlers (MMBroadbandModemAltairLte *self,
enable ? (MMAtSerialUnsolicitedMsgFn)altair_statcm_changed : NULL,
enable ? self : NULL,
NULL);
+
+ /* PCO info handler */
+ mm_at_serial_port_add_unsolicited_msg_handler (
+ ports[i],
+ self->priv->pcoinfo_regex,
+ enable ? (MMAtSerialUnsolicitedMsgFn)altair_pco_info_changed : NULL,
+ enable ? self : NULL,
+ NULL);
}
}
@@ -664,6 +908,32 @@ modem_3gpp_cleanup_unsolicited_events (MMIfaceModem3gpp *self,
/* Enabling unsolicited events (3GPP interface) */
static gboolean
+response_processor_no_result_stop_on_error (MMBaseModem *self,
+ gpointer none,
+ const gchar *command,
+ const gchar *response,
+ gboolean last_command,
+ const GError *error,
+ GVariant **result,
+ GError **result_error)
+{
+ if (error) {
+ *result_error = g_error_copy (error);
+ return TRUE;
+ }
+
+ *result = NULL;
+ return FALSE;
+}
+
+static const MMBaseModemAtCommand unsolicited_events_enable_sequence[] = {
+ { "%STATCM=1", 10, FALSE, response_processor_no_result_stop_on_error },
+ { "%NOTIFYEV=\"SIMREFRESH\",1", 10, FALSE, NULL },
+ { "%PCOINFO=1", 10, FALSE, NULL },
+ { NULL }
+};
+
+static gboolean
modem_3gpp_enable_unsolicited_events_finish (MMIfaceModem3gpp *self,
GAsyncResult *res,
GError **error)
@@ -678,7 +948,7 @@ own_enable_unsolicited_events_ready (MMBaseModem *self,
{
GError *error = NULL;
- mm_base_modem_at_sequence_full_finish (self, res, NULL, &error);
+ mm_base_modem_at_sequence_finish (self, res, NULL, &error);
if (error)
g_simple_async_result_take_error (simple, error);
else
@@ -702,14 +972,11 @@ parent_enable_unsolicited_events_ready (MMIfaceModem3gpp *self,
}
/* Our own enable now */
- mm_base_modem_at_command_full (
+ mm_base_modem_at_sequence (
MM_BASE_MODEM (self),
- mm_base_modem_peek_port_primary (MM_BASE_MODEM (self)),
- "%STATCM=1",
- 6,
- FALSE, /* allow_cached */
- FALSE, /* raw */
- NULL, /* cancellable */
+ unsolicited_events_enable_sequence,
+ NULL, /* response_processor_context */
+ NULL, /* response_processor_context_free */
(GAsyncReadyCallback)own_enable_unsolicited_events_ready,
simple);
}
@@ -736,6 +1003,13 @@ modem_3gpp_enable_unsolicited_events (MMIfaceModem3gpp *self,
/*****************************************************************************/
/* Disabling unsolicited events (3GPP interface) */
+static const MMBaseModemAtCommand unsolicited_events_disable_sequence[] = {
+ { "%STATCM=0", 10, FALSE, NULL },
+ { "%NOTIFYEV=\"SIMREFRESH\",0", 10, FALSE, NULL },
+ { "%PCOINFO=0", 10, FALSE, NULL },
+ { NULL }
+};
+
static gboolean
modem_3gpp_disable_unsolicited_events_finish (MMIfaceModem3gpp *self,
GAsyncResult *res,
@@ -766,7 +1040,7 @@ own_disable_unsolicited_events_ready (MMBaseModem *self,
{
GError *error = NULL;
- mm_base_modem_at_command_full_finish (self, res, &error);
+ mm_base_modem_at_sequence_finish (self, res, NULL, &error);
if (error) {
g_simple_async_result_take_error (simple, error);
g_simple_async_result_complete (simple);
@@ -794,14 +1068,11 @@ modem_3gpp_disable_unsolicited_events (MMIfaceModem3gpp *self,
modem_3gpp_disable_unsolicited_events);
/* Our own disable first */
- mm_base_modem_at_command_full (
+ mm_base_modem_at_sequence (
MM_BASE_MODEM (self),
- mm_base_modem_peek_port_primary (MM_BASE_MODEM (self)),
- "%STATCM=0",
- 5,
- FALSE, /* allow_cached */
- FALSE, /* raw */
- NULL, /* cancellable */
+ unsolicited_events_disable_sequence,
+ NULL, /* response_processor_context */
+ NULL, /* response_processor_context_free */
(GAsyncReadyCallback)own_disable_unsolicited_events_ready,
result);
}
@@ -895,6 +1166,196 @@ modem_3gpp_load_operator_name (MMIfaceModem3gpp *self,
}
/*****************************************************************************/
+/* Subscription State loading (3GPP interface) */
+
+typedef struct {
+ MMIfaceModem3gpp *self;
+ GSimpleAsyncResult *result;
+ gchar *pco_info;
+} LoadSubscriptionStateContext;
+
+static void
+load_subscription_state_context_complete_and_free (LoadSubscriptionStateContext *ctx)
+{
+ g_simple_async_result_complete (ctx->result);
+ g_free (ctx->pco_info);
+ g_object_unref (ctx->result);
+ g_object_unref (ctx->self);
+ g_slice_free (LoadSubscriptionStateContext, ctx);
+}
+
+static MMModem3gppSubscriptionState
+altair_vzw_pco_value_to_mm_modem_3gpp_subscription_state (guint pco_value)
+{
+ switch (pco_value) {
+ case 0:
+ return MM_MODEM_3GPP_SUBSCRIPTION_STATE_PROVISIONED;
+ case 3:
+ return MM_MODEM_3GPP_SUBSCRIPTION_STATE_OUT_OF_DATA;
+ case 5:
+ return MM_MODEM_3GPP_SUBSCRIPTION_STATE_UNPROVISIONED;
+ default:
+ return MM_MODEM_3GPP_SUBSCRIPTION_STATE_UNKNOWN;
+ }
+}
+
+static MMModem3gppSubscriptionState
+modem_3gpp_load_subscription_state_finish (MMIfaceModem3gpp *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error))
+ return MM_MODEM_3GPP_SUBSCRIPTION_STATE_UNKNOWN;
+
+ return GPOINTER_TO_UINT (g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (res)));
+}
+
+static void
+altair_load_internet_cid_ready (MMIfaceModem3gpp *self,
+ GAsyncResult *res,
+ LoadSubscriptionStateContext *ctx)
+{
+ const gchar *response;
+ GError *error = NULL;
+ guint cid;
+ guint pco_value = -1;
+ MMModem3gppSubscriptionState subscription_state;
+
+ response = mm_base_modem_at_command_finish (MM_BASE_MODEM (self), res, &error);
+ if (error) {
+ mm_dbg ("Failed to load internet CID.");
+ g_simple_async_result_take_error (ctx->result, error);
+ load_subscription_state_context_complete_and_free (ctx);
+ return;
+ }
+
+ cid = mm_altair_parse_cid (response, &error);
+ if (error) {
+ g_simple_async_result_take_error (ctx->result, error);
+ load_subscription_state_context_complete_and_free (ctx);
+ return;
+ }
+
+ mm_dbg ("Parsing vendor PCO info: %s", ctx->pco_info);
+ pco_value = mm_altair_parse_vendor_pco_info (ctx->pco_info, cid, &error);
+ if (error) {
+ g_simple_async_result_take_error (ctx->result, error);
+ load_subscription_state_context_complete_and_free (ctx);
+ return;
+ }
+ mm_dbg ("PCO value = %d", pco_value);
+
+ subscription_state = altair_vzw_pco_value_to_mm_modem_3gpp_subscription_state (pco_value);
+ if (subscription_state == MM_MODEM_3GPP_SUBSCRIPTION_STATE_UNKNOWN) {
+ /* The PCO value is loaded after the modem has successfully registered
+ * with the network. So even if the PCO value is unknown here,
+ * the successful registration indicates a provisioned SIM.
+ */
+ subscription_state = MM_MODEM_3GPP_SUBSCRIPTION_STATE_PROVISIONED;
+ }
+
+ g_simple_async_result_set_op_res_gpointer (ctx->result, GUINT_TO_POINTER (subscription_state), NULL);
+ load_subscription_state_context_complete_and_free (ctx);
+}
+
+static void
+altair_get_subscription_state (MMIfaceModem3gpp *self,
+ LoadSubscriptionStateContext *ctx)
+{
+ /* Get the latest internet CID first */
+ mm_dbg ("Loading internet CID...");
+ mm_base_modem_at_command (MM_BASE_MODEM (self),
+ "%CGINFO=\"cid\",1",
+ 6,
+ FALSE,
+ (GAsyncReadyCallback)altair_load_internet_cid_ready,
+ ctx);
+}
+
+static void
+altair_load_vendor_pco_info_ready (MMIfaceModem3gpp *self,
+ GAsyncResult *res,
+ LoadSubscriptionStateContext *ctx)
+{
+ const gchar *response;
+ GError *error = NULL;
+
+ response = mm_base_modem_at_command_finish (MM_BASE_MODEM (self), res, &error);
+ if (error) {
+ mm_dbg ("Failed to load vendor PCO info.");
+ g_simple_async_result_take_error (ctx->result, error);
+ load_subscription_state_context_complete_and_free (ctx);
+ return;
+ }
+ g_assert (response);
+ ctx->pco_info = g_strdup (response);
+ altair_get_subscription_state (self, ctx);
+}
+
+static void
+modem_3gpp_load_subscription_state (MMIfaceModem3gpp *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ LoadSubscriptionStateContext *ctx;
+
+ ctx = g_slice_new0 (LoadSubscriptionStateContext);
+ ctx->self = g_object_ref (self);
+ ctx->result = g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ modem_3gpp_load_subscription_state);
+
+ mm_dbg ("Loading vendor PCO info...");
+ mm_base_modem_at_command (MM_BASE_MODEM (self),
+ "%PCOINFO?",
+ 6,
+ FALSE,
+ (GAsyncReadyCallback)altair_load_vendor_pco_info_ready,
+ ctx);
+}
+
+/*****************************************************************************/
+/* PCOINFO unsolicited event handler */
+
+static void
+altair_get_subscription_state_ready (MMBroadbandModemAltairLte *self,
+ GAsyncResult *res,
+ gpointer *user_data)
+{
+ GError *error = NULL;
+ MMModem3gppSubscriptionState subscription_state;
+
+ if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), &error)) {
+ mm_warn ("Couldn't load Subscription State: '%s'", error->message);
+ g_error_free (error);
+ return;
+ }
+
+ subscription_state = GPOINTER_TO_UINT (g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (res)));
+ mm_iface_modem_3gpp_update_subscription_state (MM_IFACE_MODEM_3GPP (self), subscription_state);
+}
+
+static void
+altair_pco_info_changed (MMAtSerialPort *port,
+ GMatchInfo *match_info,
+ MMBroadbandModemAltairLte *self)
+{
+ LoadSubscriptionStateContext *ctx;
+ const gchar *response;
+
+ ctx = g_slice_new0 (LoadSubscriptionStateContext);
+ ctx->self = g_object_ref (self);
+ ctx->result = g_simple_async_result_new (G_OBJECT (self),
+ (GAsyncReadyCallback)altair_get_subscription_state_ready,
+ NULL,
+ altair_pco_info_changed);
+ response = g_match_info_fetch (match_info, 0);
+ ctx->pco_info = g_strdup (response);
+ altair_get_subscription_state (MM_IFACE_MODEM_3GPP (self), ctx);
+}
+
+/*****************************************************************************/
/* Generic ports open/close context */
static const gchar *primary_init_sequence[] = {
@@ -956,8 +1417,26 @@ mm_broadband_modem_altair_lte_init (MMBroadbandModemAltairLte *self)
MM_TYPE_BROADBAND_MODEM_ALTAIR_LTE,
MMBroadbandModemAltairLtePrivate);
+ self->priv->sim_refresh_regex = g_regex_new ("\\r\\n\\%NOTIFYEV:\\s*SIMREFRESH,?(\\d*)\\r+\\n",
+ G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
+ self->priv->sim_refresh_timer_id = 0;
self->priv->statcm_regex = g_regex_new ("\\r\\n\\%STATCM:\\s*(\\d*),?(\\d*)\\r+\\n",
G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
+ self->priv->pcoinfo_regex = g_regex_new ("\\r\\n\\%PCOINFO:\\s*(\\d*),([^,\\s]*),([^,\\s]*)\\r+\\n",
+ G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
+}
+
+static void
+finalize (GObject *object)
+{
+ MMBroadbandModemAltairLte *self = MM_BROADBAND_MODEM_ALTAIR_LTE (object);
+
+ if (self->priv->sim_refresh_timer_id)
+ g_source_remove (self->priv->sim_refresh_timer_id);
+ g_regex_unref (self->priv->sim_refresh_regex);
+ g_regex_unref (self->priv->statcm_regex);
+ g_regex_unref (self->priv->pcoinfo_regex);
+ G_OBJECT_CLASS (mm_broadband_modem_altair_lte_parent_class)->finalize (object);
}
static void
@@ -988,7 +1467,6 @@ iface_modem_init (MMIfaceModem *iface)
iface->setup_charset_finish = NULL;
iface->setup_flow_control = NULL;
iface->setup_flow_control_finish = NULL;
-
}
static void
@@ -1002,7 +1480,6 @@ iface_modem_3gpp_ussd_init (MMIfaceModem3gppUssd *iface)
static void
iface_modem_3gpp_init (MMIfaceModem3gpp *iface)
{
-
iface_modem_3gpp_parent = g_type_interface_peek_parent (iface);
iface->setup_unsolicited_events = modem_3gpp_setup_unsolicited_events;
@@ -1016,6 +1493,8 @@ iface_modem_3gpp_init (MMIfaceModem3gpp *iface)
iface->register_in_network = modem_3gpp_register_in_network;
iface->register_in_network_finish = modem_3gpp_register_in_network_finish;
+ iface->run_registration_checks = modem_3gpp_run_registration_checks;
+ iface->run_registration_checks_finish = modem_3gpp_run_registration_checks_finish;
/* Scanning is not currently supported */
iface->scan_networks = NULL;
@@ -1026,7 +1505,8 @@ iface_modem_3gpp_init (MMIfaceModem3gpp *iface)
iface->load_operator_code_finish = modem_3gpp_load_operator_code_finish;
iface->load_operator_name = modem_3gpp_load_operator_name;
iface->load_operator_name_finish = modem_3gpp_load_operator_name_finish;
-
+ iface->load_subscription_state = modem_3gpp_load_subscription_state;
+ iface->load_subscription_state_finish = modem_3gpp_load_subscription_state_finish;
}
static void
@@ -1045,6 +1525,7 @@ mm_broadband_modem_altair_lte_class_init (MMBroadbandModemAltairLteClass *klass)
g_type_class_add_private (object_class, sizeof (MMBroadbandModemAltairLtePrivate));
+ object_class->finalize = finalize;
broadband_modem_class->setup_ports = setup_ports;
/* The Altair LTE modem reboots itself upon receiving an ATZ command. We
diff --git a/plugins/altair/mm-modem-helpers-altair-lte.c b/plugins/altair/mm-modem-helpers-altair-lte.c
new file mode 100644
index 0000000..e19f147
--- /dev/null
+++ b/plugins/altair/mm-modem-helpers-altair-lte.c
@@ -0,0 +1,223 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details:
+ *
+ * Copyright (C) 2013 Google Inc.
+ *
+ */
+
+#include <string.h>
+
+#include <ModemManager.h>
+#define _LIBMM_INSIDE_MM
+#include <libmm-glib.h>
+
+#include "mm-modem-helpers-altair-lte.h"
+
+/*****************************************************************************/
+/* +CEER response parser */
+
+gchar *
+mm_altair_parse_ceer_response (const gchar *response,
+ GError **error)
+{
+ GRegex *r;
+ GMatchInfo *match_info = NULL;
+ gchar *ceer_response = NULL;
+
+
+ /* First accept an empty response as the no error case. Sometimes, the only
+ * respone to the AT+CEER query is an OK.
+ */
+ if (g_strcmp0 ("", response) == 0) {
+ return g_strdup ("");
+ }
+
+ /* The response we are interested in looks so:
+ * +CEER: EPS_AND_NON_EPS_SERVICES_NOT_ALLOWED
+ */
+ r = g_regex_new ("\\+CEER:\\s*(\\w*)?",
+ G_REGEX_RAW,
+ 0, NULL);
+ g_assert (r != NULL);
+
+ if (!g_regex_match (r, response, 0, &match_info)) {
+ g_set_error (error, MM_CORE_ERROR, MM_CORE_ERROR_FAILED, "Could not parse +CEER response");
+ g_match_info_free (match_info);
+ g_regex_unref (r);
+ return NULL;
+ }
+
+ if (g_match_info_matches (match_info)) {
+ ceer_response = mm_get_string_unquoted_from_match_info (match_info, 1);
+ if (!ceer_response)
+ ceer_response = g_strdup ("");
+ }
+
+ g_match_info_free (match_info);
+ g_regex_unref (r);
+ return ceer_response;
+}
+
+/*****************************************************************************/
+/* %CGINFO="cid",1 response parser */
+
+guint
+mm_altair_parse_cid (const gchar *response, GError **error)
+{
+ GRegex *regex;
+ GMatchInfo *match_info;
+ guint cid = -1;
+
+ regex = g_regex_new ("\\%CGINFO:\\s*(\\d+)", G_REGEX_RAW, 0, NULL);
+ g_assert (regex);
+ if (!g_regex_match_full (regex, response, strlen (response), 0, 0, &match_info, error)) {
+ g_regex_unref (regex);
+ return -1;
+ }
+
+ if (!mm_get_uint_from_match_info (match_info, 1, &cid))
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Failed to parse %%CGINFO=\"cid\",1 response");
+
+ g_match_info_free (match_info);
+ g_regex_unref (regex);
+ return cid;
+}
+
+/*****************************************************************************/
+/* %PCOINFO response parser */
+
+static guint
+altair_extract_vzw_pco_value (const gchar *pco_payload, GError **error)
+{
+ GRegex *regex;
+ GMatchInfo *match_info;
+ guint pco_value = -1;
+
+ /* Extract PCO value from PCO payload.
+ * The PCO value in the VZW network is after the VZW PLMN (MCC+MNC 311-480).
+ */
+ regex = g_regex_new ("130184(\\d+)", G_REGEX_RAW, 0, NULL);
+ g_assert (regex);
+ if (!g_regex_match_full (regex,
+ pco_payload,
+ strlen (pco_payload),
+ 0,
+ 0,
+ &match_info,
+ error))
+ return -1;
+
+ if (!g_match_info_matches (match_info) ||
+ !mm_get_uint_from_match_info (match_info, 1, &pco_value))
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Failed to parse PCO value from PCO payload: '%s'",
+ pco_payload);
+
+ g_match_info_free (match_info);
+ g_regex_unref (regex);
+
+ return pco_value;
+}
+
+guint
+mm_altair_parse_vendor_pco_info (const gchar *pco_info,
+ guint cid,
+ GError **error)
+{
+ GRegex *regex;
+ GMatchInfo *match_info;
+ guint pco_value = -1;
+ gint num_matches;
+
+ if (!pco_info[0])
+ /* No APNs configured, all done */
+ return -1;
+
+ /* Expected %PCOINFO response:
+ *
+ * Solicited response: %PCOINFO:<mode>,<cid>[,<pcoid>[,<payload>]]
+ * Unsolicited response: %PCOINFO:<cid>,<pcoid>[,<payload>]
+ */
+ regex = g_regex_new ("\\%PCOINFO:(?:\\s*\\d+\\s*,)?(\\d+)\\s*(,([^,\\)]*),([0-9A-Fa-f]*))?",
+ G_REGEX_DOLLAR_ENDONLY | G_REGEX_RAW,
+ 0, NULL);
+ g_assert (regex);
+ if (!g_regex_match_full (regex, pco_info, strlen (pco_info), 0, 0, &match_info, error))
+ return -1;
+
+ num_matches = g_match_info_get_match_count (match_info);
+ if (num_matches != 5) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Failed to parse substrings, number of matches: %d",
+ num_matches);
+ return -1;
+ }
+
+ while (g_match_info_matches (match_info)) {
+ guint pco_cid;
+ gchar *pco_id;
+ gchar *pco_payload;
+
+ if (!mm_get_uint_from_match_info (match_info, 1, &pco_cid)) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Couldn't parse CID from PCO info: '%s'",
+ pco_info);
+ break;
+ }
+
+ if (pco_cid != cid) {
+ g_match_info_next (match_info, error);
+ continue;
+ }
+
+ pco_id = mm_get_string_unquoted_from_match_info (match_info, 3);
+ if (!pco_id) {
+ g_set_error (error,
+ MM_CORE_ERROR, MM_CORE_ERROR_FAILED,
+ "Couldn't parse PCO ID from PCO info: '%s'",
+ pco_info);
+ break;
+ }
+
+ if (g_strcmp0 (pco_id, "FF00")) {
+ g_match_info_next (match_info, error);
+ continue;
+ }
+
+ pco_payload = mm_get_string_unquoted_from_match_info (match_info, 4);
+ if (!pco_payload) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Couldn't parse PCO payload from PCO info: '%s'",
+ pco_info);
+ break;
+ }
+
+ pco_value = altair_extract_vzw_pco_value (pco_payload, error);
+ break;
+ }
+
+ g_match_info_free (match_info);
+ g_regex_unref (regex);
+
+ return pco_value;
+}
diff --git a/plugins/altair/mm-modem-helpers-altair-lte.h b/plugins/altair/mm-modem-helpers-altair-lte.h
new file mode 100644
index 0000000..c6fbf34
--- /dev/null
+++ b/plugins/altair/mm-modem-helpers-altair-lte.h
@@ -0,0 +1,34 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details:
+ *
+ * Copyright (C) 2013 Google Inc.
+ *
+ */
+
+#ifndef MM_MODEM_HELPERS_ALTAIR_H
+#define MM_MODEM_HELPERS_ALTAIR_H
+
+#include <glib.h>
+
+/* +CEER response parser */
+gchar *mm_altair_parse_ceer_response (const gchar *response,
+ GError **error);
+
+/* %CGINFO="cid",1 response parser */
+guint mm_altair_parse_cid (const gchar *response, GError **error);
+
+/* %PCOINFO response parser */
+guint mm_altair_parse_vendor_pco_info (const gchar *pco_info,
+ guint cid,
+ GError **error);
+
+#endif /* MM_MODEM_HELPERS_ALTAIR_H */
diff --git a/plugins/altair/tests/test-modem-helpers-altair-lte.c b/plugins/altair/tests/test-modem-helpers-altair-lte.c
new file mode 100644
index 0000000..2df3eef
--- /dev/null
+++ b/plugins/altair/tests/test-modem-helpers-altair-lte.c
@@ -0,0 +1,113 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details:
+ *
+ * Copyright (C) 2013 Google Inc.
+ *
+ */
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <glib.h>
+#include <glib-object.h>
+#include <locale.h>
+
+#include "mm-modem-helpers-altair-lte.h"
+
+/*****************************************************************************/
+/* Test +CEER responses */
+
+typedef struct {
+ const gchar *str;
+ const gchar *result;
+} CeerTest;
+
+static const CeerTest ceer_tests[] = {
+ { "", "" }, /* Special case, sometimes the response is empty, treat it as a valid response. */
+ { "+CEER:", "" },
+ { "+CEER: EPS_AND_NON_EPS_SERVICES_NOT_ALLOWED", "EPS_AND_NON_EPS_SERVICES_NOT_ALLOWED" },
+ { "+CEER: NO_SUITABLE_CELLS_IN_TRACKING_AREA", "NO_SUITABLE_CELLS_IN_TRACKING_AREA" },
+ { "WRONG RESPONSE", NULL },
+ { NULL, NULL }
+};
+
+static void
+test_ceer (void)
+{
+ guint i;
+
+ for (i = 0; ceer_tests[i].str; ++i) {
+ GError *error = NULL;
+ gchar *result;
+
+ result = mm_altair_parse_ceer_response (ceer_tests[i].str, &error);
+ if (ceer_tests[i].result) {
+ g_assert_cmpstr (ceer_tests[i].result, ==, result);
+ g_assert_no_error (error);
+ g_free (result);
+ }
+ else {
+ g_assert (result == NULL);
+ g_assert (error != NULL);
+ g_error_free (error);
+ }
+ }
+}
+
+static void
+test_parse_cid (void)
+{
+ g_assert (mm_altair_parse_cid ("%CGINFO: 2", NULL) == 2);
+ g_assert (mm_altair_parse_cid ("%CGINFO:blah", NULL) == -1);
+}
+
+static void
+test_parse_vendor_pco_info (void)
+{
+ guint pco_value;
+
+ /* Valid PCO values */
+ pco_value = mm_altair_parse_vendor_pco_info ("%PCOINFO: 1,3,FF00,13018400", 3, NULL);
+ g_assert (pco_value == 0);
+ pco_value = mm_altair_parse_vendor_pco_info ("%PCOINFO: 1,3,FF00,13018403", 3, NULL);
+ g_assert (pco_value == 3);
+ pco_value = mm_altair_parse_vendor_pco_info ("%PCOINFO: 1,3,FF00,13018405", 3, NULL);
+ g_assert (pco_value == 5);
+ /* Different container */
+ pco_value = mm_altair_parse_vendor_pco_info ("%PCOINFO: 1,3,F000,13018401", 3, NULL);
+ g_assert (pco_value == -1);
+ /* Different CID */
+ pco_value = mm_altair_parse_vendor_pco_info ("%PCOINFO: 1,3,FF00,13018401", 1, NULL);
+ g_assert (pco_value == -1);
+ /* Different payload */
+ pco_value = mm_altair_parse_vendor_pco_info ("%PCOINFO: 1,3,FF00,13018501", 1, NULL);
+ g_assert (pco_value == -1);
+ /* Bad PCO info */
+ pco_value = mm_altair_parse_vendor_pco_info ("%PCOINFO: blah,blah,FF00,13018401", 1, NULL);
+ g_assert (pco_value == -1);
+ /* Multiline PCO info */
+ pco_value = mm_altair_parse_vendor_pco_info ("%PCOINFO: 1,1,FF00,13018400\r\n%PCOINFO: 1,3,FF00,13018403", 3, NULL);
+ g_assert (pco_value == 3);
+}
+
+int main (int argc, char **argv)
+{
+ setlocale (LC_ALL, "");
+
+ g_type_init ();
+ g_test_init (&argc, &argv, NULL);
+
+ g_test_add_func ("/MM/altair/ceer", test_ceer);
+ g_test_add_func ("/MM/altair/parse_cid", test_parse_cid);
+ g_test_add_func ("/MM/altair/parse_vendor_pco_info", test_parse_vendor_pco_info);
+
+ return g_test_run ();
+}
diff --git a/plugins/cinterion/mm-plugin-cinterion.c b/plugins/cinterion/mm-plugin-cinterion.c
index d7ba3d6..45f88d5 100644
--- a/plugins/cinterion/mm-plugin-cinterion.c
+++ b/plugins/cinterion/mm-plugin-cinterion.c
@@ -31,6 +31,10 @@
#include "mm-broadband-modem-cinterion.h"
#include "mm-log.h"
+#if defined WITH_QMI
+#include "mm-broadband-modem-qmi.h"
+#endif
+
G_DEFINE_TYPE (MMPluginCinterion, mm_plugin_cinterion, MM_TYPE_PLUGIN)
int mm_plugin_major_version = MM_PLUGIN_MAJOR_VERSION;
@@ -45,6 +49,17 @@ create_modem (MMPlugin *self,
GList *probes,
GError **error)
{
+#if defined WITH_QMI
+ if (mm_port_probe_list_has_qmi_port (probes)) {
+ mm_dbg ("QMI-powered Cinterion modem found...");
+ return MM_BASE_MODEM (mm_broadband_modem_qmi_new (sysfs_path,
+ drivers,
+ mm_plugin_get_name (self),
+ vendor,
+ product));
+ }
+#endif
+
return MM_BASE_MODEM (mm_broadband_modem_cinterion_new (sysfs_path,
drivers,
mm_plugin_get_name (self),
@@ -57,7 +72,7 @@ create_modem (MMPlugin *self,
G_MODULE_EXPORT MMPlugin *
mm_plugin_create (void)
{
- static const gchar *subsystems[] = { "tty", NULL };
+ static const gchar *subsystems[] = { "tty", "net", "usb", NULL };
static const gchar *vendor_strings[] = { "cinterion", "siemens", NULL };
static const guint16 vendor_ids[] = { 0x1e2d, 0x0681, 0 };
@@ -68,6 +83,7 @@ mm_plugin_create (void)
MM_PLUGIN_ALLOWED_VENDOR_STRINGS, vendor_strings,
MM_PLUGIN_ALLOWED_VENDOR_IDS, vendor_ids,
MM_PLUGIN_ALLOWED_AT, TRUE,
+ MM_PLUGIN_ALLOWED_QMI, TRUE,
NULL));
}
diff --git a/plugins/huawei/77-mm-huawei-net-port-types.rules b/plugins/huawei/77-mm-huawei-net-port-types.rules
index db0edce..051b5d0 100644
--- a/plugins/huawei/77-mm-huawei-net-port-types.rules
+++ b/plugins/huawei/77-mm-huawei-net-port-types.rules
@@ -1,5 +1,5 @@
# do not edit this file, it will be overwritten on update
-ACTION!="add|change", GOTO="mm_huawei_port_types_end"
+ACTION!="add|change|move", GOTO="mm_huawei_port_types_end"
ENV{ID_VENDOR_ID}!="12d1", GOTO="mm_huawei_port_types_end"
diff --git a/plugins/huawei/mm-broadband-bearer-huawei.c b/plugins/huawei/mm-broadband-bearer-huawei.c
index 1f330d3..df2d6d4 100644
--- a/plugins/huawei/mm-broadband-bearer-huawei.c
+++ b/plugins/huawei/mm-broadband-bearer-huawei.c
@@ -30,12 +30,15 @@
#include "mm-log.h"
#include "mm-modem-helpers.h"
#include "mm-modem-helpers-huawei.h"
+#include "mm-daemon-enums-types.h"
G_DEFINE_TYPE (MMBroadbandBearerHuawei, mm_broadband_bearer_huawei, MM_TYPE_BROADBAND_BEARER)
struct _MMBroadbandBearerHuaweiPrivate {
gpointer connect_pending;
gpointer disconnect_pending;
+ /* Tag for the post task for network-initiated disconnect */
+ guint network_disconnect_pending_id;
};
/*****************************************************************************/
@@ -57,6 +60,7 @@ typedef struct {
GSimpleAsyncResult *result;
Connect3gppContextStep step;
guint check_count;
+ guint failed_ndisstatqry_count;
} Connect3gppContext;
static void
@@ -111,10 +115,10 @@ connect_ndisstatqry_check_ready (MMBaseModem *modem,
Connect3gppContext *ctx;
const gchar *response;
GError *error = NULL;
- gboolean ipv4_available;
- gboolean ipv4_connected;
- gboolean ipv6_available;
- gboolean ipv6_connected;
+ gboolean ipv4_available = FALSE;
+ gboolean ipv4_connected = FALSE;
+ gboolean ipv6_available = FALSE;
+ gboolean ipv6_connected = FALSE;
ctx = self->priv->connect_pending;
g_assert (ctx != NULL);
@@ -130,16 +134,10 @@ connect_ndisstatqry_check_ready (MMBaseModem *modem,
&ipv6_available,
&ipv6_connected,
&error)) {
- mm_dbg ("Modem doesn't properly support ^NDISSTATQRY command: %s", error->message);
+ ctx->failed_ndisstatqry_count++;
+ mm_dbg ("Unexpected response to ^NDISSTATQRY command: %s (Attempts so far: %u)",
+ error->message, ctx->failed_ndisstatqry_count);
g_error_free (error);
-
- ctx->self->priv->connect_pending = NULL;
- g_simple_async_result_set_error (ctx->result,
- MM_MOBILE_EQUIPMENT_ERROR,
- MM_MOBILE_EQUIPMENT_ERROR_NOT_SUPPORTED,
- "Connection attempt not supported");
- connect_3gpp_context_complete_and_free (ctx);
- return;
}
/* Connected in IPv4? */
@@ -236,6 +234,11 @@ connect_3gpp_context_step (Connect3gppContext *ctx)
return;
}
+ /* Network-initiated disconnect should not be outstanding at this point,
+ * because it interferes with the connect attempt.
+ */
+ g_assert (ctx->self->priv->network_disconnect_pending_id == 0);
+
switch (ctx->step) {
case CONNECT_3GPP_CONTEXT_STEP_FIRST: {
MMBearerIpFamily ip_family;
@@ -316,6 +319,18 @@ connect_3gpp_context_step (Connect3gppContext *ctx)
return;
}
+ /* Give up if too many unexpected responses to NIDSSTATQRY are encountered. */
+ if (ctx->failed_ndisstatqry_count > 10) {
+ /* Clear context */
+ ctx->self->priv->connect_pending = NULL;
+ g_simple_async_result_set_error (ctx->result,
+ MM_MOBILE_EQUIPMENT_ERROR,
+ MM_MOBILE_EQUIPMENT_ERROR_NOT_SUPPORTED,
+ "Connection attempt not supported.");
+ connect_3gpp_context_complete_and_free (ctx);
+ return;
+ }
+
/* Check if connected */
ctx->check_count++;
mm_base_modem_at_command_full (ctx->modem,
@@ -361,14 +376,28 @@ connect_3gpp (MMBroadbandBearer *self,
gpointer user_data)
{
Connect3gppContext *ctx;
+ MMPort *data;
g_assert (primary != NULL);
+ /* We need a net data port */
+ data = mm_base_modem_peek_best_data_port (MM_BASE_MODEM (modem), MM_PORT_TYPE_NET);
+ if (!data) {
+ g_simple_async_report_error_in_idle (G_OBJECT (self),
+ callback,
+ user_data,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_NOT_FOUND,
+ "No valid data port found to launch connection");
+ return;
+ }
+
/* Setup connection context */
ctx = g_slice_new0 (Connect3gppContext);
ctx->self = g_object_ref (self);
ctx->modem = g_object_ref (modem);
ctx->primary = g_object_ref (primary);
+ ctx->data = g_object_ref (data);
ctx->result = g_simple_async_result_new (G_OBJECT (self),
callback,
user_data,
@@ -379,19 +408,6 @@ connect_3gpp (MMBroadbandBearer *self,
g_assert (ctx->self->priv->connect_pending == NULL);
g_assert (ctx->self->priv->disconnect_pending == NULL);
- /* We need a net data port */
- ctx->data = mm_base_modem_get_best_data_port (MM_BASE_MODEM (modem),
- MM_PORT_TYPE_NET);
- if (!ctx->data) {
- g_simple_async_result_set_error (
- ctx->result,
- MM_CORE_ERROR,
- MM_CORE_ERROR_NOT_FOUND,
- "No valid data port found to launch connection");
- connect_3gpp_context_complete_and_free (ctx);
- return;
- }
-
/* Run! */
connect_3gpp_context_step (ctx);
}
@@ -413,6 +429,7 @@ typedef struct {
GSimpleAsyncResult *result;
Disconnect3gppContextStep step;
guint check_count;
+ guint failed_ndisstatqry_count;
} Disconnect3gppContext;
static void
@@ -461,10 +478,10 @@ disconnect_ndisstatqry_check_ready (MMBaseModem *modem,
Disconnect3gppContext *ctx;
const gchar *response;
GError *error = NULL;
- gboolean ipv4_available;
- gboolean ipv4_connected;
- gboolean ipv6_available;
- gboolean ipv6_connected;
+ gboolean ipv4_available = FALSE;
+ gboolean ipv4_connected = FALSE;
+ gboolean ipv6_available = FALSE;
+ gboolean ipv6_connected = FALSE;
ctx = self->priv->disconnect_pending;
g_assert (ctx != NULL);
@@ -480,16 +497,10 @@ disconnect_ndisstatqry_check_ready (MMBaseModem *modem,
&ipv6_available,
&ipv6_connected,
&error)) {
- mm_dbg ("Modem doesn't properly support ^NDISSTATQRY command: %s", error->message);
+ ctx->failed_ndisstatqry_count++;
+ mm_dbg ("Unexpected response to ^NDISSTATQRY command: %s (Attempts so far: %u)",
+ error->message, ctx->failed_ndisstatqry_count);
g_error_free (error);
-
- ctx->self->priv->connect_pending = NULL;
- g_simple_async_result_set_error (ctx->result,
- MM_MOBILE_EQUIPMENT_ERROR,
- MM_MOBILE_EQUIPMENT_ERROR_NOT_SUPPORTED,
- "Disconnection attempt not supported");
- disconnect_3gpp_context_complete_and_free (ctx);
- return;
}
/* Disconnected IPv4? */
@@ -541,6 +552,14 @@ disconnect_3gpp_context_step (Disconnect3gppContext *ctx)
/* Store the context */
ctx->self->priv->disconnect_pending = ctx;
+ /* We ignore any pending network-initiated disconnection in order to prevent it
+ * from interfering with the client-initiated disconnection, as we would like to
+ * proceed with the latter anyway. */
+ if (ctx->self->priv->network_disconnect_pending_id != 0) {
+ g_source_remove (ctx->self->priv->network_disconnect_pending_id);
+ ctx->self->priv->network_disconnect_pending_id = 0;
+ }
+
ctx->step++;
/* Fall down to the next step */
@@ -558,7 +577,7 @@ disconnect_3gpp_context_step (Disconnect3gppContext *ctx)
case DISCONNECT_3GPP_CONTEXT_STEP_NDISSTATQRY:
/* If too many retries (1s of wait between the retries), failed */
- if (ctx->check_count > 10) {
+ if (ctx->check_count > 60) {
/* Clear context */
ctx->self->priv->disconnect_pending = NULL;
g_simple_async_result_set_error (ctx->result,
@@ -569,6 +588,18 @@ disconnect_3gpp_context_step (Disconnect3gppContext *ctx)
return;
}
+ /* Give up if too many unexpected responses to NIDSSTATQRY are encountered. */
+ if (ctx->failed_ndisstatqry_count > 10) {
+ /* Clear context */
+ ctx->self->priv->disconnect_pending = NULL;
+ g_simple_async_result_set_error (ctx->result,
+ MM_MOBILE_EQUIPMENT_ERROR,
+ MM_MOBILE_EQUIPMENT_ERROR_NOT_SUPPORTED,
+ "Disconnection attempt not supported.");
+ disconnect_3gpp_context_complete_and_free (ctx);
+ return;
+ }
+
/* Check if disconnected */
ctx->check_count++;
mm_base_modem_at_command_full (ctx->modem,
@@ -625,6 +656,67 @@ disconnect_3gpp (MMBroadbandBearer *self,
/*****************************************************************************/
+static gboolean
+network_disconnect_3gpp_delayed (MMBroadbandBearerHuawei *self)
+{
+ mm_dbg ("Disconnect bearer '%s' on network request.",
+ mm_bearer_get_path (MM_BEARER (self)));
+
+ self->priv->network_disconnect_pending_id = 0;
+ mm_bearer_report_connection_status (MM_BEARER (self),
+ MM_BEARER_CONNECTION_STATUS_DISCONNECTED);
+ return FALSE;
+}
+
+static void
+report_connection_status (MMBearer *bearer,
+ MMBearerConnectionStatus status)
+{
+ MMBroadbandBearerHuawei *self = MM_BROADBAND_BEARER_HUAWEI (bearer);
+
+ g_assert (status == MM_BEARER_CONNECTION_STATUS_CONNECTED ||
+ status == MM_BEARER_CONNECTION_STATUS_DISCONNECTING ||
+ status == MM_BEARER_CONNECTION_STATUS_DISCONNECTED);
+
+ /* When a pending connection / disconnection attempt is in progress, we use
+ * ^NDISSTATQRY? to check the connection status and thus temporarily ignore
+ * ^NDISSTAT unsolicited messages */
+ if (self->priv->connect_pending || self->priv->disconnect_pending)
+ return;
+
+ mm_dbg ("Received spontaneous ^NDISSTAT (%s)",
+ mm_bearer_connection_status_get_string (status));
+
+ /* Ignore 'CONNECTED' */
+ if (status == MM_BEARER_CONNECTION_STATUS_CONNECTED)
+ return;
+
+ /* We already use ^NDISSTATQRY? to poll the connection status, so only
+ * handle network-initiated disconnection here. */
+ if (status == MM_BEARER_CONNECTION_STATUS_DISCONNECTING) {
+ /* MM_BEARER_CONNECTION_STATUS_DISCONNECTING is used to indicate that the
+ * reporting of disconnection should be delayed. See MMBroadbandModemHuawei's
+ * bearer_report_connection_status for details. */
+ if (mm_bearer_get_status (bearer) == MM_BEARER_STATUS_CONNECTED &&
+ self->priv->network_disconnect_pending_id == 0) {
+ mm_dbg ("Delay network-initiated disconnection of bearer '%s'",
+ mm_bearer_get_path (MM_BEARER (self)));
+ self->priv->network_disconnect_pending_id = (g_timeout_add_seconds (
+ 4,
+ (GSourceFunc) network_disconnect_3gpp_delayed,
+ self));
+ }
+ return;
+ }
+
+ /* Report disconnected right away */
+ MM_BEARER_CLASS (mm_broadband_bearer_huawei_parent_class)->report_connection_status (
+ bearer,
+ MM_BEARER_CONNECTION_STATUS_DISCONNECTED);
+}
+
+/*****************************************************************************/
+
MMBearer *
mm_broadband_bearer_huawei_new_finish (GAsyncResult *res,
GError **error)
@@ -645,6 +737,19 @@ mm_broadband_bearer_huawei_new_finish (GAsyncResult *res,
return MM_BEARER (bearer);
}
+static void
+dispose (GObject *object)
+{
+ MMBroadbandBearerHuawei *self = MM_BROADBAND_BEARER_HUAWEI (object);
+
+ if (self->priv->network_disconnect_pending_id != 0) {
+ g_source_remove (self->priv->network_disconnect_pending_id);
+ self->priv->network_disconnect_pending_id = 0;
+ }
+
+ G_OBJECT_CLASS (mm_broadband_bearer_huawei_parent_class)->dispose (object);
+}
+
void
mm_broadband_bearer_huawei_new (MMBroadbandModemHuawei *modem,
MMBearerProperties *config,
@@ -676,11 +781,13 @@ static void
mm_broadband_bearer_huawei_class_init (MMBroadbandBearerHuaweiClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
-
+ MMBearerClass *bearer_class = MM_BEARER_CLASS (klass);
MMBroadbandBearerClass *broadband_bearer_class = MM_BROADBAND_BEARER_CLASS (klass);
g_type_class_add_private (object_class, sizeof (MMBroadbandBearerHuaweiPrivate));
+ object_class->dispose = dispose;
+ bearer_class->report_connection_status = report_connection_status;
broadband_bearer_class->connect_3gpp = connect_3gpp;
broadband_bearer_class->connect_3gpp_finish = connect_3gpp_finish;
broadband_bearer_class->disconnect_3gpp = disconnect_3gpp;
diff --git a/plugins/huawei/mm-broadband-modem-huawei.c b/plugins/huawei/mm-broadband-modem-huawei.c
index eb13a1b..d77653a 100644
--- a/plugins/huawei/mm-broadband-modem-huawei.c
+++ b/plugins/huawei/mm-broadband-modem-huawei.c
@@ -14,7 +14,7 @@
* Copyright (C) 2009 - 2012 Red Hat, Inc.
* Copyright (C) 2011 - 2012 Google Inc.
* Copyright (C) 2012 Huawei Technologies Co., Ltd
- * Copyright (C) 2012 Aleksander Morgado <aleksander@gnu.org>
+ * Copyright (C) 2012 - 2013 Aleksander Morgado <aleksander@gnu.org>
*/
#include <config.h>
@@ -34,6 +34,7 @@
#include "mm-log.h"
#include "mm-errors-types.h"
#include "mm-modem-helpers.h"
+#include "mm-modem-helpers-huawei.h"
#include "mm-base-modem-at.h"
#include "mm-iface-modem.h"
#include "mm-iface-modem-3gpp.h"
@@ -43,6 +44,8 @@
#include "mm-broadband-modem-huawei.h"
#include "mm-broadband-bearer-huawei.h"
#include "mm-broadband-bearer.h"
+#include "mm-bearer-list.h"
+#include "mm-sim-huawei.h"
static void iface_modem_init (MMIfaceModem *iface);
static void iface_modem_3gpp_init (MMIfaceModem3gpp *iface);
@@ -62,10 +65,10 @@ G_DEFINE_TYPE_EXTENDED (MMBroadbandModemHuawei, mm_broadband_modem_huawei, MM_TY
G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_TIME, iface_modem_time_init));
typedef enum {
- NDISDUP_SUPPORT_UNKNOWN,
- NDISDUP_NOT_SUPPORTED,
- NDISDUP_SUPPORTED
-} NdisdupSupport;
+ FEATURE_SUPPORT_UNKNOWN,
+ FEATURE_NOT_SUPPORTED,
+ FEATURE_SUPPORTED
+} FeatureSupport;
struct _MMBroadbandModemHuaweiPrivate {
/* Regex for signal quality related notifications */
@@ -78,148 +81,37 @@ struct _MMBroadbandModemHuaweiPrivate {
/* Regex for connection status related notifications */
GRegex *dsflowrpt_regex;
+ GRegex *ndisstat_regex;
/* Regex to ignore */
GRegex *boot_regex;
+ GRegex *connect_regex;
GRegex *csnr_regex;
+ GRegex *cusatp_regex;
+ GRegex *cusatend_regex;
+ GRegex *dsdormant_regex;
GRegex *simst_regex;
GRegex *srvst_regex;
GRegex *stin_regex;
GRegex *hcsq_regex;
- GRegex *ndisstat_regex;
-
- NdisdupSupport ndisdup_support;
-
- gboolean sysinfoex_supported;
- gboolean sysinfoex_support_checked;
+ GRegex *pdpdeact_regex;
+ GRegex *ndisend_regex;
+ GRegex *rfswitch_regex;
+
+ FeatureSupport ndisdup_support;
+ FeatureSupport rfswitch_support;
+ FeatureSupport sysinfoex_support;
+ FeatureSupport syscfg_support;
+ FeatureSupport syscfgex_support;
+ FeatureSupport prefmode_support;
+
+ GArray *syscfg_supported_modes;
+ GArray *syscfgex_supported_modes;
+ GArray *prefmode_supported_modes;
};
/*****************************************************************************/
-static gboolean
-sysinfo_parse (const char *reply,
- guint *out_srv_status,
- guint *out_srv_domain,
- guint *out_roam_status,
- guint *out_sys_mode,
- guint *out_sim_state,
- gboolean *out_sys_submode_valid,
- guint *out_sys_submode,
- GError **error)
-{
- gboolean matched;
- GRegex *r;
- GMatchInfo *match_info = NULL;
- GError *match_error = NULL;
-
- g_assert (out_srv_status != NULL);
- g_assert (out_srv_domain != NULL);
- g_assert (out_roam_status != NULL);
- g_assert (out_sys_mode != NULL);
- g_assert (out_sim_state != NULL);
- g_assert (out_sys_submode_valid != NULL);
- g_assert (out_sys_submode != NULL);
-
- /* Format:
- *
- * ^SYSINFO: <srv_status>,<srv_domain>,<roam_status>,<sys_mode>,<sim_state>[,<reserved>,<sys_submode>]
- */
-
- /* Can't just use \d here since sometimes you get "^SYSINFO:2,1,0,3,1,,3" */
- r = g_regex_new ("\\^SYSINFO:\\s*(\\d+),(\\d+),(\\d+),(\\d+),(\\d+),?(\\d*),?(\\d*)$", 0, 0, NULL);
- g_assert (r != NULL);
-
- matched = g_regex_match_full (r, reply, -1, 0, 0, &match_info, &match_error);
- if (!matched) {
- if (match_error) {
- g_propagate_error (error, match_error);
- g_prefix_error (error, "Could not parse ^SYSINFO results: ");
- } else {
- g_set_error_literal (error,
- MM_CORE_ERROR,
- MM_CORE_ERROR_FAILED,
- "Couldn't match ^SYSINFO reply");
- }
- } else {
- mm_get_uint_from_match_info (match_info, 1, out_srv_status);
- mm_get_uint_from_match_info (match_info, 2, out_srv_domain);
- mm_get_uint_from_match_info (match_info, 3, out_roam_status);
- mm_get_uint_from_match_info (match_info, 4, out_sys_mode);
- mm_get_uint_from_match_info (match_info, 5, out_sim_state);
-
- /* Remember that g_match_info_get_match_count() includes match #0 */
- if (g_match_info_get_match_count (match_info) >= 8) {
- *out_sys_submode_valid = TRUE;
- mm_get_uint_from_match_info (match_info, 7, out_sys_submode);
- }
- }
-
- if (match_info)
- g_match_info_free (match_info);
- g_regex_unref (r);
- return matched;
-}
-
-static gboolean
-sysinfoex_parse (const char *reply,
- guint *out_srv_status,
- guint *out_srv_domain,
- guint *out_roam_status,
- guint *out_sim_state,
- guint *out_sys_mode,
- guint *out_sys_submode,
- GError **error)
-{
- gboolean matched;
- GRegex *r;
- GMatchInfo *match_info = NULL;
- GError *match_error = NULL;
-
- g_assert (out_srv_status != NULL);
- g_assert (out_srv_domain != NULL);
- g_assert (out_roam_status != NULL);
- g_assert (out_sim_state != NULL);
- g_assert (out_sys_mode != NULL);
- g_assert (out_sys_submode != NULL);
-
- /* Format:
- *
- * ^SYSINFOEX: <srv_status>,<srv_domain>,<roam_status>,<sim_state>,<reserved>,<sysmode>,<sysmode_name>,<submode>,<submode_name>
- */
-
- /* ^SYSINFOEX:2,3,0,1,,3,"WCDMA",41,"HSPA+" */
-
- r = g_regex_new ("\\^SYSINFOEX:\\s*(\\d+),(\\d+),(\\d+),(\\d+),?(\\d*),(\\d+),\"(.*)\",(\\d+),\"(.*)\"$", 0, 0, NULL);
- g_assert (r != NULL);
-
- matched = g_regex_match_full (r, reply, -1, 0, 0, &match_info, &match_error);
- if (!matched) {
- if (match_error) {
- g_propagate_error (error, match_error);
- g_prefix_error (error, "Could not parse ^SYSINFOEX results: ");
- } else {
- g_set_error_literal (error,
- MM_CORE_ERROR,
- MM_CORE_ERROR_FAILED,
- "Couldn't match ^SYSINFOEX reply");
- }
- } else {
- mm_get_uint_from_match_info (match_info, 1, out_srv_status);
- mm_get_uint_from_match_info (match_info, 2, out_srv_domain);
- mm_get_uint_from_match_info (match_info, 3, out_roam_status);
- mm_get_uint_from_match_info (match_info, 4, out_sim_state);
-
- /* We just ignore the sysmode and submode name strings */
- mm_get_uint_from_match_info (match_info, 6, out_sys_mode);
- mm_get_uint_from_match_info (match_info, 8, out_sys_submode);
- }
-
- if (match_info)
- g_match_info_free (match_info);
- g_regex_unref (r);
- return matched;
-}
-
typedef struct {
gboolean extended;
guint srv_status;
@@ -291,15 +183,15 @@ run_sysinfo_ready (MMBaseModem *self,
result = g_new0 (SysinfoResult, 1);
result->extended = FALSE;
- if (!sysinfo_parse (response,
- &result->srv_status,
- &result->srv_domain,
- &result->roam_status,
- &result->sys_mode,
- &result->sim_state,
- &result->sys_submode_valid,
- &result->sys_submode,
- &error)) {
+ if (!mm_huawei_parse_sysinfo_response (response,
+ &result->srv_status,
+ &result->srv_domain,
+ &result->roam_status,
+ &result->sys_mode,
+ &result->sim_state,
+ &result->sys_submode_valid,
+ &result->sys_submode,
+ &error)) {
mm_dbg ("^SYSINFO parsing failed: %s", error->message);
g_simple_async_result_take_error (simple, error);
g_simple_async_result_complete (simple);
@@ -338,9 +230,8 @@ run_sysinfoex_ready (MMBaseModem *_self,
response = mm_base_modem_at_command_finish (_self, res, &error);
if (!response) {
/* First time we try, we fallback to ^SYSINFO */
- if (!self->priv->sysinfoex_support_checked) {
- self->priv->sysinfoex_support_checked = TRUE;
- self->priv->sysinfoex_supported = FALSE;
+ if (self->priv->sysinfoex_support == FEATURE_SUPPORT_UNKNOWN) {
+ self->priv->sysinfoex_support = FEATURE_NOT_SUPPORTED;
mm_dbg ("^SYSINFOEX failed: %s, assuming unsupported", error->message);
g_error_free (error);
run_sysinfo (self, simple);
@@ -355,20 +246,19 @@ run_sysinfoex_ready (MMBaseModem *_self,
return;
}
- self->priv->sysinfoex_supported = TRUE;
- if (!self->priv->sysinfoex_support_checked)
- self->priv->sysinfoex_support_checked = TRUE;
+ if (self->priv->sysinfoex_support == FEATURE_SUPPORT_UNKNOWN)
+ self->priv->sysinfoex_support = FEATURE_SUPPORTED;
result = g_new0 (SysinfoResult, 1);
result->extended = TRUE;
- if (!sysinfoex_parse (response,
- &result->srv_status,
- &result->srv_domain,
- &result->roam_status,
- &result->sim_state,
- &result->sys_mode,
- &result->sys_submode,
- &error)) {
+ if (!mm_huawei_parse_sysinfoex_response (response,
+ &result->srv_status,
+ &result->srv_domain,
+ &result->roam_status,
+ &result->sim_state,
+ &result->sys_mode,
+ &result->sys_submode,
+ &error)) {
mm_dbg ("^SYSINFOEX parsing failed: %s", error->message);
g_simple_async_result_take_error (simple, error);
g_simple_async_result_complete (simple);
@@ -407,13 +297,49 @@ sysinfo (MMBroadbandModemHuawei *self,
callback,
user_data,
sysinfo);
- if (!self->priv->sysinfoex_support_checked || self->priv->sysinfoex_supported)
+ if (self->priv->sysinfoex_support == FEATURE_SUPPORT_UNKNOWN ||
+ self->priv->sysinfoex_support == FEATURE_SUPPORTED)
run_sysinfoex (self, result);
else
run_sysinfo (self, result);
}
/*****************************************************************************/
+/* Reset (Modem interface) */
+
+static gboolean
+reset_finish (MMIfaceModem *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ return !!mm_base_modem_at_command_finish (MM_BASE_MODEM (self), res, error);
+}
+
+static void
+reset (MMIfaceModem *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ const gchar *command;
+
+ /* Unlike other Huawei modems that support AT^RESET for resetting the modem,
+ * Huawei MU736 supports AT^RESET but does not reset the modem upon receiving
+ * AT^RESET. It does, however, support resetting itself via AT+CFUN=16.
+ */
+ if (g_strcmp0 (mm_iface_modem_get_model (self), "MU736") == 0)
+ command = "+CFUN=16";
+ else
+ command = "^RESET";
+
+ mm_base_modem_at_command (MM_BASE_MODEM (self),
+ command,
+ 3,
+ FALSE,
+ callback,
+ user_data);
+}
+
+/*****************************************************************************/
/* Load access technologies (Modem interface) */
static MMModemAccessTechnology
@@ -828,113 +754,8 @@ huawei_to_bands_array (guint32 huawei,
}
static gboolean
-huawei_to_modem_mode (guint mode,
- guint acquisition_order,
- MMModemMode *allowed,
- MMModemMode *preferred,
- GError **error)
-{
- switch (mode) {
- case 2:
- *allowed = (MM_MODEM_MODE_2G | MM_MODEM_MODE_3G);
- switch (acquisition_order) {
- case 1:
- *preferred = MM_MODEM_MODE_2G;
- return TRUE;
- case 2:
- *preferred = MM_MODEM_MODE_3G;
- return TRUE;
- case 0:
- *preferred = MM_MODEM_MODE_NONE;
- return TRUE;
- default:
- break;
- }
- break;
-
- case 13:
- *allowed = MM_MODEM_MODE_2G;
- *preferred = MM_MODEM_MODE_NONE;
- return TRUE;
-
- case 14:
- *allowed = MM_MODEM_MODE_3G;
- *preferred = MM_MODEM_MODE_NONE;
- return TRUE;
-
- default:
- break;
- }
-
- g_set_error (error,
- MM_CORE_ERROR,
- MM_CORE_ERROR_FAILED,
- "Unexpected system mode reference (%u) or "
- "acquisition order (%u)",
- mode,
- acquisition_order);
- return FALSE;
-}
-
-static gboolean
-allowed_mode_to_huawei (MMModemMode allowed,
- MMModemMode preferred,
- guint *huawei_mode,
- guint *huawei_acquisition_order,
- GError **error)
-{
- gchar *allowed_str;
- gchar *preferred_str;
-
- if (allowed == MM_MODEM_MODE_ANY) {
- *huawei_mode = 2;
- *huawei_acquisition_order = 0;
- return TRUE;
- }
-
- if (allowed == MM_MODEM_MODE_2G) {
- *huawei_mode = 13;
- *huawei_acquisition_order = 1;
- return TRUE;
- }
-
- if (allowed == MM_MODEM_MODE_3G) {
- *huawei_mode = 14;
- *huawei_acquisition_order = 2;
- return TRUE;
- }
-
- if (allowed == (MM_MODEM_MODE_2G | MM_MODEM_MODE_3G)) {
- *huawei_mode = 2;
- if (preferred == MM_MODEM_MODE_2G)
- *huawei_acquisition_order = 1;
- else if (preferred == MM_MODEM_MODE_3G)
- *huawei_acquisition_order = 2;
- else
- *huawei_acquisition_order = 0;
- return TRUE;
- }
-
- /* Not supported */
- allowed_str = mm_modem_mode_build_string_from_mask (allowed);
- preferred_str = mm_modem_mode_build_string_from_mask (preferred);
- g_set_error (error,
- MM_CORE_ERROR,
- MM_CORE_ERROR_FAILED,
- "Requested mode (allowed: '%s', preferred: '%s') not "
- "supported by the modem.",
- allowed_str,
- preferred_str);
- g_free (allowed_str);
- g_free (preferred_str);
- return FALSE;
-}
-
-static gboolean
parse_syscfg (const gchar *response,
GArray **bands_array,
- MMModemMode *allowed,
- MMModemMode *preferred,
GError **error)
{
gint mode;
@@ -955,12 +776,6 @@ parse_syscfg (const gchar *response,
return FALSE;
}
- /* Build allowed/preferred modes only if requested */
- if (allowed &&
- preferred &&
- !huawei_to_modem_mode (mode, acquisition_order, allowed, preferred, error))
- return FALSE;
-
/* Band */
if (bands_array &&
!huawei_to_bands_array (band, bands_array, error))
@@ -978,13 +793,13 @@ load_current_bands_finish (MMIfaceModem *self,
GError **error)
{
const gchar *response;
- GArray *bands_array;
+ GArray *bands_array = NULL;
response = mm_base_modem_at_command_finish (MM_BASE_MODEM (self), res, error);
if (!response)
return NULL;
- if (!parse_syscfg (response, &bands_array, NULL, NULL, error))
+ if (!parse_syscfg (response, &bands_array, error))
return NULL;
return bands_array;
@@ -1089,172 +904,390 @@ load_supported_modes_finish (MMIfaceModem *self,
}
static void
-parent_load_supported_modes_ready (MMIfaceModem *self,
- GAsyncResult *res,
- GSimpleAsyncResult *simple)
+syscfg_test_ready (MMBroadbandModemHuawei *self,
+ GAsyncResult *res,
+ GSimpleAsyncResult *simple)
{
+ const gchar *response;
GError *error = NULL;
- GArray *all;
- GArray *combinations;
- GArray *filtered;
- MMModemModeCombination mode;
- all = iface_modem_parent->load_supported_modes_finish (self, res, &error);
- if (!all) {
+ response = mm_base_modem_at_command_finish (MM_BASE_MODEM (self), res, &error);
+ if (response) {
+ /* There are 2G+3G Huawei modems out there which support mode switching with
+ * AT^SYSCFG, but fail to provide a valid response for AT^SYSCFG=? (they just
+ * return an empty string). So handle that case by providing a default response
+ * string to get parsed. Ugly, ugly, blame Huawei.
+ */
+ if (response[0])
+ self->priv->syscfg_supported_modes = mm_huawei_parse_syscfg_test (response, &error);
+ else {
+ self->priv->syscfg_supported_modes = mm_huawei_parse_syscfg_test (MM_HUAWEI_DEFAULT_SYSCFG_FMT, NULL);
+ g_assert (self->priv->syscfg_supported_modes != NULL);
+ }
+ }
+
+ if (self->priv->syscfg_supported_modes) {
+ MMModemModeCombination mode;
+ guint i;
+ GArray *combinations;
+
+ /* Build list of combinations */
+ combinations = g_array_sized_new (FALSE,
+ FALSE,
+ sizeof (MMModemModeCombination),
+ self->priv->syscfg_supported_modes->len);
+ for (i = 0; i < self->priv->syscfg_supported_modes->len; i++) {
+ MMHuaweiSyscfgCombination *huawei_mode;
+
+ huawei_mode = &g_array_index (self->priv->syscfg_supported_modes,
+ MMHuaweiSyscfgCombination,
+ i);
+ mode.allowed = huawei_mode->allowed;
+ mode.preferred = huawei_mode->preferred;
+ g_array_append_val (combinations, mode);
+ }
+
+ self->priv->syscfg_support = FEATURE_SUPPORTED;
+ g_simple_async_result_set_op_res_gpointer (simple,
+ combinations,
+ (GDestroyNotify)g_array_unref);
+ } else {
+ g_debug ("Error while checking ^SYSCFG format: %s", error->message);
+ /* If SIM-PIN error, don't mark as feature unsupported; we'll retry later */
+ if (!g_error_matches (error,
+ MM_MOBILE_EQUIPMENT_ERROR,
+ MM_MOBILE_EQUIPMENT_ERROR_SIM_PIN))
+ self->priv->syscfg_support = FEATURE_NOT_SUPPORTED;
g_simple_async_result_take_error (simple, error);
+ }
+
+ g_simple_async_result_complete (simple);
+ g_object_unref (simple);
+}
+
+static void
+syscfgex_test_ready (MMBroadbandModemHuawei *self,
+ GAsyncResult *res,
+ GSimpleAsyncResult *simple)
+{
+ const gchar *response;
+ GError *error = NULL;
+
+ response = mm_base_modem_at_command_finish (MM_BASE_MODEM (self), res, &error);
+ if (response)
+ self->priv->syscfgex_supported_modes = mm_huawei_parse_syscfgex_test (response, &error);
+
+ if (self->priv->syscfgex_supported_modes) {
+ MMModemModeCombination mode;
+ guint i;
+ GArray *combinations;
+
+ /* Build list of combinations */
+ combinations = g_array_sized_new (FALSE,
+ FALSE,
+ sizeof (MMModemModeCombination),
+ self->priv->syscfgex_supported_modes->len);
+ for (i = 0; i < self->priv->syscfgex_supported_modes->len; i++) {
+ MMHuaweiSyscfgexCombination *huawei_mode;
+
+ huawei_mode = &g_array_index (self->priv->syscfgex_supported_modes,
+ MMHuaweiSyscfgexCombination,
+ i);
+ mode.allowed = huawei_mode->allowed;
+ mode.preferred = huawei_mode->preferred;
+ g_array_append_val (combinations, mode);
+ }
+
+ self->priv->syscfgex_support = FEATURE_SUPPORTED;
+
+ g_simple_async_result_set_op_res_gpointer (simple,
+ combinations,
+ (GDestroyNotify)g_array_unref);
g_simple_async_result_complete (simple);
g_object_unref (simple);
return;
}
- /* Build list of combinations */
- combinations = g_array_sized_new (FALSE, FALSE, sizeof (MMModemModeCombination), 5);
- /* 2G only */
- mode.allowed = MM_MODEM_MODE_2G;
- mode.preferred = MM_MODEM_MODE_NONE;
- g_array_append_val (combinations, mode);
- /* 3G only */
- mode.allowed = MM_MODEM_MODE_3G;
- mode.preferred = MM_MODEM_MODE_NONE;
- g_array_append_val (combinations, mode);
- /* 2G and 3G */
- mode.allowed = (MM_MODEM_MODE_2G | MM_MODEM_MODE_3G);
- mode.preferred = MM_MODEM_MODE_NONE;
- g_array_append_val (combinations, mode);
- /* CDMA modems don't support 'preferred' setups */
- if (!mm_iface_modem_is_cdma_only (self)) {
- /* 2G and 3G, 2G preferred */
- mode.allowed = (MM_MODEM_MODE_2G | MM_MODEM_MODE_3G);
- mode.preferred = MM_MODEM_MODE_2G;
- g_array_append_val (combinations, mode);
- /* 2G and 3G, 3G preferred */
- mode.allowed = (MM_MODEM_MODE_2G | MM_MODEM_MODE_3G);
- mode.preferred = MM_MODEM_MODE_3G;
- g_array_append_val (combinations, mode);
- }
-
- /* Filter out those unsupported modes */
- filtered = mm_filter_supported_modes (all, combinations);
- g_array_unref (all);
- g_array_unref (combinations);
-
- g_simple_async_result_set_op_res_gpointer (simple, filtered, (GDestroyNotify) g_array_unref);
+ /* If SIM-PIN error, don't mark as feature unsupported; we'll retry later */
+ if (error) {
+ g_debug ("Error while checking ^SYSCFGEX format: %s", error->message);
+ if (g_error_matches (error,
+ MM_MOBILE_EQUIPMENT_ERROR,
+ MM_MOBILE_EQUIPMENT_ERROR_SIM_PIN)) {
+ g_simple_async_result_take_error (simple, error);
+ g_simple_async_result_complete (simple);
+ g_object_unref (simple);
+ return;
+ }
+ g_error_free (error);
+ }
+
+ self->priv->syscfgex_support = FEATURE_NOT_SUPPORTED;
+
+ /* Try with SYSCFG */
+ mm_base_modem_at_command (MM_BASE_MODEM (self),
+ "^SYSCFG=?",
+ 3,
+ TRUE,
+ (GAsyncReadyCallback)syscfg_test_ready,
+ simple);
+}
+
+static void
+prefmode_test_ready (MMBroadbandModemHuawei *self,
+ GAsyncResult *res,
+ GSimpleAsyncResult *simple)
+{
+ const gchar *response;
+ GError *error = NULL;
+
+ response = mm_base_modem_at_command_finish (MM_BASE_MODEM (self), res, &error);
+ if (response)
+ self->priv->prefmode_supported_modes = mm_huawei_parse_prefmode_test (response, &error);
+
+ if (self->priv->prefmode_supported_modes) {
+ MMModemModeCombination mode;
+ guint i;
+ GArray *combinations;
+
+ /* Build list of combinations */
+ combinations = g_array_sized_new (FALSE,
+ FALSE,
+ sizeof (MMModemModeCombination),
+ self->priv->prefmode_supported_modes->len);
+ for (i = 0; i < self->priv->prefmode_supported_modes->len; i++) {
+ MMHuaweiPrefmodeCombination *huawei_mode;
+
+ huawei_mode = &g_array_index (self->priv->prefmode_supported_modes,
+ MMHuaweiPrefmodeCombination,
+ i);
+ mode.allowed = huawei_mode->allowed;
+ mode.preferred = huawei_mode->preferred;
+ g_array_append_val (combinations, mode);
+ }
+
+ self->priv->prefmode_support = FEATURE_SUPPORTED;
+ g_simple_async_result_set_op_res_gpointer (simple,
+ combinations,
+ (GDestroyNotify)g_array_unref);
+ } else {
+ g_debug ("Error while checking ^PREFMODE format: %s", error->message);
+ /* If SIM-PIN error, don't mark as feature unsupported; we'll retry later */
+ if (!g_error_matches (error,
+ MM_MOBILE_EQUIPMENT_ERROR,
+ MM_MOBILE_EQUIPMENT_ERROR_SIM_PIN))
+ self->priv->prefmode_support = FEATURE_NOT_SUPPORTED;
+ g_simple_async_result_take_error (simple, error);
+ }
+
g_simple_async_result_complete (simple);
g_object_unref (simple);
}
static void
-load_supported_modes (MMIfaceModem *self,
+load_supported_modes (MMIfaceModem *_self,
GAsyncReadyCallback callback,
gpointer user_data)
{
- /* Run parent's loading */
- iface_modem_parent->load_supported_modes (
- MM_IFACE_MODEM (self),
- (GAsyncReadyCallback)parent_load_supported_modes_ready,
- g_simple_async_result_new (G_OBJECT (self),
- callback,
- user_data,
- load_supported_modes));
+ MMBroadbandModemHuawei *self = MM_BROADBAND_MODEM_HUAWEI (_self);
+ GSimpleAsyncResult *result;
+
+ result = g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ load_supported_modes);
+
+ if (mm_iface_modem_is_cdma_only (_self)) {
+ /* ^PREFMODE only in CDMA-only modems */
+ self->priv->syscfg_support = FEATURE_NOT_SUPPORTED;
+ self->priv->syscfgex_support = FEATURE_NOT_SUPPORTED;
+ mm_base_modem_at_command (MM_BASE_MODEM (self),
+ "^PREFMODE=?",
+ 3,
+ TRUE,
+ (GAsyncReadyCallback)prefmode_test_ready,
+ result);
+ return;
+ }
+
+ /* Check SYSCFGEX */
+ self->priv->prefmode_support = FEATURE_NOT_SUPPORTED;
+ mm_base_modem_at_command (MM_BASE_MODEM (self),
+ "^SYSCFGEX=?",
+ 3,
+ TRUE,
+ (GAsyncReadyCallback)syscfgex_test_ready,
+ result);
}
/*****************************************************************************/
/* Load initial allowed/preferred modes (Modem interface) */
static gboolean
-parse_prefmode (const gchar *response, MMModemMode *preferred, GError **error)
+load_current_modes_finish (MMIfaceModem *self,
+ GAsyncResult *res,
+ MMModemMode *allowed,
+ MMModemMode *preferred,
+ GError **error)
{
- int a;
+ MMModemModeCombination *out;
- response = mm_strip_tag (response, "^PREFMODE:");
- a = atoi (response);
- if (a == 2) {
- *preferred = MM_MODEM_MODE_2G;
- return TRUE;
- } else if (a == 4) {
- *preferred = MM_MODEM_MODE_3G;
- return TRUE;
- } else if (a == 8) {
- *preferred = MM_MODEM_MODE_NONE;
- return TRUE;
+ if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error))
+ return FALSE;
+
+ out = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (res));
+ *allowed = out->allowed;
+ *preferred = out->preferred;
+ return TRUE;
+}
+
+static void
+prefmode_load_current_modes_ready (MMBroadbandModemHuawei *self,
+ GAsyncResult *res,
+ GSimpleAsyncResult *simple)
+{
+ const gchar *response;
+ GError *error = NULL;
+ const MMHuaweiPrefmodeCombination *current = NULL;
+
+ response = mm_base_modem_at_command_finish (MM_BASE_MODEM (self), res, &error);
+ if (response)
+ current = mm_huawei_parse_prefmode_response (response,
+ self->priv->prefmode_supported_modes,
+ &error);
+
+ if (error)
+ g_simple_async_result_take_error (simple, error);
+ else {
+ MMModemModeCombination out;
+
+ out.allowed = current->allowed;
+ out.preferred = current->preferred;
+ g_simple_async_result_set_op_res_gpointer (simple, &out, NULL);
}
+ g_simple_async_result_complete (simple);
+ g_object_unref (simple);
+}
- g_set_error_literal (error,
- MM_CORE_ERROR,
- MM_CORE_ERROR_FAILED,
- "Failed to parse ^PREFMODE response");
- return FALSE;
+static void
+syscfg_load_current_modes_ready (MMBroadbandModemHuawei *self,
+ GAsyncResult *res,
+ GSimpleAsyncResult *simple)
+{
+ const gchar *response;
+ GError *error = NULL;
+ const MMHuaweiSyscfgCombination *current = NULL;
+
+ response = mm_base_modem_at_command_finish (MM_BASE_MODEM (self), res, &error);
+ if (response)
+ current = mm_huawei_parse_syscfg_response (response,
+ self->priv->syscfg_supported_modes,
+ &error);
+
+ if (error)
+ g_simple_async_result_take_error (simple, error);
+ else {
+ MMModemModeCombination out;
+
+ out.allowed = current->allowed;
+ out.preferred = current->preferred;
+ g_simple_async_result_set_op_res_gpointer (simple, &out, NULL);
+ }
+
+ g_simple_async_result_complete (simple);
+ g_object_unref (simple);
}
-static gboolean
-load_current_modes_finish (MMIfaceModem *self,
- GAsyncResult *res,
- MMModemMode *allowed,
- MMModemMode *preferred,
- GError **error)
+static void
+syscfgex_load_current_modes_ready (MMBroadbandModemHuawei *self,
+ GAsyncResult *res,
+ GSimpleAsyncResult *simple)
{
const gchar *response;
+ GError *error = NULL;
+ const MMHuaweiSyscfgexCombination *current = NULL;
- response = mm_base_modem_at_command_finish (MM_BASE_MODEM (self), res, error);
- if (!response)
- return FALSE;
+ response = mm_base_modem_at_command_finish (MM_BASE_MODEM (self), res, &error);
+ if (response)
+ current = mm_huawei_parse_syscfgex_response (response,
+ self->priv->syscfgex_supported_modes,
+ &error);
+ if (error)
+ g_simple_async_result_take_error (simple, error);
+ else {
+ MMModemModeCombination out;
- if (mm_iface_modem_is_cdma_only (self)) {
- *allowed = (MM_MODEM_MODE_2G | MM_MODEM_MODE_3G);
- return parse_prefmode (response, preferred, error);
+ out.allowed = current->allowed;
+ out.preferred = current->preferred;
+ g_simple_async_result_set_op_res_gpointer (simple, &out, NULL);
}
- return parse_syscfg (response, NULL, allowed, preferred, error);
+ g_simple_async_result_complete (simple);
+ g_object_unref (simple);
}
static void
-load_current_modes (MMIfaceModem *self,
+load_current_modes (MMIfaceModem *_self,
GAsyncReadyCallback callback,
gpointer user_data)
{
- const char *command;
+ MMBroadbandModemHuawei *self = MM_BROADBAND_MODEM_HUAWEI (_self);
+ GSimpleAsyncResult *result;
- mm_dbg ("loading allowed_modes (huawei)...");
+ mm_dbg ("loading current modes (huawei)...");
- command = mm_iface_modem_is_cdma_only (self) ? "^PREFMODE?" : "^SYSCFG?";
- mm_base_modem_at_command (MM_BASE_MODEM (self),
- command,
- 3,
- FALSE,
- callback,
- user_data);
-}
+ result = g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ load_current_modes);
-/*****************************************************************************/
-/* Set current modes (Modem interface) */
+ if (self->priv->syscfgex_support == FEATURE_SUPPORTED) {
+ g_assert (self->priv->syscfgex_supported_modes != NULL);
+ mm_base_modem_at_command (
+ MM_BASE_MODEM (self),
+ "^SYSCFGEX?",
+ 3,
+ FALSE,
+ (GAsyncReadyCallback)syscfgex_load_current_modes_ready,
+ result);
+ return;
+ }
-static gboolean
-allowed_mode_to_prefmode (MMModemMode allowed, guint *huawei_mode, GError **error)
-{
- char *allowed_str;
-
- *huawei_mode = 0;
- if (allowed == MM_MODEM_MODE_ANY)
- *huawei_mode = 8;
- else if (allowed == (MM_MODEM_MODE_2G | MM_MODEM_MODE_3G))
- *huawei_mode = 8;
- else if (allowed == MM_MODEM_MODE_2G)
- *huawei_mode = 2;
- else if (allowed == MM_MODEM_MODE_3G)
- *huawei_mode = 4;
- else {
- /* Not supported */
- allowed_str = mm_modem_mode_build_string_from_mask (allowed);
- g_set_error (error,
- MM_CORE_ERROR,
- MM_CORE_ERROR_FAILED,
- "Requested mode (allowed: '%s') not supported by the modem.",
- allowed_str);
- g_free (allowed_str);
+ if (self->priv->syscfg_support == FEATURE_SUPPORTED) {
+ g_assert (self->priv->syscfg_supported_modes != NULL);
+ mm_base_modem_at_command (
+ MM_BASE_MODEM (self),
+ "^SYSCFG?",
+ 3,
+ FALSE,
+ (GAsyncReadyCallback)syscfg_load_current_modes_ready,
+ result);
+ return;
+ }
+
+ if (self->priv->prefmode_support == FEATURE_SUPPORTED) {
+ g_assert (self->priv->prefmode_supported_modes != NULL);
+ mm_base_modem_at_command (
+ MM_BASE_MODEM (self),
+ "^PREFMODE?",
+ 3,
+ FALSE,
+ (GAsyncReadyCallback)prefmode_load_current_modes_ready,
+ result);
+ return;
}
- return *huawei_mode ? TRUE : FALSE;
+
+ g_simple_async_result_set_error (result,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Unable to load current modes");
+ g_simple_async_result_complete_in_idle (result);
+ g_object_unref (result);
}
+/*****************************************************************************/
+/* Set current modes (Modem interface) */
+
static gboolean
set_current_modes_finish (MMIfaceModem *self,
GAsyncResult *res,
@@ -1264,67 +1297,188 @@ set_current_modes_finish (MMIfaceModem *self,
}
static void
-allowed_mode_update_ready (MMBroadbandModemHuawei *self,
- GAsyncResult *res,
- GSimpleAsyncResult *operation_result)
+set_current_modes_ready (MMBroadbandModemHuawei *self,
+ GAsyncResult *res,
+ GSimpleAsyncResult *simple)
{
GError *error = NULL;
mm_base_modem_at_command_finish (MM_BASE_MODEM (self), res, &error);
if (error)
/* Let the error be critical. */
- g_simple_async_result_take_error (operation_result, error);
+ g_simple_async_result_take_error (simple, error);
else
- g_simple_async_result_set_op_res_gboolean (operation_result, TRUE);
- g_simple_async_result_complete (operation_result);
- g_object_unref (operation_result);
+ g_simple_async_result_set_op_res_gboolean (simple, TRUE);
+ g_simple_async_result_complete (simple);
+ g_object_unref (simple);
+}
+
+static gboolean
+prefmode_set_current_modes (MMBroadbandModemHuawei *self,
+ MMModemMode allowed,
+ MMModemMode preferred,
+ GSimpleAsyncResult *simple,
+ GError **error)
+{
+ guint i;
+ MMHuaweiPrefmodeCombination *found = NULL;
+ gchar *command;
+
+ for (i = 0; i < self->priv->prefmode_supported_modes->len; i++) {
+ MMHuaweiPrefmodeCombination *single;
+
+ single = &g_array_index (self->priv->prefmode_supported_modes,
+ MMHuaweiPrefmodeCombination,
+ i);
+ if (single->allowed == allowed && single->preferred == preferred) {
+ found = single;
+ break;
+ }
+ }
+
+ if (!found) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_NOT_FOUND,
+ "Requested mode ^PREFMODE combination not found");
+ return FALSE;
+ }
+
+ command = g_strdup_printf ("^PREFMODE=%u", found->prefmode);
+ mm_base_modem_at_command (
+ MM_BASE_MODEM (self),
+ command,
+ 3,
+ FALSE,
+ (GAsyncReadyCallback)set_current_modes_ready,
+ simple);
+ g_free (command);
+ return TRUE;
+}
+
+static gboolean
+syscfg_set_current_modes (MMBroadbandModemHuawei *self,
+ MMModemMode allowed,
+ MMModemMode preferred,
+ GSimpleAsyncResult *simple,
+ GError **error)
+{
+ guint i;
+ MMHuaweiSyscfgCombination *found = NULL;
+ gchar *command;
+
+ for (i = 0; i < self->priv->syscfg_supported_modes->len; i++) {
+ MMHuaweiSyscfgCombination *single;
+
+ single = &g_array_index (self->priv->syscfg_supported_modes,
+ MMHuaweiSyscfgCombination,
+ i);
+ if (single->allowed == allowed && single->preferred == preferred) {
+ found = single;
+ break;
+ }
+ }
+
+ if (!found) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_NOT_FOUND,
+ "Requested mode ^SYSCFG combination not found");
+ return FALSE;
+ }
+
+ command = g_strdup_printf ("^SYSCFG=%u,%u,40000000,2,4",
+ found->mode,
+ found->acqorder);
+ mm_base_modem_at_command (
+ MM_BASE_MODEM (self),
+ command,
+ 3,
+ FALSE,
+ (GAsyncReadyCallback)set_current_modes_ready,
+ simple);
+ g_free (command);
+ return TRUE;
+}
+
+static gboolean
+syscfgex_set_current_modes (MMBroadbandModemHuawei *self,
+ MMModemMode allowed,
+ MMModemMode preferred,
+ GSimpleAsyncResult *simple,
+ GError **error)
+{
+ guint i;
+ MMHuaweiSyscfgexCombination *found = NULL;
+ gchar *command;
+
+ for (i = 0; i < self->priv->syscfgex_supported_modes->len; i++) {
+ MMHuaweiSyscfgexCombination *single;
+
+ single = &g_array_index (self->priv->syscfgex_supported_modes,
+ MMHuaweiSyscfgexCombination,
+ i);
+ if (single->allowed == allowed && single->preferred == preferred) {
+ found = single;
+ break;
+ }
+ }
+
+ if (!found) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_NOT_FOUND,
+ "Requested mode ^SYSCFGEX combination not found");
+ return FALSE;
+ }
+
+ command = g_strdup_printf ("^SYSCFGEX=\"%s\",3fffffff,2,4,7fffffffffffffff,,",
+ found->mode_str);
+ mm_base_modem_at_command (
+ MM_BASE_MODEM (self),
+ command,
+ 3,
+ FALSE,
+ (GAsyncReadyCallback)set_current_modes_ready,
+ simple);
+ g_free (command);
+ return TRUE;
}
static void
-set_current_modes (MMIfaceModem *self,
+set_current_modes (MMIfaceModem *_self,
MMModemMode allowed,
MMModemMode preferred,
GAsyncReadyCallback callback,
gpointer user_data)
{
+ MMBroadbandModemHuawei *self = MM_BROADBAND_MODEM_HUAWEI (_self);
GSimpleAsyncResult *result;
- gchar *command = NULL;
- guint mode = 0;
- guint acquisition_order;
GError *error = NULL;
+ mm_dbg ("setting current modes (huawei)...");
+
result = g_simple_async_result_new (G_OBJECT (self),
callback,
user_data,
set_current_modes);
- if (mm_iface_modem_is_cdma_only (self)) {
- if (allowed_mode_to_prefmode (allowed, &mode, &error))
- command = g_strdup_printf ("^PREFMODE=%d", mode);
- } else {
- if (allowed_mode_to_huawei (allowed,
- preferred,
- &mode,
- &acquisition_order,
- &error))
- command = g_strdup_printf ("AT^SYSCFG=%d,%d,40000000,2,4", mode, acquisition_order);
- }
+ if (self->priv->syscfgex_support == FEATURE_SUPPORTED)
+ syscfgex_set_current_modes (self, allowed, preferred, result, &error);
+ else if (self->priv->syscfg_support == FEATURE_SUPPORTED)
+ syscfg_set_current_modes (self, allowed, preferred, result, &error);
+ else if (self->priv->prefmode_support == FEATURE_SUPPORTED)
+ prefmode_set_current_modes (self, allowed, preferred, result, &error);
+ else
+ error = g_error_new (MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Setting current modes is not supported");
- if (command) {
- mm_base_modem_at_command (
- MM_BASE_MODEM (self),
- command,
- 3,
- FALSE,
- (GAsyncReadyCallback)allowed_mode_update_ready,
- result);
- } else {
- g_assert (error);
+ if (error) {
g_simple_async_result_take_error (result, error);
g_simple_async_result_complete_in_idle (result);
g_object_unref (result);
}
- g_free (command);
}
/*****************************************************************************/
@@ -1460,6 +1614,75 @@ huawei_status_changed (MMAtSerialPort *port,
g_free (str);
}
+typedef struct {
+ gboolean ipv4_available;
+ gboolean ipv4_connected;
+ gboolean ipv6_available;
+ gboolean ipv6_connected;
+} NdisstatResult;
+
+static void
+bearer_report_connection_status (MMBearer *bearer,
+ NdisstatResult *ndisstat_result)
+{
+ if (ndisstat_result->ipv4_available) {
+ /* TODO: MMBroadbandBearerHuawei does not currently support IPv6.
+ * When it does, we should check the IP family associated with each bearer.
+ *
+ * Also, send DISCONNECTING so that we give some time before actually
+ * disconnecting the connection */
+ mm_bearer_report_connection_status (bearer,
+ ndisstat_result->ipv4_connected ?
+ MM_BEARER_CONNECTION_STATUS_CONNECTED :
+ MM_BEARER_CONNECTION_STATUS_DISCONNECTING);
+ }
+}
+
+static void
+huawei_ndisstat_changed (MMAtSerialPort *port,
+ GMatchInfo *match_info,
+ MMBroadbandModemHuawei *self)
+{
+ gchar *str;
+ NdisstatResult ndisstat_result;
+ GError *error = NULL;
+ MMBearerList *list = NULL;
+
+ str = g_match_info_fetch (match_info, 1);
+ if (!mm_huawei_parse_ndisstatqry_response (str,
+ &ndisstat_result.ipv4_available,
+ &ndisstat_result.ipv4_connected,
+ &ndisstat_result.ipv6_available,
+ &ndisstat_result.ipv6_connected,
+ &error)) {
+ mm_dbg ("Ignore invalid ^NDISSTAT unsolicited message: '%s' (error %s)",
+ str, error->message);
+ g_error_free (error);
+ g_free (str);
+ return;
+ }
+ g_free (str);
+
+ mm_dbg ("NDIS status: IPv4 %s, IPv6 %s",
+ ndisstat_result.ipv4_available ?
+ (ndisstat_result.ipv4_connected ? "connected" : "disconnected") : "not available",
+ ndisstat_result.ipv6_available ?
+ (ndisstat_result.ipv6_connected ? "connected" : "disconnected") : "not available");
+
+ /* If empty bearer list, nothing else to do */
+ g_object_get (self,
+ MM_IFACE_MODEM_BEARER_LIST, &list,
+ NULL);
+ if (!list)
+ return;
+
+ mm_bearer_list_foreach (list,
+ (MMBearerListForeachFunc)bearer_report_connection_status,
+ &ndisstat_result);
+
+ g_object_unref (list);
+}
+
static void
set_3gpp_unsolicited_events_handlers (MMBroadbandModemHuawei *self,
gboolean enable)
@@ -1498,6 +1721,13 @@ set_3gpp_unsolicited_events_handlers (MMBroadbandModemHuawei *self,
enable ? (MMAtSerialUnsolicitedMsgFn)huawei_status_changed : NULL,
enable ? self : NULL,
NULL);
+
+ mm_at_serial_port_add_unsolicited_msg_handler (
+ ports[i],
+ self->priv->ndisstat_regex,
+ enable ? (MMAtSerialUnsolicitedMsgFn)huawei_ndisstat_changed : NULL,
+ enable ? self : NULL,
+ NULL);
}
}
@@ -1737,6 +1967,47 @@ modem_3gpp_disable_unsolicited_events (MMIfaceModem3gpp *self,
}
/*****************************************************************************/
+/* Operator Name loading (3GPP interface) */
+
+static gchar *
+modem_3gpp_load_operator_name_finish (MMIfaceModem3gpp *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ const gchar *result;
+ gchar *operator_name;
+
+ result = mm_base_modem_at_command_finish (MM_BASE_MODEM (self), res, error);
+ if (!result)
+ return NULL;
+
+ /* Despite +CSCS? may claim supporting UCS2, Huawei modems always report the
+ * operator name in ASCII in a +COPS response. Thus, we ignore the current
+ * charset claimed by the modem and assume the charset is IRA when parsing
+ * the operator name.
+ */
+ operator_name = mm_3gpp_parse_operator (result, MM_MODEM_CHARSET_IRA);
+ if (operator_name)
+ mm_dbg ("loaded Operator Name: %s", operator_name);
+
+ return operator_name;
+}
+
+static void
+modem_3gpp_load_operator_name (MMIfaceModem3gpp *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ mm_dbg ("loading Operator Name (huawei)...");
+ mm_base_modem_at_command (MM_BASE_MODEM (self),
+ "+COPS=3,0;+COPS?",
+ 3,
+ FALSE,
+ callback,
+ user_data);
+}
+
+/*****************************************************************************/
/* Create Bearer (Modem interface) */
typedef struct {
@@ -1806,9 +2077,9 @@ static void
create_bearer_for_net_port (CreateBearerContext *ctx)
{
switch (ctx->self->priv->ndisdup_support) {
- case NDISDUP_SUPPORT_UNKNOWN:
+ case FEATURE_SUPPORT_UNKNOWN:
g_assert_not_reached ();
- case NDISDUP_NOT_SUPPORTED:
+ case FEATURE_NOT_SUPPORTED:
mm_dbg ("^NDISDUP not supported, creating default bearer...");
mm_broadband_bearer_new (MM_BROADBAND_MODEM (ctx->self),
ctx->properties,
@@ -1816,7 +2087,7 @@ create_bearer_for_net_port (CreateBearerContext *ctx)
(GAsyncReadyCallback)broadband_bearer_new_ready,
ctx);
return;
- case NDISDUP_SUPPORTED:
+ case FEATURE_SUPPORTED:
mm_dbg ("^NDISDUP supported, creating huawei bearer...");
mm_broadband_bearer_huawei_new (MM_BROADBAND_MODEM_HUAWEI (ctx->self),
ctx->properties,
@@ -1847,25 +2118,29 @@ huawei_modem_create_bearer (MMIfaceModem *self,
port = mm_base_modem_peek_best_data_port (MM_BASE_MODEM (self), MM_PORT_TYPE_NET);
if (port) {
- GUdevDevice *net_port;
- GUdevClient *client;
+ /* Check NDISDUP support the first time we need it */
+ if (ctx->self->priv->ndisdup_support == FEATURE_SUPPORT_UNKNOWN) {
+ GUdevDevice *net_port;
+ GUdevClient *client;
- client = g_udev_client_new (NULL);
- net_port = (g_udev_client_query_by_subsystem_and_name (
+ client = g_udev_client_new (NULL);
+ net_port = (g_udev_client_query_by_subsystem_and_name (
client,
"net",
mm_port_get_device (port)));
- if (g_udev_device_get_property_as_boolean (net_port, "ID_MM_HUAWEI_NDISDUP_SUPPORTED")) {
- mm_dbg ("This device can support ndisdup feature");
- ctx->self->priv->ndisdup_support = NDISDUP_SUPPORTED;
- } else {
- mm_dbg ("This device can not support ndisdup feature");
- ctx->self->priv->ndisdup_support = NDISDUP_NOT_SUPPORTED;
+ if (net_port && g_udev_device_get_property_as_boolean (net_port, "ID_MM_HUAWEI_NDISDUP_SUPPORTED")) {
+ mm_dbg ("This device (%s) can support ndisdup feature", mm_port_get_device (port));
+ ctx->self->priv->ndisdup_support = FEATURE_SUPPORTED;
+ } else {
+ mm_dbg ("This device (%s) can not support ndisdup feature", mm_port_get_device (port));
+ ctx->self->priv->ndisdup_support = FEATURE_NOT_SUPPORTED;
+ }
+ if (net_port)
+ g_object_unref (net_port);
+ g_object_unref (client);
}
create_bearer_for_net_port (ctx);
-
- g_object_unref (client);
return;
}
@@ -2536,6 +2811,264 @@ modem_time_load_network_time (MMIfaceModemTime *self,
}
/*****************************************************************************/
+/* Power state loading (Modem interface) */
+
+static void
+enable_disable_unsolicited_rfswitch_event_handler (MMBroadbandModemHuawei *self,
+ gboolean enable)
+{
+ MMAtSerialPort *ports[2];
+ guint i;
+
+ mm_dbg ("%s ^RFSWITCH unsolicited event handler",
+ enable ? "Enable" : "Disable");
+
+ ports[0] = mm_base_modem_peek_port_primary (MM_BASE_MODEM (self));
+ ports[1] = mm_base_modem_peek_port_secondary (MM_BASE_MODEM (self));
+
+ for (i = 0; i < 2; i++)
+ if (ports[i])
+ mm_at_serial_port_enable_unsolicited_msg_handler (
+ ports[i],
+ self->priv->rfswitch_regex,
+ enable);
+}
+
+static void
+parent_load_power_state_ready (MMIfaceModem *self,
+ GAsyncResult *res,
+ GSimpleAsyncResult *result)
+{
+ GError *error = NULL;
+ MMModemPowerState power_state;
+
+ power_state = iface_modem_parent->load_power_state_finish (self, res, &error);
+ if (error)
+ g_simple_async_result_take_error (result, error);
+ else
+ g_simple_async_result_set_op_res_gpointer (result, GUINT_TO_POINTER (power_state), NULL);
+
+ g_simple_async_result_complete (result);
+ g_object_unref (result);
+}
+
+static void
+huawei_rfswitch_check_ready (MMBaseModem *_self,
+ GAsyncResult *res,
+ GSimpleAsyncResult *result)
+{
+ MMBroadbandModemHuawei *self = MM_BROADBAND_MODEM_HUAWEI (_self);
+ GError *error = NULL;
+ const gchar *response;
+ gint sw_state;
+
+ enable_disable_unsolicited_rfswitch_event_handler (MM_BROADBAND_MODEM_HUAWEI (self),
+ TRUE /* enable */);
+
+ response = mm_base_modem_at_command_finish (_self, res, &error);
+ if (response) {
+ response = mm_strip_tag (response, "^RFSWITCH:");
+ if (sscanf (response, "%d", &sw_state) != 1 ||
+ (sw_state != 0 && sw_state != 1)) {
+ mm_warn ("Couldn't parse ^RFSWITCH response: '%s'", response);
+ error = g_error_new (MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Couldn't parse ^RFSWITCH response: '%s'",
+ response);
+ }
+ }
+
+ switch (self->priv->rfswitch_support) {
+ case FEATURE_SUPPORT_UNKNOWN:
+ if (error) {
+ mm_dbg ("The device does not support ^RFSWITCH");
+ self->priv->rfswitch_support = FEATURE_NOT_SUPPORTED;
+ g_error_free (error);
+ /* Fall back to parent's load_power_state */
+ iface_modem_parent->load_power_state (MM_IFACE_MODEM (self),
+ (GAsyncReadyCallback)parent_load_power_state_ready,
+ result);
+ return;
+ }
+
+ mm_dbg ("The device supports ^RFSWITCH");
+ self->priv->rfswitch_support = FEATURE_SUPPORTED;
+ break;
+ case FEATURE_SUPPORTED:
+ break;
+ default:
+ g_assert_not_reached ();
+ break;
+ }
+
+ if (error)
+ g_simple_async_result_take_error (result, error);
+ else
+ g_simple_async_result_set_op_res_gpointer (result,
+ sw_state ?
+ GUINT_TO_POINTER (MM_MODEM_POWER_STATE_ON) :
+ GUINT_TO_POINTER (MM_MODEM_POWER_STATE_LOW),
+ NULL);
+
+ g_simple_async_result_complete (result);
+ g_object_unref (result);
+}
+
+static MMModemPowerState
+load_power_state_finish (MMIfaceModem *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error))
+ return MM_MODEM_POWER_STATE_UNKNOWN;
+
+ return (MMModemPowerState)GPOINTER_TO_UINT (g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (res)));
+}
+
+static void
+load_power_state (MMIfaceModem *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ GSimpleAsyncResult *result;
+
+ result = g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ load_power_state);
+
+ switch (MM_BROADBAND_MODEM_HUAWEI (self)->priv->rfswitch_support) {
+ case FEATURE_SUPPORT_UNKNOWN:
+ case FEATURE_SUPPORTED: {
+ /* Temporarily disable the unsolicited ^RFSWITCH event handler in order to
+ * prevent it from discarding the response to the ^RFSWITCH? command.
+ * It will be re-enabled in huawei_rfswitch_check_ready.
+ */
+ enable_disable_unsolicited_rfswitch_event_handler (MM_BROADBAND_MODEM_HUAWEI (self),
+ FALSE /* enable */);
+ mm_base_modem_at_command (MM_BASE_MODEM (self),
+ "^RFSWITCH?",
+ 3,
+ FALSE,
+ (GAsyncReadyCallback)huawei_rfswitch_check_ready,
+ result);
+ break;
+ }
+ case FEATURE_NOT_SUPPORTED:
+ /* Run parent's load_power_state */
+ iface_modem_parent->load_power_state (self,
+ (GAsyncReadyCallback)parent_load_power_state_ready,
+ result);
+ break;
+ default:
+ g_assert_not_reached ();
+ break;
+ }
+}
+
+/*****************************************************************************/
+/* Modem power up (Modem interface) */
+
+static gboolean
+huawei_modem_power_up_finish (MMIfaceModem *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ return !!mm_base_modem_at_command_finish (MM_BASE_MODEM (self), res, error);
+}
+
+static void
+huawei_modem_power_up (MMIfaceModem *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ switch (MM_BROADBAND_MODEM_HUAWEI (self)->priv->rfswitch_support) {
+ case FEATURE_NOT_SUPPORTED:
+ mm_base_modem_at_command (MM_BASE_MODEM (self),
+ "+CFUN=1",
+ 30,
+ FALSE,
+ callback,
+ user_data);
+ break;
+ case FEATURE_SUPPORTED:
+ mm_base_modem_at_command (MM_BASE_MODEM (self),
+ "^RFSWITCH=1",
+ 30,
+ FALSE,
+ callback,
+ user_data);
+ break;
+ default:
+ g_assert_not_reached ();
+ break;
+ }
+}
+
+/*****************************************************************************/
+/* Modem power down (Modem interface) */
+
+static gboolean
+huawei_modem_power_down_finish (MMIfaceModem *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ return !!mm_base_modem_at_command_finish (MM_BASE_MODEM (self), res, error);
+}
+
+static void
+huawei_modem_power_down (MMIfaceModem *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ switch (MM_BROADBAND_MODEM_HUAWEI (self)->priv->rfswitch_support) {
+ case FEATURE_NOT_SUPPORTED:
+ mm_base_modem_at_command (MM_BASE_MODEM (self),
+ "+CFUN=0",
+ 30,
+ FALSE,
+ callback,
+ user_data);
+ break;
+ case FEATURE_SUPPORTED:
+ mm_base_modem_at_command (MM_BASE_MODEM (self),
+ "^RFSWITCH=0",
+ 30,
+ FALSE,
+ callback,
+ user_data);
+ break;
+ default:
+ g_assert_not_reached ();
+ break;
+ }
+}
+
+/*****************************************************************************/
+/* Create SIM (Modem interface) */
+
+static MMSim *
+huawei_modem_create_sim_finish (MMIfaceModem *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ return mm_sim_huawei_new_finish (res, error);
+}
+
+static void
+huawei_modem_create_sim (MMIfaceModem *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ /* New Sierra SIM */
+ mm_sim_huawei_new (MM_BASE_MODEM (self),
+ NULL, /* cancellable */
+ callback,
+ user_data);
+}
+
+
+/*****************************************************************************/
/* Check support (Time interface) */
static gboolean
@@ -2605,10 +3138,26 @@ set_ignored_unsolicited_events_handlers (MMBroadbandModemHuawei *self)
NULL, NULL, NULL);
mm_at_serial_port_add_unsolicited_msg_handler (
ports[i],
+ self->priv->connect_regex,
+ NULL, NULL, NULL);
+ mm_at_serial_port_add_unsolicited_msg_handler (
+ ports[i],
self->priv->csnr_regex,
NULL, NULL, NULL);
mm_at_serial_port_add_unsolicited_msg_handler (
ports[i],
+ self->priv->cusatp_regex,
+ NULL, NULL, NULL);
+ mm_at_serial_port_add_unsolicited_msg_handler (
+ ports[i],
+ self->priv->cusatend_regex,
+ NULL, NULL, NULL);
+ mm_at_serial_port_add_unsolicited_msg_handler (
+ ports[i],
+ self->priv->dsdormant_regex,
+ NULL, NULL, NULL);
+ mm_at_serial_port_add_unsolicited_msg_handler (
+ ports[i],
self->priv->simst_regex,
NULL, NULL, NULL);
mm_at_serial_port_add_unsolicited_msg_handler (
@@ -2625,7 +3174,15 @@ set_ignored_unsolicited_events_handlers (MMBroadbandModemHuawei *self)
NULL, NULL, NULL);
mm_at_serial_port_add_unsolicited_msg_handler (
ports[i],
- self->priv->ndisstat_regex,
+ self->priv->pdpdeact_regex,
+ NULL, NULL, NULL);
+ mm_at_serial_port_add_unsolicited_msg_handler (
+ ports[i],
+ self->priv->ndisend_regex,
+ NULL, NULL, NULL);
+ mm_at_serial_port_add_unsolicited_msg_handler (
+ ports[i],
+ self->priv->rfswitch_regex,
NULL, NULL, NULL);
}
}
@@ -2670,11 +3227,11 @@ mm_broadband_modem_huawei_init (MMBroadbandModemHuawei *self)
MM_TYPE_BROADBAND_MODEM_HUAWEI,
MMBroadbandModemHuaweiPrivate);
/* Prepare regular expressions to setup */
- self->priv->rssi_regex = g_regex_new ("\\r\\n\\^RSSI:(\\d+)\\r\\n",
+ self->priv->rssi_regex = g_regex_new ("\\r\\n\\^RSSI:\\s*(\\d+)\\r\\n",
G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
- self->priv->rssilvl_regex = g_regex_new ("\\r\\n\\^RSSILVL:(\\d+)\\r\\n",
+ self->priv->rssilvl_regex = g_regex_new ("\\r\\n\\^RSSILVL:\\s*(\\d+)\\r+\\n",
G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
- self->priv->hrssilvl_regex = g_regex_new ("\\r\\n\\^HRSSILVL:(\\d+)\\r\\n",
+ self->priv->hrssilvl_regex = g_regex_new ("\\r\\n\\^HRSSILVL:\\s*(\\d+)\\r+\\n",
G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
/* 3GPP: <cr><lf>^MODE:5<cr><lf>
@@ -2684,10 +3241,20 @@ mm_broadband_modem_huawei_init (MMBroadbandModemHuawei *self)
G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
self->priv->dsflowrpt_regex = g_regex_new ("\\r\\n\\^DSFLOWRPT:(.+)\\r\\n",
G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
+ self->priv->ndisstat_regex = g_regex_new ("\\r\\n(\\^NDISSTAT:.+)\\r+\\n",
+ G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
self->priv->boot_regex = g_regex_new ("\\r\\n\\^BOOT:.+\\r\\n",
G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
+ self->priv->connect_regex = g_regex_new ("\\r\\n\\^CONNECT .+\\r\\n",
+ G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
self->priv->csnr_regex = g_regex_new ("\\r\\n\\^CSNR:.+\\r\\n",
G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
+ self->priv->cusatp_regex = g_regex_new ("\\r\\n\\+CUSATP:.+\\r\\n",
+ G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
+ self->priv->cusatend_regex = g_regex_new ("\\r\\n\\+CUSATEND\\r\\n",
+ G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
+ self->priv->dsdormant_regex = g_regex_new ("\\r\\n\\^DSDORMANT:.+\\r\\n",
+ G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
self->priv->simst_regex = g_regex_new ("\\r\\n\\^SIMST:.+\\r\\n",
G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
self->priv->srvst_regex = g_regex_new ("\\r\\n\\^SRVST:.+\\r\\n",
@@ -2696,13 +3263,19 @@ mm_broadband_modem_huawei_init (MMBroadbandModemHuawei *self)
G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
self->priv->hcsq_regex = g_regex_new ("\\r\\n\\^HCSQ:.+\\r+\\n",
G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
- self->priv->ndisstat_regex = g_regex_new ("\\r\\n\\^NDISSTAT:.+\\r+\\n",
+ self->priv->pdpdeact_regex = g_regex_new ("\\r\\n\\^PDPDEACT:.+\\r+\\n",
+ G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
+ self->priv->ndisend_regex = g_regex_new ("\\r\\n\\^NDISEND:.+\\r+\\n",
+ G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
+ self->priv->rfswitch_regex = g_regex_new ("\\r\\n\\^RFSWITCH:.+\\r\\n",
G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
- self->priv->ndisdup_support = NDISDUP_SUPPORT_UNKNOWN;
-
- self->priv->sysinfoex_supported = FALSE;
- self->priv->sysinfoex_support_checked = FALSE;
+ self->priv->ndisdup_support = FEATURE_SUPPORT_UNKNOWN;
+ self->priv->rfswitch_support = FEATURE_SUPPORT_UNKNOWN;
+ self->priv->sysinfoex_support = FEATURE_SUPPORT_UNKNOWN;
+ self->priv->syscfg_support = FEATURE_SUPPORT_UNKNOWN;
+ self->priv->syscfgex_support = FEATURE_SUPPORT_UNKNOWN;
+ self->priv->prefmode_support = FEATURE_SUPPORT_UNKNOWN;
}
static void
@@ -2715,13 +3288,27 @@ finalize (GObject *object)
g_regex_unref (self->priv->hrssilvl_regex);
g_regex_unref (self->priv->mode_regex);
g_regex_unref (self->priv->dsflowrpt_regex);
+ g_regex_unref (self->priv->ndisstat_regex);
g_regex_unref (self->priv->boot_regex);
+ g_regex_unref (self->priv->connect_regex);
g_regex_unref (self->priv->csnr_regex);
+ g_regex_unref (self->priv->cusatp_regex);
+ g_regex_unref (self->priv->cusatend_regex);
+ g_regex_unref (self->priv->dsdormant_regex);
g_regex_unref (self->priv->simst_regex);
g_regex_unref (self->priv->srvst_regex);
g_regex_unref (self->priv->stin_regex);
g_regex_unref (self->priv->hcsq_regex);
- g_regex_unref (self->priv->ndisstat_regex);
+ g_regex_unref (self->priv->pdpdeact_regex);
+ g_regex_unref (self->priv->ndisend_regex);
+ g_regex_unref (self->priv->rfswitch_regex);
+
+ if (self->priv->syscfg_supported_modes)
+ g_array_unref (self->priv->syscfg_supported_modes);
+ if (self->priv->syscfgex_supported_modes)
+ g_array_unref (self->priv->syscfgex_supported_modes);
+ if (self->priv->prefmode_supported_modes)
+ g_array_unref (self->priv->prefmode_supported_modes);
G_OBJECT_CLASS (mm_broadband_modem_huawei_parent_class)->finalize (object);
}
@@ -2731,6 +3318,8 @@ iface_modem_init (MMIfaceModem *iface)
{
iface_modem_parent = g_type_interface_peek_parent (iface);
+ iface->reset = reset;
+ iface->reset_finish = reset_finish;
iface->load_access_technologies = load_access_technologies;
iface->load_access_technologies_finish = load_access_technologies_finish;
iface->load_unlock_retries = load_unlock_retries;
@@ -2751,6 +3340,14 @@ iface_modem_init (MMIfaceModem *iface)
iface->load_signal_quality_finish = modem_load_signal_quality_finish;
iface->create_bearer = huawei_modem_create_bearer;
iface->create_bearer_finish = huawei_modem_create_bearer_finish;
+ iface->load_power_state = load_power_state;
+ iface->load_power_state_finish = load_power_state_finish;
+ iface->modem_power_up = huawei_modem_power_up;
+ iface->modem_power_up_finish = huawei_modem_power_up_finish;
+ iface->modem_power_down = huawei_modem_power_down;
+ iface->modem_power_down_finish = huawei_modem_power_down_finish;
+ iface->create_sim = huawei_modem_create_sim;
+ iface->create_sim_finish = huawei_modem_create_sim_finish;
}
static void
@@ -2766,6 +3363,8 @@ iface_modem_3gpp_init (MMIfaceModem3gpp *iface)
iface->enable_unsolicited_events_finish = modem_3gpp_enable_unsolicited_events_finish;
iface->disable_unsolicited_events = modem_3gpp_disable_unsolicited_events;
iface->disable_unsolicited_events_finish = modem_3gpp_disable_unsolicited_events_finish;
+ iface->load_operator_name = modem_3gpp_load_operator_name;
+ iface->load_operator_name_finish = modem_3gpp_load_operator_name_finish;
}
static void
diff --git a/plugins/huawei/mm-modem-helpers-huawei.c b/plugins/huawei/mm-modem-helpers-huawei.c
index d9b038d..656c6de 100644
--- a/plugins/huawei/mm-modem-helpers-huawei.c
+++ b/plugins/huawei/mm-modem-helpers-huawei.c
@@ -15,15 +15,19 @@
*/
#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
#include <ModemManager.h>
#define _LIBMM_INSIDE_MM
#include <libmm-glib.h>
+#include "mm-log.h"
+#include "mm-modem-helpers.h"
#include "mm-modem-helpers-huawei.h"
/*****************************************************************************/
-/* ^NDISSTATQRY response parser */
+/* ^NDISSTAT / ^NDISSTATQRY response parser */
gboolean
mm_huawei_parse_ndisstatqry_response (const gchar *response,
@@ -37,8 +41,10 @@ mm_huawei_parse_ndisstatqry_response (const gchar *response,
GMatchInfo *match_info;
GError *inner_error = NULL;
- if (!response || !g_str_has_prefix (response, "^NDISSTATQRY:")) {
- g_set_error (error, MM_CORE_ERROR, MM_CORE_ERROR_FAILED, "Missing ^NDISSTATQRY prefix");
+ if (!response ||
+ !(g_str_has_prefix (response, "^NDISSTAT:") ||
+ g_str_has_prefix (response, "^NDISSTATQRY:"))) {
+ g_set_error (error, MM_CORE_ERROR, MM_CORE_ERROR_FAILED, "Missing ^NDISSTAT / ^NDISSTATQRY prefix");
return FALSE;
}
@@ -46,40 +52,52 @@ mm_huawei_parse_ndisstatqry_response (const gchar *response,
*ipv6_available = FALSE;
/* The response maybe as:
- * <CR><LF>^NDISSTATQRY: 1,,,IPV4<CR><LF>^NDISSTATQRY: 0,33,,IPV6<CR><LF>
- * <CR><LF><CR><LF>OK<CR><LF>
- * So we have to split the status for IPv4 and IPv6. For now, we only care
- * about IPv4.
+ * ^NDISSTAT: 1,,,IPV4
+ * ^NDISSTAT: 0,33,,IPV6
+ * ^NDISSTATQRY: 1,,,IPV4
+ * ^NDISSTATQRY: 0,33,,IPV6
+ * OK
+ *
+ * Or, in newer firmwares:
+ * ^NDISSTATQRY:0,,,"IPV4",0,,,"IPV6"
+ * OK
*/
- r = g_regex_new ("\\^NDISSTATQRY:\\s*(\\d),(.*),(.*),(.*)(\\r\\n)?",
+ r = g_regex_new ("\\^NDISSTAT(?:QRY)?:\\s*(\\d),([^,]*),([^,]*),([^,\\r\\n]*)(?:\\r\\n)?"
+ "(?:\\^NDISSTAT:|\\^NDISSTATQRY:)?\\s*,?(\\d)?,?([^,]*)?,?([^,]*)?,?([^,\\r\\n]*)?(?:\\r\\n)?",
G_REGEX_DOLLAR_ENDONLY | G_REGEX_RAW,
0, NULL);
g_assert (r != NULL);
g_regex_match_full (r, response, strlen (response), 0, 0, &match_info, &inner_error);
- while (!inner_error && g_match_info_matches (match_info)) {
- gchar *ip_type_str;
- guint connected;
-
- /* Read values */
- ip_type_str = mm_get_string_unquoted_from_match_info (match_info, 4);
- if (!ip_type_str ||
- !mm_get_uint_from_match_info (match_info, 1, &connected) ||
- (connected != 0 && connected != 1)) {
- inner_error = g_error_new (MM_CORE_ERROR,
- MM_CORE_ERROR_FAILED,
- "Couldn't parse ^NDISSTATQRY fields");
- } else if (g_ascii_strcasecmp (ip_type_str, "IPV4") == 0) {
- *ipv4_available = TRUE;
- *ipv4_connected = (gboolean)connected;
- } else if (g_ascii_strcasecmp (ip_type_str, "IPV6") == 0) {
- *ipv6_available = TRUE;
- *ipv6_connected = (gboolean)connected;
- }
-
- g_free (ip_type_str);
- if (!inner_error)
- g_match_info_next (match_info, &inner_error);
+ if (!inner_error && g_match_info_matches (match_info)) {
+ guint ip_type_field = 4;
+
+ /* IPv4 and IPv6 are fields 4 and (if available) 8 */
+
+ while (!inner_error && ip_type_field <= 8) {
+ gchar *ip_type_str;
+ guint connected;
+
+ ip_type_str = mm_get_string_unquoted_from_match_info (match_info, ip_type_field);
+ if (!ip_type_str)
+ break;
+
+ if (!mm_get_uint_from_match_info (match_info, (ip_type_field - 3), &connected) ||
+ (connected != 0 && connected != 1)) {
+ inner_error = g_error_new (MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Couldn't parse ^NDISSTAT / ^NDISSTATQRY fields");
+ } else if (g_ascii_strcasecmp (ip_type_str, "IPV4") == 0) {
+ *ipv4_available = TRUE;
+ *ipv4_connected = (gboolean)connected;
+ } else if (g_ascii_strcasecmp (ip_type_str, "IPV6") == 0) {
+ *ipv6_available = TRUE;
+ *ipv6_connected = (gboolean)connected;
+ }
+
+ g_free (ip_type_str);
+ ip_type_field += 4;
+ }
}
g_match_info_free (match_info);
@@ -88,7 +106,7 @@ mm_huawei_parse_ndisstatqry_response (const gchar *response,
if (!ipv4_available && !ipv6_available) {
inner_error = g_error_new (MM_CORE_ERROR,
MM_CORE_ERROR_FAILED,
- "Couldn't find IPv4 or IPv6 info in ^NDISSTATQRY response");
+ "Couldn't find IPv4 or IPv6 info in ^NDISSTAT / ^NDISSTATQRY response");
}
if (inner_error) {
@@ -98,3 +116,920 @@ mm_huawei_parse_ndisstatqry_response (const gchar *response,
return TRUE;
}
+
+/*****************************************************************************/
+/* ^SYSINFO response parser */
+
+gboolean
+mm_huawei_parse_sysinfo_response (const char *reply,
+ guint *out_srv_status,
+ guint *out_srv_domain,
+ guint *out_roam_status,
+ guint *out_sys_mode,
+ guint *out_sim_state,
+ gboolean *out_sys_submode_valid,
+ guint *out_sys_submode,
+ GError **error)
+{
+ gboolean matched;
+ GRegex *r;
+ GMatchInfo *match_info = NULL;
+ GError *match_error = NULL;
+
+ g_assert (out_srv_status != NULL);
+ g_assert (out_srv_domain != NULL);
+ g_assert (out_roam_status != NULL);
+ g_assert (out_sys_mode != NULL);
+ g_assert (out_sim_state != NULL);
+ g_assert (out_sys_submode_valid != NULL);
+ g_assert (out_sys_submode != NULL);
+
+ /* Format:
+ *
+ * ^SYSINFO: <srv_status>,<srv_domain>,<roam_status>,<sys_mode>,<sim_state>[,<reserved>,<sys_submode>]
+ */
+
+ /* Can't just use \d here since sometimes you get "^SYSINFO:2,1,0,3,1,,3" */
+ r = g_regex_new ("\\^SYSINFO:\\s*(\\d+),(\\d+),(\\d+),(\\d+),(\\d+),?(\\d+)?,?(\\d+)?$", 0, 0, NULL);
+ g_assert (r != NULL);
+
+ matched = g_regex_match_full (r, reply, -1, 0, 0, &match_info, &match_error);
+ if (!matched) {
+ if (match_error) {
+ g_propagate_error (error, match_error);
+ g_prefix_error (error, "Could not parse ^SYSINFO results: ");
+ } else {
+ g_set_error_literal (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Couldn't match ^SYSINFO reply");
+ }
+ } else {
+ mm_get_uint_from_match_info (match_info, 1, out_srv_status);
+ mm_get_uint_from_match_info (match_info, 2, out_srv_domain);
+ mm_get_uint_from_match_info (match_info, 3, out_roam_status);
+ mm_get_uint_from_match_info (match_info, 4, out_sys_mode);
+ mm_get_uint_from_match_info (match_info, 5, out_sim_state);
+
+ /* Remember that g_match_info_get_match_count() includes match #0 */
+ if (g_match_info_get_match_count (match_info) >= 8) {
+ *out_sys_submode_valid = TRUE;
+ mm_get_uint_from_match_info (match_info, 7, out_sys_submode);
+ }
+ }
+
+ if (match_info)
+ g_match_info_free (match_info);
+ g_regex_unref (r);
+ return matched;
+}
+
+/*****************************************************************************/
+/* ^SYSINFOEX response parser */
+
+gboolean
+mm_huawei_parse_sysinfoex_response (const char *reply,
+ guint *out_srv_status,
+ guint *out_srv_domain,
+ guint *out_roam_status,
+ guint *out_sim_state,
+ guint *out_sys_mode,
+ guint *out_sys_submode,
+ GError **error)
+{
+ gboolean matched;
+ GRegex *r;
+ GMatchInfo *match_info = NULL;
+ GError *match_error = NULL;
+
+ g_assert (out_srv_status != NULL);
+ g_assert (out_srv_domain != NULL);
+ g_assert (out_roam_status != NULL);
+ g_assert (out_sim_state != NULL);
+ g_assert (out_sys_mode != NULL);
+ g_assert (out_sys_submode != NULL);
+
+ /* Format:
+ *
+ * ^SYSINFOEX: <srv_status>,<srv_domain>,<roam_status>,<sim_state>,<reserved>,<sysmode>,<sysmode_name>,<submode>,<submode_name>
+ *
+ * <sysmode_name> and <submode_name> may not be quoted on some Huawei modems (e.g. E303).
+ */
+
+ /* ^SYSINFOEX:2,3,0,1,,3,"WCDMA",41,"HSPA+" */
+
+ r = g_regex_new ("\\^SYSINFOEX:\\s*(\\d+),(\\d+),(\\d+),(\\d+),?(\\d*),(\\d+),\"?([^\"]*)\"?,(\\d+),\"?([^\"]*)\"?$", 0, 0, NULL);
+ g_assert (r != NULL);
+
+ matched = g_regex_match_full (r, reply, -1, 0, 0, &match_info, &match_error);
+ if (!matched) {
+ if (match_error) {
+ g_propagate_error (error, match_error);
+ g_prefix_error (error, "Could not parse ^SYSINFOEX results: ");
+ } else {
+ g_set_error_literal (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Couldn't match ^SYSINFOEX reply");
+ }
+ } else {
+ mm_get_uint_from_match_info (match_info, 1, out_srv_status);
+ mm_get_uint_from_match_info (match_info, 2, out_srv_domain);
+ mm_get_uint_from_match_info (match_info, 3, out_roam_status);
+ mm_get_uint_from_match_info (match_info, 4, out_sim_state);
+
+ /* We just ignore the sysmode and submode name strings */
+ mm_get_uint_from_match_info (match_info, 6, out_sys_mode);
+ mm_get_uint_from_match_info (match_info, 8, out_sys_submode);
+ }
+
+ if (match_info)
+ g_match_info_free (match_info);
+ g_regex_unref (r);
+ return matched;
+}
+
+/*****************************************************************************/
+/* ^PREFMODE test parser
+ *
+ * AT^PREFMODE=?
+ * ^PREFMODE:(2,4,8)
+ */
+
+static gboolean
+mode_from_prefmode (guint huawei_mode,
+ MMModemMode *modem_mode,
+ GError **error)
+{
+ g_assert (modem_mode != NULL);
+
+ *modem_mode = MM_MODEM_MODE_NONE;
+ switch (huawei_mode) {
+ case 2:
+ *modem_mode = MM_MODEM_MODE_2G;
+ break;
+ case 4:
+ *modem_mode = MM_MODEM_MODE_3G;
+ break;
+ case 8:
+ *modem_mode = (MM_MODEM_MODE_2G | MM_MODEM_MODE_3G);
+ break;
+ default:
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "No translation from huawei prefmode '%u' to mode",
+ huawei_mode);
+ }
+
+ return *modem_mode != MM_MODEM_MODE_NONE ? TRUE : FALSE;
+}
+
+GArray *
+mm_huawei_parse_prefmode_test (const gchar *response,
+ GError **error)
+{
+ gchar **split;
+ guint i;
+ MMModemMode all = MM_MODEM_MODE_NONE;
+ GArray *out;
+
+ response = mm_strip_tag (response, "^PREFMODE:");
+ split = g_strsplit_set (response, " (,)\r\n", -1);
+ if (!split) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Unexpected ^PREFMODE format output");
+ return NULL;
+ }
+
+ out = g_array_sized_new (FALSE,
+ FALSE,
+ sizeof (MMHuaweiPrefmodeCombination),
+ 3);
+ for (i = 0; split[i]; i++) {
+ guint val;
+ MMModemMode preferred = MM_MODEM_MODE_NONE;
+ GError *inner_error = NULL;
+ MMHuaweiPrefmodeCombination combination;
+
+ if (split[i][0] == '\0')
+ continue;
+
+ if (!mm_get_uint_from_str (split[i], &val)) {
+ mm_dbg ("Error parsing ^PREFMODE value: %s", split[i]);
+ continue;
+ }
+
+ if (!mode_from_prefmode (val, &preferred, &inner_error)) {
+ mm_dbg ("Unhandled ^PREFMODE: %s", inner_error->message);
+ g_error_free (inner_error);
+ continue;
+ }
+
+ combination.prefmode = val;
+ combination.allowed = MM_MODEM_MODE_NONE; /* reset it later */
+ combination.preferred = preferred;
+
+ all |= preferred;
+
+ g_array_append_val (out, combination);
+ }
+ g_strfreev (split);
+
+ /* No value */
+ if (out->len == 0) {
+ g_array_unref (out);
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "^PREFMODE response contains no valid values");
+ return NULL;
+ }
+
+ /* Single value listed; PREFERRED=NONE... */
+ if (out->len == 1) {
+ MMHuaweiPrefmodeCombination *combination;
+
+ combination = &g_array_index (out, MMHuaweiPrefmodeCombination, 0);
+ combination->allowed = all;
+ combination->preferred = MM_MODEM_MODE_NONE;
+ } else {
+ /* Multiple values, reset ALLOWED */
+ for (i = 0; i < out->len; i++) {
+ MMHuaweiPrefmodeCombination *combination;
+
+ combination = &g_array_index (out, MMHuaweiPrefmodeCombination, i);
+ combination->allowed = all;
+ if (combination->preferred == all)
+ combination->preferred = MM_MODEM_MODE_NONE;
+ }
+ }
+
+ return out;
+}
+
+/*****************************************************************************/
+/* ^PREFMODE response parser */
+
+const MMHuaweiPrefmodeCombination *
+mm_huawei_parse_prefmode_response (const gchar *response,
+ const GArray *supported_mode_combinations,
+ GError **error)
+{
+ gint mode;
+ guint i;
+
+ /* Format:
+ *
+ * ^PREFMODE: <mode>
+ */
+
+ response = mm_strip_tag (response, "^PREFMODE:");
+ if (!sscanf (response, "%d", &mode)) {
+ /* Dump error to upper layer */
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Unexpected PREFMODE response: '%s'",
+ response);
+ return NULL;
+ }
+
+ /* Look for current modes among the supported ones */
+ for (i = 0; i < supported_mode_combinations->len; i++) {
+ const MMHuaweiPrefmodeCombination *combination;
+
+ combination = &g_array_index (supported_mode_combinations,
+ MMHuaweiPrefmodeCombination,
+ i);
+ if (mode == combination->prefmode)
+ return combination;
+ }
+
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "No PREFMODE combination found matching the current one (%d)",
+ mode);
+ return NULL;
+}
+
+/*****************************************************************************/
+/* ^SYSCFG test parser */
+
+static gchar **
+split_groups (const gchar *str,
+ GError **error)
+{
+ const gchar *p = str;
+ GPtrArray *out;
+ guint groups = 0;
+
+ /*
+ * Split string: (a),((b1),(b2)),,(d),((e1),(e2))
+ * Into:
+ * - a
+ * - (b1),(b2)
+ * -
+ * - d
+ * - (e1),(e2)
+ */
+
+ out = g_ptr_array_new_with_free_func (g_free);
+
+ while (TRUE) {
+ const gchar *start;
+ guint inner_groups;
+
+ /* Skip whitespaces */
+ while (*p == ' ' || *p == '\r' || *p == '\n')
+ p++;
+
+ /* We're done, return */
+ if (*p == '\0') {
+ g_ptr_array_set_size (out, out->len + 1);
+ return (gchar **) g_ptr_array_free (out, FALSE);
+ }
+
+ /* Group separators */
+ if (groups > 0) {
+ if (*p != ',') {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Unexpected group separator");
+ g_ptr_array_unref (out);
+ return NULL;
+ }
+ p++;
+ }
+
+ /* Skip whitespaces */
+ while (*p == ' ' || *p == '\r' || *p == '\n')
+ p++;
+
+ /* New group */
+ groups++;
+
+ /* Empty group? */
+ if (*p == ',' || *p == '\0') {
+ g_ptr_array_add (out, g_strdup (""));
+ continue;
+ }
+
+ /* No group start? */
+ if (*p != '(') {
+ /* Error */
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Expected '(' not found");
+ g_ptr_array_unref (out);
+ return NULL;
+ }
+ p++;
+
+ inner_groups = 0;
+ start = p;
+ while (TRUE) {
+ if (*p == '(') {
+ inner_groups++;
+ p++;
+ continue;
+ }
+
+ if (*p == '\0') {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Early end of string found, unfinished group");
+ g_ptr_array_unref (out);
+ return NULL;
+ }
+
+ if (*p == ')') {
+ gchar *group;
+
+ if (inner_groups > 0) {
+ inner_groups--;
+ p++;
+ continue;
+ }
+
+ group = g_strndup (start, p - start);
+ g_ptr_array_add (out, group);
+ p++;
+ break;
+ }
+
+ /* keep on */
+ p++;
+ }
+ }
+
+ g_assert_not_reached ();
+}
+
+static gboolean
+mode_from_syscfg (guint huawei_mode,
+ MMModemMode *modem_mode,
+ GError **error)
+{
+ g_assert (modem_mode != NULL);
+
+ *modem_mode = MM_MODEM_MODE_NONE;
+ switch (huawei_mode) {
+ case 2:
+ *modem_mode = MM_MODEM_MODE_2G | MM_MODEM_MODE_3G;
+ break;
+ case 13:
+ *modem_mode = MM_MODEM_MODE_2G;
+ break;
+ case 14:
+ *modem_mode = MM_MODEM_MODE_3G;
+ break;
+ case 16:
+ /* ignore */
+ break;
+ default:
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "No translation from huawei prefmode '%u' to mode",
+ huawei_mode);
+ }
+
+ return *modem_mode != MM_MODEM_MODE_NONE ? TRUE : FALSE;
+}
+
+static GArray *
+parse_syscfg_modes (const gchar *modes_str,
+ const gchar *acqorder_str,
+ GError **error)
+{
+ GArray *out;
+ gchar **split;
+ guint i;
+ gint min_acqorder = 0;
+ gint max_acqorder = 0;
+
+ /* Start parsing acquisition order */
+ if (!sscanf (acqorder_str, "%d-%d", &min_acqorder, &max_acqorder))
+ mm_dbg ("Error parsing ^SYSCFG acquisition order range (%s)", acqorder_str);
+
+ /* Just in case, we default to supporting only auto */
+ if (max_acqorder < min_acqorder) {
+ min_acqorder = 0;
+ max_acqorder = 0;
+ }
+
+ /* Now parse modes */
+ split = g_strsplit (modes_str, ",", -1);
+ out = g_array_sized_new (FALSE,
+ FALSE,
+ sizeof (MMHuaweiSyscfgCombination),
+ g_strv_length (split));
+ for (i = 0; split[i]; i++) {
+ guint val;
+ guint allowed = MM_MODEM_MODE_NONE;
+ GError *inner_error = NULL;
+ MMHuaweiSyscfgCombination combination;
+
+ if (!mm_get_uint_from_str (mm_strip_quotes (split[i]), &val)) {
+ mm_dbg ("Error parsing ^SYSCFG mode value: %s", split[i]);
+ continue;
+ }
+
+ if (!mode_from_syscfg (val, &allowed, &inner_error)) {
+ if (inner_error) {
+ mm_dbg ("Unhandled ^SYSCFG: %s", inner_error->message);
+ g_error_free (inner_error);
+ }
+ continue;
+ }
+
+ switch (allowed) {
+ case MM_MODEM_MODE_2G:
+ case MM_MODEM_MODE_3G:
+ /* single mode */
+ combination.allowed = allowed;
+ combination.preferred = MM_MODEM_MODE_NONE;
+ combination.mode = val;
+ combination.acqorder = 0;
+ g_array_append_val (out, combination);
+ break;
+ case (MM_MODEM_MODE_2G | MM_MODEM_MODE_3G):
+ /* 2G and 3G; auto */
+ combination.allowed = allowed;
+ combination.mode = val;
+ if (min_acqorder == 0) {
+ combination.preferred = MM_MODEM_MODE_NONE;
+ combination.acqorder = 0;
+ g_array_append_val (out, combination);
+ }
+ /* 2G and 3G; 2G preferred */
+ if (min_acqorder <= 1 && max_acqorder >= 1) {
+ combination.preferred = MM_MODEM_MODE_2G;
+ combination.acqorder = 1;
+ g_array_append_val (out, combination);
+ }
+ /* 2G and 3G; 3G preferred */
+ if (min_acqorder <= 2 && max_acqorder >= 2) {
+ combination.preferred = MM_MODEM_MODE_3G;
+ combination.acqorder = 2;
+ g_array_append_val (out, combination);
+ }
+ break;
+ default:
+ g_assert_not_reached ();
+ }
+ }
+
+ g_strfreev (split);
+
+ /* If we didn't build a valid array of combinations, return an error */
+ if (out->len == 0) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Cannot parse list of allowed mode combinations: '%s,%s'",
+ modes_str,
+ acqorder_str);
+ g_array_unref (out);
+ return NULL;
+ }
+
+ return out;
+}
+
+GArray *
+mm_huawei_parse_syscfg_test (const gchar *response,
+ GError **error)
+{
+ gchar **split;
+ GError *inner_error = NULL;
+ GArray *out;
+
+ if (!response || !g_str_has_prefix (response, "^SYSCFG:")) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Missing ^SYSCFG prefix");
+ return NULL;
+ }
+
+ /* Examples:
+ *
+ * ^SYSCFG:(2,13,14,16),
+ * (0-3),
+ * ((400000,"WCDMA2100")),
+ * (0-2),
+ * (0-4)
+ */
+ split = split_groups (mm_strip_tag (response, "^SYSCFG:"), error);
+ if (!split)
+ return NULL;
+
+ /* We expect 5 string chunks */
+ if (g_strv_length (split) < 5) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Unexpected ^SYSCFG format");
+ g_strfreev (split);
+ return FALSE;
+ }
+
+ /* Parse supported mode combinations */
+ out = parse_syscfg_modes (split[0], split[1], &inner_error);
+
+ g_strfreev (split);
+
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ return NULL;
+ }
+
+ return out;
+}
+
+/*****************************************************************************/
+/* ^SYSCFG response parser */
+
+const MMHuaweiSyscfgCombination *
+mm_huawei_parse_syscfg_response (const gchar *response,
+ const GArray *supported_mode_combinations,
+ GError **error)
+{
+ gchar **split;
+ guint mode;
+ guint acqorder;
+ guint i;
+
+ if (!response || !g_str_has_prefix (response, "^SYSCFG:")) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Missing ^SYSCFG prefix");
+ return NULL;
+ }
+
+ /* Format:
+ *
+ * ^SYSCFG: <mode>,<acqorder>,<band>,<roam>,<srvdomain>
+ */
+
+ response = mm_strip_tag (response, "^SYSCFG:");
+ split = g_strsplit (response, ",", -1);
+
+ /* We expect 5 string chunks */
+ if (g_strv_length (split) < 5 ||
+ !mm_get_uint_from_str (split[0], &mode) ||
+ !mm_get_uint_from_str (split[1], &acqorder)) {
+ /* Dump error to upper layer */
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Unexpected ^SYSCFG response: '%s'",
+ response);
+ g_strfreev (split);
+ return NULL;
+ }
+
+ /* Look for current modes among the supported ones */
+ for (i = 0; i < supported_mode_combinations->len; i++) {
+ const MMHuaweiSyscfgCombination *combination;
+
+ combination = &g_array_index (supported_mode_combinations,
+ MMHuaweiSyscfgCombination,
+ i);
+ if (mode == combination->mode && acqorder == combination->acqorder) {
+ g_strfreev (split);
+ return combination;
+ }
+ }
+
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "No SYSCFG combination found matching the current one (%d,%d)",
+ mode,
+ acqorder);
+ g_strfreev (split);
+ return NULL;
+}
+
+/*****************************************************************************/
+/* ^SYSCFGEX test parser */
+
+static void
+huawei_syscfgex_combination_free (MMHuaweiSyscfgexCombination *item)
+{
+ /* Just the contents, not the item itself! */
+ g_free (item->mode_str);
+}
+
+static gboolean
+parse_mode_combination_string (const gchar *mode_str,
+ MMModemMode *allowed,
+ MMModemMode *preferred)
+{
+ guint n;
+
+ if (g_str_equal (mode_str, "00")) {
+ *allowed = MM_MODEM_MODE_ANY;
+ *preferred = MM_MODEM_MODE_NONE;
+ return TRUE;
+ }
+
+ *allowed = MM_MODEM_MODE_NONE;
+ *preferred = MM_MODEM_MODE_NONE;
+
+ for (n = 0; n < strlen (mode_str); n+=2) {
+ MMModemMode mode;
+
+ if (g_ascii_strncasecmp (&mode_str[n], "01", 2) == 0)
+ /* GSM */
+ mode = MM_MODEM_MODE_2G;
+ else if (g_ascii_strncasecmp (&mode_str[n], "02", 2) == 0)
+ /* WCDMA */
+ mode = MM_MODEM_MODE_3G;
+ else if (g_ascii_strncasecmp (&mode_str[n], "03", 2) == 0)
+ /* LTE */
+ mode = MM_MODEM_MODE_4G;
+ else if (g_ascii_strncasecmp (&mode_str[n], "04", 2) == 0)
+ /* CDMA Note: no EV-DO, just return single value, so assume CDMA1x*/
+ mode = MM_MODEM_MODE_2G;
+ else
+ mode = MM_MODEM_MODE_NONE;
+
+ if (mode != MM_MODEM_MODE_NONE) {
+ /* The first one in the list is the preferred combination */
+ if (n == 0)
+ *preferred |= mode;
+ *allowed |= mode;
+ }
+ }
+
+ switch (mm_count_bits_set (*allowed)) {
+ case 0:
+ /* No allowed, error */
+ return FALSE;
+ case 1:
+ /* If only one mode allowed, NONE preferred */
+ *preferred = MM_MODEM_MODE_NONE;
+ /* fall down */
+ default:
+ return TRUE;
+ }
+}
+
+static GArray *
+parse_mode_combination_string_list (const gchar *modes_str,
+ GError **error)
+{
+ GArray *supported_mode_combinations;
+ gchar **mode_combinations;
+ MMModemMode all = MM_MODEM_MODE_NONE;
+ gboolean has_all = FALSE;
+ guint i;
+
+ mode_combinations = g_strsplit (modes_str, ",", -1);
+ supported_mode_combinations = g_array_sized_new (FALSE,
+ FALSE,
+ sizeof (MMHuaweiSyscfgexCombination),
+ g_strv_length (mode_combinations));
+ g_array_set_clear_func (supported_mode_combinations,
+ (GDestroyNotify)huawei_syscfgex_combination_free);
+
+ for (i = 0; mode_combinations[i]; i++) {
+ MMHuaweiSyscfgexCombination combination;
+
+ mode_combinations[i] = mm_strip_quotes (mode_combinations[i]);
+ if (!parse_mode_combination_string (mode_combinations[i],
+ &combination.allowed,
+ &combination.preferred))
+ continue;
+
+ if (combination.allowed != MM_MODEM_MODE_ANY) {
+ combination.mode_str = g_strdup (mode_combinations[i]);
+ g_array_append_val (supported_mode_combinations, combination);
+
+ all |= combination.allowed;
+ } else {
+ /* don't add the all_combination here, we may have more
+ * combinations in the loop afterwards */
+ has_all = TRUE;
+ }
+ }
+
+ g_strfreev (mode_combinations);
+
+ /* Add here the all_combination */
+ if (has_all) {
+ MMHuaweiSyscfgexCombination combination;
+
+ combination.allowed = all;
+ combination.preferred = MM_MODEM_MODE_NONE;
+ combination.mode_str = g_strdup ("00");
+ g_array_append_val (supported_mode_combinations, combination);
+ }
+
+ /* If we didn't build a valid array of combinations, return an error */
+ if (supported_mode_combinations->len == 0) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Cannot parse list of allowed mode combinations: '%s'",
+ modes_str);
+ g_array_unref (supported_mode_combinations);
+ return NULL;
+ }
+
+ return supported_mode_combinations;
+}
+
+GArray *
+mm_huawei_parse_syscfgex_test (const gchar *response,
+ GError **error)
+{
+ gchar **split;
+ GError *inner_error = NULL;
+ GArray *out;
+
+ if (!response || !g_str_has_prefix (response, "^SYSCFGEX:")) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Missing ^SYSCFGEX prefix");
+ return NULL;
+ }
+
+ /* Examples:
+ *
+ * ^SYSCFGEX: ("00","03","02","01","99"),
+ * ((2000004e80380,"GSM850/GSM900/GSM1800/GSM1900/WCDMA850/WCDMA900/WCDMA1900/WCDMA2100"),
+ * (3fffffff,"All Bands")),
+ * (0-3),
+ * (0-4),
+ * ((800c5,"LTE2100/LTE1800/LTE2600/LTE900/LTE800"),
+ * (7fffffffffffffff,"All bands"))
+ */
+ split = split_groups (mm_strip_tag (response, "^SYSCFGEX:"), error);
+ if (!split)
+ return NULL;
+
+ /* We expect 5 string chunks */
+ if (g_strv_length (split) < 5) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Unexpected ^SYSCFGEX format");
+ g_strfreev (split);
+ return NULL;
+ }
+
+ out = parse_mode_combination_string_list (split[0], &inner_error);
+
+ g_strfreev (split);
+
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ return NULL;
+ }
+
+ return out;
+}
+
+/*****************************************************************************/
+/* ^SYSCFGEX response parser */
+
+const MMHuaweiSyscfgexCombination *
+mm_huawei_parse_syscfgex_response (const gchar *response,
+ const GArray *supported_mode_combinations,
+ GError **error)
+{
+ gchar **split;
+ guint i;
+ gsize len;
+ gchar *str;
+
+ if (!response || !g_str_has_prefix (response, "^SYSCFGEX:")) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Missing ^SYSCFGEX prefix");
+ return NULL;
+ }
+
+ /* Format:
+ *
+ * ^SYSCFGEX: "00",3FFFFFFF,1,2,7FFFFFFFFFFFFFFF
+ * ^SYSCFGEX: <mode>,<band>,<roam>,<srvdomain>,<lte-band>
+ */
+
+ response = mm_strip_tag (response, "^SYSCFGEX:");
+ split = g_strsplit (response, ",", -1);
+
+ /* We expect 5 string chunks */
+ if (g_strv_length (split) < 5) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Unexpected ^SYSCFGEX response format");
+ g_strfreev (split);
+ return NULL;
+ }
+
+ /* Unquote */
+ str = split[0];
+ len = strlen (str);
+ if ((len >= 2) && (str[0] == '"') && (str[len - 1] == '"')) {
+ str[0] = ' ';
+ str[len - 1] = ' ';
+ str = g_strstrip (str);
+ }
+
+ /* Look for current modes among the supported ones */
+ for (i = 0; i < supported_mode_combinations->len; i++) {
+ const MMHuaweiSyscfgexCombination *combination;
+
+ combination = &g_array_index (supported_mode_combinations,
+ MMHuaweiSyscfgexCombination,
+ i);
+ if (g_str_equal (str, combination->mode_str)) {
+ g_strfreev (split);
+ return combination;
+ }
+ }
+
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "No SYSCFGEX combination found matching the current one (%s)",
+ str);
+ g_strfreev (split);
+ return NULL;
+}
diff --git a/plugins/huawei/mm-modem-helpers-huawei.h b/plugins/huawei/mm-modem-helpers-huawei.h
index cc32087..05894f3 100644
--- a/plugins/huawei/mm-modem-helpers-huawei.h
+++ b/plugins/huawei/mm-modem-helpers-huawei.h
@@ -19,7 +19,8 @@
#include "glib.h"
-/* ^NDISSTATQRY response parser */
+/*****************************************************************************/
+/* ^NDISSTAT / ^NDISSTATQRY response parser */
gboolean mm_huawei_parse_ndisstatqry_response (const gchar *response,
gboolean *ipv4_available,
gboolean *ipv4_connected,
@@ -27,4 +28,89 @@ gboolean mm_huawei_parse_ndisstatqry_response (const gchar *response,
gboolean *ipv6_connected,
GError **error);
+/*****************************************************************************/
+/* ^SYSINFO response parser */
+gboolean mm_huawei_parse_sysinfo_response (const char *reply,
+ guint *out_srv_status,
+ guint *out_srv_domain,
+ guint *out_roam_status,
+ guint *out_sys_mode,
+ guint *out_sim_state,
+ gboolean *out_sys_submode_valid,
+ guint *out_sys_submode,
+ GError **error);
+
+/*****************************************************************************/
+/* ^SYSINFOEX response parser */
+gboolean mm_huawei_parse_sysinfoex_response (const char *reply,
+ guint *out_srv_status,
+ guint *out_srv_domain,
+ guint *out_roam_status,
+ guint *out_sim_state,
+ guint *out_sys_mode,
+ guint *out_sys_submode,
+ GError **error);
+
+/*****************************************************************************/
+/* ^PREFMODE test parser */
+
+typedef struct {
+ guint prefmode;
+ MMModemMode allowed;
+ MMModemMode preferred;
+} MMHuaweiPrefmodeCombination;
+
+GArray *mm_huawei_parse_prefmode_test (const gchar *response,
+ GError **error);
+
+/*****************************************************************************/
+/* ^PREFMODE response parser */
+
+const MMHuaweiPrefmodeCombination *mm_huawei_parse_prefmode_response (const gchar *response,
+ const GArray *supported_mode_combinations,
+ GError **error);
+
+/*****************************************************************************/
+/* ^SYSCFG test parser */
+
+/* This is the default string we use as fallback when the modem gives
+ * an empty response to AT^SYSCFG=? */
+#define MM_HUAWEI_DEFAULT_SYSCFG_FMT "^SYSCFG:(2,13,14,16),(0-3),,,"
+
+typedef struct {
+ guint mode;
+ guint acqorder;
+ MMModemMode allowed;
+ MMModemMode preferred;
+} MMHuaweiSyscfgCombination;
+
+GArray *mm_huawei_parse_syscfg_test (const gchar *response,
+ GError **error);
+
+/*****************************************************************************/
+/* ^SYSCFG response parser */
+
+const MMHuaweiSyscfgCombination *mm_huawei_parse_syscfg_response (const gchar *response,
+ const GArray *supported_mode_combinations,
+ GError **error);
+
+/*****************************************************************************/
+/* ^SYSCFGEX test parser */
+
+typedef struct {
+ gchar *mode_str;
+ MMModemMode allowed;
+ MMModemMode preferred;
+} MMHuaweiSyscfgexCombination;
+
+GArray *mm_huawei_parse_syscfgex_test (const gchar *response,
+ GError **error);
+
+/*****************************************************************************/
+/* ^SYSCFGEX response parser */
+
+const MMHuaweiSyscfgexCombination *mm_huawei_parse_syscfgex_response (const gchar *response,
+ const GArray *supported_mode_combinations,
+ GError **error);
+
#endif /* MM_MODEM_HELPERS_HUAWEI_H */
diff --git a/plugins/huawei/mm-plugin-huawei.c b/plugins/huawei/mm-plugin-huawei.c
index fb13fe7..524edb6 100644
--- a/plugins/huawei/mm-plugin-huawei.c
+++ b/plugins/huawei/mm-plugin-huawei.c
@@ -390,8 +390,10 @@ huawei_custom_init (MMPortProbe *probe,
}
/* We can run custom init in the first interface! clear the timeout as it is no longer needed */
- g_source_remove (fi_ctx->timeout_id);
- fi_ctx->timeout_id = 0;
+ if (fi_ctx->timeout_id) {
+ g_source_remove (fi_ctx->timeout_id);
+ fi_ctx->timeout_id = 0;
+ }
huawei_custom_init_step (ctx);
}
diff --git a/plugins/huawei/mm-sim-huawei.c b/plugins/huawei/mm-sim-huawei.c
new file mode 100644
index 0000000..7bf4106
--- /dev/null
+++ b/plugins/huawei/mm-sim-huawei.c
@@ -0,0 +1,181 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details:
+ *
+ * Copyright (C) 2008 - 2009 Novell, Inc.
+ * Copyright (C) 2009 - 2012 Red Hat, Inc.
+ * Copyright (C) 2012 Lanedo GmbH
+ */
+
+#include <config.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <ctype.h>
+
+#include <ModemManager.h>
+#define _LIBMM_INSIDE_MM
+#include <libmm-glib.h>
+#include "mm-log.h"
+#include "mm-modem-helpers.h"
+#include "mm-base-modem-at.h"
+
+#include "mm-sim-huawei.h"
+
+G_DEFINE_TYPE (MMSimHuawei, mm_sim_huawei, MM_TYPE_SIM);
+
+/*****************************************************************************/
+/* SIM identifier loading */
+
+static gchar *
+load_sim_identifier_finish (MMSim *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ gchar *iccid;
+
+ if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error))
+ return NULL;
+
+ iccid = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (res));
+ mm_dbg ("loaded SIM identifier: %s", iccid);
+ return g_strdup (iccid);
+}
+
+static void
+parent_load_sim_identifier_ready (MMSimHuawei *self,
+ GAsyncResult *res,
+ GSimpleAsyncResult *simple)
+{
+ GError *error = NULL;
+ gchar *simid;
+
+ simid = MM_SIM_CLASS (mm_sim_huawei_parent_class)->load_sim_identifier_finish (MM_SIM (self), res, &error);
+ if (simid)
+ g_simple_async_result_set_op_res_gpointer (simple, simid, g_free);
+ else
+ g_simple_async_result_take_error (simple, error);
+
+ g_simple_async_result_complete (simple);
+ g_object_unref (simple);
+}
+
+static void
+iccid_read_ready (MMBaseModem *modem,
+ GAsyncResult *res,
+ GSimpleAsyncResult *simple)
+{
+ MMSim *self;
+ const gchar *response;
+ const gchar *p;
+ char *parsed;
+
+ response = mm_base_modem_at_command_finish (modem, res, NULL);
+ if (!response)
+ goto error;
+
+ p = mm_strip_tag (response, "^ICCID:");
+ if (!p)
+ goto error;
+
+ parsed = mm_3gpp_parse_iccid (p, NULL);
+ if (parsed) {
+ g_simple_async_result_set_op_res_gpointer (simple, parsed, g_free);
+ g_simple_async_result_complete (simple);
+ g_object_unref (simple);
+ return;
+ }
+
+error:
+ /* Chain up to parent method; older devices don't support ^ICCID */
+ self = MM_SIM (g_async_result_get_source_object (G_ASYNC_RESULT (simple)));
+ MM_SIM_CLASS (mm_sim_huawei_parent_class)->load_sim_identifier (self,
+ (GAsyncReadyCallback) parent_load_sim_identifier_ready,
+ simple);
+ g_object_unref (self);
+}
+
+static void
+load_sim_identifier (MMSim *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ MMBaseModem *modem = NULL;
+
+ g_object_get (self,
+ MM_SIM_MODEM, &modem,
+ NULL);
+
+ mm_dbg ("loading (Huawei) SIM identifier...");
+ mm_base_modem_at_command (
+ MM_BASE_MODEM (modem),
+ "^ICCID?",
+ 5,
+ FALSE,
+ (GAsyncReadyCallback)iccid_read_ready,
+ g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ load_sim_identifier));
+ g_object_unref (modem);
+}
+
+/*****************************************************************************/
+
+MMSim *
+mm_sim_huawei_new_finish (GAsyncResult *res,
+ GError **error)
+{
+ GObject *source;
+ GObject *sim;
+
+ source = g_async_result_get_source_object (res);
+ sim = g_async_initable_new_finish (G_ASYNC_INITABLE (source), res, error);
+ g_object_unref (source);
+
+ if (!sim)
+ return NULL;
+
+ /* Only export valid SIMs */
+ mm_sim_export (MM_SIM (sim));
+
+ return MM_SIM (sim);
+}
+
+void
+mm_sim_huawei_new (MMBaseModem *modem,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_async_initable_new_async (MM_TYPE_SIM_HUAWEI,
+ G_PRIORITY_DEFAULT,
+ cancellable,
+ callback,
+ user_data,
+ MM_SIM_MODEM, modem,
+ NULL);
+}
+
+static void
+mm_sim_huawei_init (MMSimHuawei *self)
+{
+}
+
+static void
+mm_sim_huawei_class_init (MMSimHuaweiClass *klass)
+{
+ MMSimClass *sim_class = MM_SIM_CLASS (klass);
+
+ sim_class->load_sim_identifier = load_sim_identifier;
+ sim_class->load_sim_identifier_finish = load_sim_identifier_finish;
+}
diff --git a/plugins/huawei/mm-sim-huawei.h b/plugins/huawei/mm-sim-huawei.h
new file mode 100644
index 0000000..dfd0d29
--- /dev/null
+++ b/plugins/huawei/mm-sim-huawei.h
@@ -0,0 +1,53 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details:
+ *
+ * Copyright (C) 2008 - 2009 Novell, Inc.
+ * Copyright (C) 2009 - 2012 Red Hat, Inc.
+ * Copyright (C) 2012 Lanedo GmbH
+ */
+
+#ifndef MM_SIM_HUAWEI_H
+#define MM_SIM_HUAWEI_H
+
+#include <glib.h>
+#include <glib-object.h>
+
+#include "mm-sim.h"
+
+#define MM_TYPE_SIM_HUAWEI (mm_sim_huawei_get_type ())
+#define MM_SIM_HUAWEI(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MM_TYPE_SIM_HUAWEI, MMSimHuawei))
+#define MM_SIM_HUAWEI_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MM_TYPE_SIM_HUAWEI, MMSimHuaweiClass))
+#define MM_IS_SIM_HUAWEI(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MM_TYPE_SIM_HUAWEI))
+#define MM_IS_SIM_HUAWEI_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MM_TYPE_SIM_HUAWEI))
+#define MM_SIM_HUAWEI_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MM_TYPE_SIM_HUAWEI, MMSimHuaweiClass))
+
+typedef struct _MMSimHuawei MMSimHuawei;
+typedef struct _MMSimHuaweiClass MMSimHuaweiClass;
+
+struct _MMSimHuawei {
+ MMSim parent;
+};
+
+struct _MMSimHuaweiClass {
+ MMSimClass parent;
+};
+
+GType mm_sim_huawei_get_type (void);
+
+void mm_sim_huawei_new (MMBaseModem *modem,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+MMSim *mm_sim_huawei_new_finish (GAsyncResult *res,
+ GError **error);
+
+#endif /* MM_SIM_HUAWEI_H */
diff --git a/plugins/huawei/tests/test-modem-helpers-huawei.c b/plugins/huawei/tests/test-modem-helpers-huawei.c
index c1bc0ed..b74821f 100644
--- a/plugins/huawei/tests/test-modem-helpers-huawei.c
+++ b/plugins/huawei/tests/test-modem-helpers-huawei.c
@@ -17,10 +17,16 @@
#include <glib-object.h>
#include <locale.h>
+#include <ModemManager.h>
+#define _LIBMM_INSIDE_MM
+#include <libmm-glib.h>
+
+#include "mm-log.h"
+#include "mm-modem-helpers.h"
#include "mm-modem-helpers-huawei.h"
/*****************************************************************************/
-/* Test ^NDISSTATQRY responses */
+/* Test ^NDISSTAT / ^NDISSTATQRY responses */
typedef struct {
const gchar *str;
@@ -31,6 +37,38 @@ typedef struct {
} NdisstatqryTest;
static const NdisstatqryTest ndisstatqry_tests[] = {
+ { "^NDISSTAT: 1,,,IPV4\r\n", TRUE, TRUE, FALSE, FALSE },
+ { "^NDISSTAT: 0,,,IPV4\r\n", TRUE, FALSE, FALSE, FALSE },
+ { "^NDISSTAT: 1,,,IPV6\r\n", FALSE, FALSE, TRUE, TRUE },
+ { "^NDISSTAT: 0,,,IPV6\r\n", FALSE, FALSE, TRUE, FALSE },
+ { "^NDISSTAT: 1,,,IPV4\r\n"
+ "^NDISSTAT: 1,,,IPV6\r\n", TRUE, TRUE, TRUE, TRUE },
+ { "^NDISSTAT: 1,,,IPV4\r\n"
+ "^NDISSTAT: 0,,,IPV6\r\n", TRUE, TRUE, TRUE, FALSE },
+ { "^NDISSTAT: 0,,,IPV4\r\n"
+ "^NDISSTAT: 1,,,IPV6\r\n", TRUE, FALSE, TRUE, TRUE },
+ { "^NDISSTAT: 0,,,IPV4\r\n"
+ "^NDISSTAT: 0,,,IPV6\r\n", TRUE, FALSE, TRUE, FALSE },
+ { "^NDISSTAT: 1,,,IPV4", TRUE, TRUE, FALSE, FALSE },
+ { "^NDISSTAT: 0,,,IPV4", TRUE, FALSE, FALSE, FALSE },
+ { "^NDISSTAT: 1,,,IPV6", FALSE, FALSE, TRUE, TRUE },
+ { "^NDISSTAT: 0,,,IPV6", FALSE, FALSE, TRUE, FALSE },
+ { "^NDISSTAT: 1,,,IPV4\r\n"
+ "^NDISSTAT: 1,,,IPV6", TRUE, TRUE, TRUE, TRUE },
+ { "^NDISSTAT: 1,,,IPV4\r\n"
+ "^NDISSTAT: 0,,,IPV6", TRUE, TRUE, TRUE, FALSE },
+ { "^NDISSTAT: 0,,,IPV4\r\n"
+ "^NDISSTAT: 1,,,IPV6", TRUE, FALSE, TRUE, TRUE },
+ { "^NDISSTAT: 0,,,IPV4\r\n"
+ "^NDISSTAT: 0,,,IPV6", TRUE, FALSE, TRUE, FALSE },
+ { "^NDISSTAT: 1,,,\"IPV4\",1,,,\"IPV6\"", TRUE, TRUE, TRUE, TRUE },
+ { "^NDISSTAT: 1,,,\"IPV4\",0,,,\"IPV6\"", TRUE, TRUE, TRUE, FALSE },
+ { "^NDISSTAT: 0,,,\"IPV4\",1,,,\"IPV6\"", TRUE, FALSE, TRUE, TRUE },
+ { "^NDISSTAT: 0,,,\"IPV4\",0,,,\"IPV6\"", TRUE, FALSE, TRUE, FALSE },
+ { "^NDISSTAT: 1,,,\"IPV4\",1,,,\"IPV6\"\r\n", TRUE, TRUE, TRUE, TRUE },
+ { "^NDISSTAT: 1,,,\"IPV4\",0,,,\"IPV6\"\r\n", TRUE, TRUE, TRUE, FALSE },
+ { "^NDISSTAT: 0,,,\"IPV4\",1,,,\"IPV6\"\r\n", TRUE, FALSE, TRUE, TRUE },
+ { "^NDISSTAT: 0,,,\"IPV4\",0,,,\"IPV6\"\r\n", TRUE, FALSE, TRUE, FALSE },
{ "^NDISSTATQRY: 1,,,IPV4\r\n", TRUE, TRUE, FALSE, FALSE },
{ "^NDISSTATQRY: 0,,,IPV4\r\n", TRUE, FALSE, FALSE, FALSE },
{ "^NDISSTATQRY: 1,,,IPV6\r\n", FALSE, FALSE, TRUE, TRUE },
@@ -55,7 +93,15 @@ static const NdisstatqryTest ndisstatqry_tests[] = {
"^NDISSTATQRY: 1,,,IPV6", TRUE, FALSE, TRUE, TRUE },
{ "^NDISSTATQRY: 0,,,IPV4\r\n"
"^NDISSTATQRY: 0,,,IPV6", TRUE, FALSE, TRUE, FALSE },
- { NULL, FALSE, FALSE, FALSE, FALSE }
+ { "^NDISSTATQRY: 1,,,\"IPV4\",1,,,\"IPV6\"", TRUE, TRUE, TRUE, TRUE },
+ { "^NDISSTATQRY: 1,,,\"IPV4\",0,,,\"IPV6\"", TRUE, TRUE, TRUE, FALSE },
+ { "^NDISSTATQRY: 0,,,\"IPV4\",1,,,\"IPV6\"", TRUE, FALSE, TRUE, TRUE },
+ { "^NDISSTATQRY: 0,,,\"IPV4\",0,,,\"IPV6\"", TRUE, FALSE, TRUE, FALSE },
+ { "^NDISSTATQRY: 1,,,\"IPV4\",1,,,\"IPV6\"\r\n", TRUE, TRUE, TRUE, TRUE },
+ { "^NDISSTATQRY: 1,,,\"IPV4\",0,,,\"IPV6\"\r\n", TRUE, TRUE, TRUE, FALSE },
+ { "^NDISSTATQRY: 0,,,\"IPV4\",1,,,\"IPV6\"\r\n", TRUE, FALSE, TRUE, TRUE },
+ { "^NDISSTATQRY: 0,,,\"IPV4\",0,,,\"IPV6\"\r\n", TRUE, FALSE, TRUE, FALSE },
+ { NULL, FALSE, FALSE, FALSE, FALSE }
};
static void
@@ -89,6 +135,893 @@ test_ndisstatqry (void)
}
/*****************************************************************************/
+/* Test ^SYSINFO responses */
+
+typedef struct {
+ const gchar *str;
+ guint expected_srv_status;
+ guint expected_srv_domain;
+ guint expected_roam_status;
+ guint expected_sys_mode;
+ guint expected_sim_state;
+ gboolean expected_sys_submode_valid;
+ guint expected_sys_submode;
+} SysinfoTest;
+
+static const SysinfoTest sysinfo_tests[] = {
+ { "^SYSINFO:2,4,5,3,1", 2, 4, 5, 3, 1, FALSE, 0 },
+ { "^SYSINFO:2,4,5,3,1,", 2, 4, 5, 3, 1, FALSE, 0 },
+ { "^SYSINFO:2,4,5,3,1,,", 2, 4, 5, 3, 1, FALSE, 0 },
+ { "^SYSINFO:2,4,5,3,1,6", 2, 4, 5, 3, 1, FALSE, 6 },
+ { "^SYSINFO:2,4,5,3,1,6,", 2, 4, 5, 3, 1, FALSE, 6 },
+ { "^SYSINFO:2,4,5,3,1,,6", 2, 4, 5, 3, 1, TRUE, 6 },
+ { "^SYSINFO:2,4,5,3,1,0,6", 2, 4, 5, 3, 1, TRUE, 6 },
+ { "^SYSINFO: 2,4,5,3,1,0,6", 2, 4, 5, 3, 1, TRUE, 6 },
+ { NULL, 0, 0, 0, 0, 0, FALSE, 0 }
+};
+
+static void
+test_sysinfo (void)
+{
+ guint i;
+
+ for (i = 0; sysinfo_tests[i].str; i++) {
+ GError *error = NULL;
+ guint srv_status = 0;
+ guint srv_domain = 0;
+ guint roam_status = 0;
+ guint sys_mode = 0;
+ guint sim_state = 0;
+ gboolean sys_submode_valid = FALSE;
+ guint sys_submode = 0;
+
+ g_assert (mm_huawei_parse_sysinfo_response (sysinfo_tests[i].str,
+ &srv_status,
+ &srv_domain,
+ &roam_status,
+ &sys_mode,
+ &sim_state,
+ &sys_submode_valid,
+ &sys_submode,
+ &error) == TRUE);
+ g_assert_no_error (error);
+
+ g_assert (srv_status == sysinfo_tests[i].expected_srv_status);
+ g_assert (srv_domain == sysinfo_tests[i].expected_srv_domain);
+ g_assert (roam_status == sysinfo_tests[i].expected_roam_status);
+ g_assert (sys_mode == sysinfo_tests[i].expected_sys_mode);
+ g_assert (sim_state == sysinfo_tests[i].expected_sim_state);
+ g_assert (sys_submode_valid == sysinfo_tests[i].expected_sys_submode_valid);
+ if (sys_submode_valid)
+ g_assert (sys_submode == sysinfo_tests[i].expected_sys_submode);
+ }
+}
+
+/*****************************************************************************/
+/* Test ^SYSINFOEX responses */
+
+typedef struct {
+ const gchar *str;
+ guint expected_srv_status;
+ guint expected_srv_domain;
+ guint expected_roam_status;
+ guint expected_sim_state;
+ guint expected_sys_mode;
+ guint expected_sys_submode;
+} SysinfoexTest;
+
+static const SysinfoexTest sysinfoex_tests[] = {
+ { "^SYSINFOEX:2,4,5,1,,3,WCDMA,41,HSPA+", 2, 4, 5, 1, 3, 41 },
+ { "^SYSINFOEX:2,4,5,1,,3,\"WCDMA\",41,\"HSPA+\"", 2, 4, 5, 1, 3, 41 },
+ { "^SYSINFOEX: 2,4,5,1,0,3,\"WCDMA\",41,\"HSPA+\"", 2, 4, 5, 1, 3, 41 },
+ { NULL, 0, 0, 0, 0, 0, 0 }
+};
+
+static void
+test_sysinfoex (void)
+{
+ guint i;
+
+ for (i = 0; sysinfoex_tests[i].str; i++) {
+ GError *error = NULL;
+ guint srv_status = 0;
+ guint srv_domain = 0;
+ guint roam_status = 0;
+ guint sim_state = 0;
+ guint sys_mode = 0;
+ guint sys_submode = 0;
+
+ g_assert (mm_huawei_parse_sysinfoex_response (sysinfoex_tests[i].str,
+ &srv_status,
+ &srv_domain,
+ &roam_status,
+ &sim_state,
+ &sys_mode,
+ &sys_submode,
+ &error) == TRUE);
+ g_assert_no_error (error);
+
+ g_assert (srv_status == sysinfoex_tests[i].expected_srv_status);
+ g_assert (srv_domain == sysinfoex_tests[i].expected_srv_domain);
+ g_assert (roam_status == sysinfoex_tests[i].expected_roam_status);
+ g_assert (sim_state == sysinfoex_tests[i].expected_sim_state);
+ g_assert (sys_mode == sysinfoex_tests[i].expected_sys_mode);
+ g_assert (sys_submode == sysinfoex_tests[i].expected_sys_submode);
+ }
+}
+
+/*****************************************************************************/
+/* Test ^PREFMODE=? responses */
+
+#define MAX_PREFMODE_COMBINATIONS 3
+
+typedef struct {
+ const gchar *str;
+ MMHuaweiPrefmodeCombination expected_modes[MAX_PREFMODE_COMBINATIONS];
+} PrefmodeTest;
+
+static const PrefmodeTest prefmode_tests[] = {
+ {
+ "^PREFMODE:(2,4,8)\r\n",
+ {
+ {
+ .prefmode = 8,
+ .allowed = (MM_MODEM_MODE_3G | MM_MODEM_MODE_2G),
+ .preferred = MM_MODEM_MODE_NONE
+ },
+ {
+ .prefmode = 4,
+ .allowed = (MM_MODEM_MODE_3G | MM_MODEM_MODE_2G),
+ .preferred = MM_MODEM_MODE_3G
+ },
+ {
+ .prefmode = 2,
+ .allowed = (MM_MODEM_MODE_3G | MM_MODEM_MODE_2G),
+ .preferred = MM_MODEM_MODE_2G
+ }
+ }
+ },
+ {
+ "^PREFMODE:(2,4)\r\n",
+ {
+ {
+ .prefmode = 4,
+ .allowed = (MM_MODEM_MODE_3G | MM_MODEM_MODE_2G),
+ .preferred = MM_MODEM_MODE_3G
+ },
+ {
+ .prefmode = 2,
+ .allowed = (MM_MODEM_MODE_3G | MM_MODEM_MODE_2G),
+ .preferred = MM_MODEM_MODE_2G
+ },
+ { 0, 0, 0}
+ }
+ },
+ {
+ "^PREFMODE:(2)\r\n",
+ {
+ {
+ .prefmode = 2,
+ .allowed = MM_MODEM_MODE_2G,
+ .preferred = MM_MODEM_MODE_NONE
+ },
+ { 0, 0, 0}
+ }
+ },
+};
+
+static void
+test_prefmode (void)
+{
+ guint i;
+
+ for (i = 0; i < G_N_ELEMENTS (prefmode_tests); i++) {
+ GError *error = NULL;
+ GArray *combinations = NULL;
+ guint j;
+ guint n_expected_combinations = 0;
+
+ for (j = 0; j < MAX_PREFMODE_COMBINATIONS; j++) {
+ if (prefmode_tests[i].expected_modes[j].prefmode != 0)
+ n_expected_combinations++;
+ }
+
+ combinations = mm_huawei_parse_prefmode_test (prefmode_tests[i].str, &error);
+ g_assert_no_error (error);
+ g_assert (combinations != NULL);
+ g_assert_cmpuint (combinations->len, ==, n_expected_combinations);
+
+#if defined ENABLE_TEST_MESSAGE_TRACES
+ for (j = 0; j < combinations->len; j++) {
+ MMHuaweiPrefmodeCombination *single;
+ gchar *allowed_str;
+ gchar *preferred_str;
+
+ single = &g_array_index (combinations, MMHuaweiPrefmodeCombination, j);
+ allowed_str = mm_modem_mode_build_string_from_mask (single->allowed);
+ preferred_str = mm_modem_mode_build_string_from_mask (single->preferred);
+ mm_dbg ("Test[%u], Combination[%u]: %u, \"%s\", \"%s\"",
+ i,
+ j,
+ single->prefmode,
+ allowed_str,
+ preferred_str);
+ g_free (allowed_str);
+ g_free (preferred_str);
+ }
+#endif
+
+ for (j = 0; j < combinations->len; j++) {
+ MMHuaweiPrefmodeCombination *single;
+ guint k;
+ gboolean found = FALSE;
+
+ single = &g_array_index (combinations, MMHuaweiPrefmodeCombination, j);
+ for (k = 0; k <= n_expected_combinations; k++) {
+ if (single->allowed == prefmode_tests[i].expected_modes[k].allowed &&
+ single->preferred == prefmode_tests[i].expected_modes[k].preferred &&
+ single->prefmode == prefmode_tests[i].expected_modes[k].prefmode) {
+ found = TRUE;
+ break;
+ }
+ }
+
+ g_assert (found == TRUE);
+ }
+
+ g_array_unref (combinations);
+ }
+}
+
+/*****************************************************************************/
+/* Test ^PREFMODE? responses */
+
+typedef struct {
+ const gchar *str;
+ const gchar *format;
+ MMModemMode allowed;
+ MMModemMode preferred;
+} PrefmodeResponseTest;
+
+static const PrefmodeResponseTest prefmode_response_tests[] = {
+ {
+ .str = "^PREFMODE:2\r\n",
+ .format = "^PREFMODE:(2,4,8)\r\n",
+ .allowed = (MM_MODEM_MODE_3G | MM_MODEM_MODE_2G),
+ .preferred = MM_MODEM_MODE_2G
+ },
+ {
+ .str = "^PREFMODE:4\r\n",
+ .format = "^PREFMODE:(2,4,8)\r\n",
+ .allowed = (MM_MODEM_MODE_3G | MM_MODEM_MODE_2G),
+ .preferred = MM_MODEM_MODE_3G
+ },
+ {
+ .str = "^PREFMODE:8\r\n",
+ .format = "^PREFMODE:(2,4,8)\r\n",
+ .allowed = (MM_MODEM_MODE_3G | MM_MODEM_MODE_2G),
+ .preferred = MM_MODEM_MODE_NONE
+ }
+};
+
+static void
+test_prefmode_response (void)
+{
+ guint i;
+
+ for (i = 0; i < G_N_ELEMENTS (prefmode_response_tests); i++) {
+ GArray *combinations = NULL;
+ const MMHuaweiPrefmodeCombination *found;
+ GError *error = NULL;
+
+ combinations = mm_huawei_parse_prefmode_test (prefmode_response_tests[i].format, NULL);
+ g_assert (combinations != NULL);
+
+ found = mm_huawei_parse_prefmode_response (prefmode_response_tests[i].str,
+ combinations,
+ &error);
+ g_assert (found != NULL);
+ g_assert_cmpuint (found->allowed, ==, prefmode_response_tests[i].allowed);
+ g_assert_cmpuint (found->preferred, ==, prefmode_response_tests[i].preferred);
+
+ g_array_unref (combinations);
+ }
+}
+
+/*****************************************************************************/
+/* Test ^SYSCFG=? responses */
+
+#define MAX_SYSCFG_COMBINATIONS 5
+
+typedef struct {
+ const gchar *str;
+ MMHuaweiSyscfgCombination expected_modes[MAX_SYSCFG_COMBINATIONS];
+} SyscfgTest;
+
+static const SyscfgTest syscfg_tests[] = {
+ {
+ MM_HUAWEI_DEFAULT_SYSCFG_FMT,
+ {
+ {
+ .mode = 2,
+ .acqorder = 0,
+ .allowed = (MM_MODEM_MODE_3G | MM_MODEM_MODE_2G),
+ .preferred = MM_MODEM_MODE_NONE
+ },
+ {
+ .mode = 2,
+ .acqorder = 1,
+ .allowed = (MM_MODEM_MODE_3G | MM_MODEM_MODE_2G),
+ .preferred = MM_MODEM_MODE_2G
+ },
+ {
+ .mode = 2,
+ .acqorder = 2,
+ .allowed = (MM_MODEM_MODE_3G | MM_MODEM_MODE_2G),
+ .preferred = MM_MODEM_MODE_3G
+ },
+ {
+ .mode = 13,
+ .acqorder = 0,
+ .allowed = MM_MODEM_MODE_2G,
+ .preferred = MM_MODEM_MODE_NONE
+ },
+ {
+ .mode = 14,
+ .acqorder = 0,
+ .allowed = MM_MODEM_MODE_3G,
+ .preferred = MM_MODEM_MODE_NONE
+ }
+ }
+ },
+ {
+ "^SYSCFG:(2,13,14,16),(0-3),((400000,\"WCDMA2100\")),(0-2),(0-4)\r\n",
+ {
+ {
+ .mode = 2,
+ .acqorder = 0,
+ .allowed = (MM_MODEM_MODE_3G | MM_MODEM_MODE_2G),
+ .preferred = MM_MODEM_MODE_NONE
+ },
+ {
+ .mode = 2,
+ .acqorder = 1,
+ .allowed = (MM_MODEM_MODE_3G | MM_MODEM_MODE_2G),
+ .preferred = MM_MODEM_MODE_2G
+ },
+ {
+ .mode = 2,
+ .acqorder = 2,
+ .allowed = (MM_MODEM_MODE_3G | MM_MODEM_MODE_2G),
+ .preferred = MM_MODEM_MODE_3G
+ },
+ {
+ .mode = 13,
+ .acqorder = 0,
+ .allowed = MM_MODEM_MODE_2G,
+ .preferred = MM_MODEM_MODE_NONE
+ },
+ {
+ .mode = 14,
+ .acqorder = 0,
+ .allowed = MM_MODEM_MODE_3G,
+ .preferred = MM_MODEM_MODE_NONE
+ }
+ }
+ },
+ {
+ "^SYSCFG:(2,13,14,16),(0),((400000,\"WCDMA2100\")),(0-2),(0-4)\r\n",
+ {
+ {
+ .mode = 2,
+ .acqorder = 0,
+ .allowed = (MM_MODEM_MODE_3G | MM_MODEM_MODE_2G),
+ .preferred = MM_MODEM_MODE_NONE
+ },
+ {
+ .mode = 13,
+ .acqorder = 0,
+ .allowed = MM_MODEM_MODE_2G,
+ .preferred = MM_MODEM_MODE_NONE
+ },
+ {
+ .mode = 14,
+ .acqorder = 0,
+ .allowed = MM_MODEM_MODE_3G,
+ .preferred = MM_MODEM_MODE_NONE
+ },
+ { 0, 0, 0, 0 }
+ }
+ },
+ {
+ "^SYSCFG:(13),(0),((400000,\"WCDMA2100\")),(0-2),(0-4)\r\n",
+ {
+ {
+ .mode = 13,
+ .acqorder = 0,
+ .allowed = MM_MODEM_MODE_2G,
+ .preferred = MM_MODEM_MODE_NONE
+ },
+ { 0, 0, 0, 0 }
+ }
+ }
+};
+
+static void
+test_syscfg (void)
+{
+ guint i;
+
+ for (i = 0; i < G_N_ELEMENTS (syscfg_tests); i++) {
+ GError *error = NULL;
+ GArray *combinations = NULL;
+ guint j;
+ guint n_expected_combinations = 0;
+
+ for (j = 0; j < MAX_SYSCFG_COMBINATIONS; j++) {
+ if (syscfg_tests[i].expected_modes[j].mode != 0)
+ n_expected_combinations++;
+ }
+
+ combinations = mm_huawei_parse_syscfg_test (syscfg_tests[i].str, &error);
+ g_assert_no_error (error);
+ g_assert (combinations != NULL);
+ g_assert_cmpuint (combinations->len, ==, n_expected_combinations);
+
+#if defined ENABLE_TEST_MESSAGE_TRACES
+ for (j = 0; j < combinations->len; j++) {
+ MMHuaweiSyscfgCombination *single;
+ gchar *allowed_str;
+ gchar *preferred_str;
+
+ single = &g_array_index (combinations, MMHuaweiSyscfgCombination, j);
+ allowed_str = mm_modem_mode_build_string_from_mask (single->allowed);
+ preferred_str = mm_modem_mode_build_string_from_mask (single->preferred);
+ mm_dbg ("Test[%u], Combination[%u]: %u, %u, \"%s\", \"%s\"",
+ i,
+ j,
+ single->mode,
+ single->acqorder,
+ allowed_str,
+ preferred_str);
+ g_free (allowed_str);
+ g_free (preferred_str);
+ }
+#endif
+
+ for (j = 0; j < combinations->len; j++) {
+ MMHuaweiSyscfgCombination *single;
+ guint k;
+ gboolean found = FALSE;
+
+ single = &g_array_index (combinations, MMHuaweiSyscfgCombination, j);
+ for (k = 0; k <= n_expected_combinations; k++) {
+ if (single->allowed == syscfg_tests[i].expected_modes[k].allowed &&
+ single->preferred == syscfg_tests[i].expected_modes[k].preferred &&
+ single->mode == syscfg_tests[i].expected_modes[k].mode &&
+ single->acqorder == syscfg_tests[i].expected_modes[k].acqorder) {
+ found = TRUE;
+ break;
+ }
+ }
+
+ g_assert (found == TRUE);
+ }
+
+ g_array_unref (combinations);
+ }
+}
+
+/*****************************************************************************/
+/* Test ^SYSCFG? responses */
+
+typedef struct {
+ const gchar *str;
+ const gchar *format;
+ MMModemMode allowed;
+ MMModemMode preferred;
+} SyscfgResponseTest;
+
+static const SyscfgResponseTest syscfg_response_tests[] = {
+ {
+ .str = "^SYSCFG: 2,0,400000,0,3\r\n",
+ .format = "^SYSCFG:(2,13,14,16),(0-3),((400000,\"WCDMA2100\")),(0-2),(0-4)\r\n",
+ .allowed = (MM_MODEM_MODE_3G | MM_MODEM_MODE_2G),
+ .preferred = MM_MODEM_MODE_NONE
+ },
+ {
+ .str = "^SYSCFG: 2,1,400000,0,3\r\n",
+ .format = "^SYSCFG:(2,13,14,16),(0-3),((400000,\"WCDMA2100\")),(0-2),(0-4)\r\n",
+ .allowed = (MM_MODEM_MODE_3G | MM_MODEM_MODE_2G),
+ .preferred = MM_MODEM_MODE_2G
+ },
+ {
+ .str = "^SYSCFG: 2,2,400000,0,3\r\n",
+ .format = "^SYSCFG:(2,13,14,16),(0-3),((400000,\"WCDMA2100\")),(0-2),(0-4)\r\n",
+ .allowed = (MM_MODEM_MODE_3G | MM_MODEM_MODE_2G),
+ .preferred = MM_MODEM_MODE_3G
+ },
+ {
+ .str = "^SYSCFG: 13,0,400000,0,3\r\n",
+ .format = "^SYSCFG:(2,13,14,16),(0-3),((400000,\"WCDMA2100\")),(0-2),(0-4)\r\n",
+ .allowed = MM_MODEM_MODE_2G,
+ .preferred = MM_MODEM_MODE_NONE
+ },
+ {
+ .str = "^SYSCFG: 14,0,400000,0,3\r\n",
+ .format = "^SYSCFG:(2,13,14,16),(0-3),((400000,\"WCDMA2100\")),(0-2),(0-4)\r\n",
+ .allowed = MM_MODEM_MODE_3G,
+ .preferred = MM_MODEM_MODE_NONE
+ }
+};
+
+static void
+test_syscfg_response (void)
+{
+ guint i;
+
+ for (i = 0; i < G_N_ELEMENTS (syscfg_response_tests); i++) {
+ GArray *combinations = NULL;
+ const MMHuaweiSyscfgCombination *found;
+ GError *error = NULL;
+
+ combinations = mm_huawei_parse_syscfg_test (syscfg_response_tests[i].format, NULL);
+ g_assert (combinations != NULL);
+
+ found = mm_huawei_parse_syscfg_response (syscfg_response_tests[i].str,
+ combinations,
+ &error);
+
+ g_assert (found != NULL);
+ g_assert_cmpuint (found->allowed, ==, syscfg_response_tests[i].allowed);
+ g_assert_cmpuint (found->preferred, ==, syscfg_response_tests[i].preferred);
+
+ g_array_unref (combinations);
+ }
+}
+
+/*****************************************************************************/
+/* Test ^SYSCFGEX=? responses */
+
+#define MAX_SYSCFGEX_COMBINATIONS 5
+
+typedef struct {
+ const gchar *str;
+ MMHuaweiSyscfgexCombination expected_modes[MAX_SYSCFGEX_COMBINATIONS];
+} SyscfgexTest;
+
+static const SyscfgexTest syscfgex_tests[] = {
+ {
+ "^SYSCFGEX: (\"00\",\"03\",\"02\",\"01\",\"99\"),"
+ "((2000004e80380,\"GSM850/GSM900/GSM1800/GSM1900/WCDMA850/WCDMA900/WCDMA1900/WCDMA2100\"),(3fffffff,\"All Bands\")),"
+ "(0-3),"
+ "(0-4),"
+ "((800c5,\"LTE2100/LTE1800/LTE2600/LTE900/LTE800\"),(7fffffffffffffff,\"All bands\"))"
+ "\r\n",
+ {
+ {
+ .mode_str = "00",
+ .allowed = (MM_MODEM_MODE_4G | MM_MODEM_MODE_3G | MM_MODEM_MODE_2G),
+ .preferred = MM_MODEM_MODE_NONE
+ },
+ {
+ .mode_str = "03",
+ .allowed = MM_MODEM_MODE_4G,
+ .preferred = MM_MODEM_MODE_NONE
+ },
+ {
+ .mode_str = "02",
+ .allowed = MM_MODEM_MODE_3G,
+ .preferred = MM_MODEM_MODE_NONE
+ },
+ {
+ .mode_str = "01",
+ .allowed = MM_MODEM_MODE_2G,
+ .preferred = MM_MODEM_MODE_NONE
+ },
+ { NULL, 0, 0 }
+ }
+ },
+ {
+ "^SYSCFGEX: (\"030201\",\"0302\",\"03\",\"99\"),"
+ "((2000004e80380,\"GSM850/GSM900/GSM1800/GSM1900/WCDMA850/WCDMA900/WCDMA1900/WCDMA2100\"),(3fffffff,\"All Bands\")),"
+ "(0-3),"
+ "(0-4),"
+ "((800c5,\"LTE2100/LTE1800/LTE2600/LTE900/LTE800\"),(7fffffffffffffff,\"All bands\"))"
+ "\r\n",
+ {
+ {
+ .mode_str = "030201",
+ .allowed = (MM_MODEM_MODE_4G | MM_MODEM_MODE_3G | MM_MODEM_MODE_2G),
+ .preferred = MM_MODEM_MODE_4G
+ },
+ {
+ .mode_str = "0302",
+ .allowed = (MM_MODEM_MODE_4G | MM_MODEM_MODE_3G),
+ .preferred = MM_MODEM_MODE_4G
+ },
+ {
+ .mode_str = "03",
+ .allowed = MM_MODEM_MODE_4G,
+ .preferred = MM_MODEM_MODE_NONE
+ },
+ { NULL, 0, 0 }
+ }
+ },
+ {
+ "^SYSCFGEX: (\"03\"),"
+ "((2000004e80380,\"GSM850/GSM900/GSM1800/GSM1900/WCDMA850/WCDMA900/WCDMA1900/WCDMA2100\"),(3fffffff,\"All Bands\")),"
+ "(0-3),"
+ "(0-4),"
+ "((800c5,\"LTE2100/LTE1800/LTE2600/LTE900/LTE800\"),(7fffffffffffffff,\"All bands\"))"
+ "\r\n",
+ {
+ {
+ .mode_str = "03",
+ .allowed = MM_MODEM_MODE_4G,
+ .preferred = MM_MODEM_MODE_NONE
+ },
+ { NULL, 0, 0 }
+ }
+ },
+ {
+ "^SYSCFGEX: (\"00\",\"01\",\"02\",\"0102\",\"0201\"),"
+ "((3fffffff,\"All Bands\"),(2000000400180,\"GSM900/GSM1800/WCDMA900/WCDMA2100\"),(6A80000,\"GSM850/GSM1900/WCDMA850/AWS/WCDMA1900\")),"
+ "(0-2),"
+ "(0-4),"
+ "," /* NOTE: Non-LTE modem, LTE Bands EMPTY */
+ "\r\n",
+ {
+ {
+ .mode_str = "00",
+ .allowed = (MM_MODEM_MODE_3G | MM_MODEM_MODE_2G),
+ .preferred = MM_MODEM_MODE_NONE
+ },
+ {
+ .mode_str = "01",
+ .allowed = MM_MODEM_MODE_2G,
+ .preferred = MM_MODEM_MODE_NONE
+ },
+ {
+ .mode_str = "02",
+ .allowed = MM_MODEM_MODE_3G,
+ .preferred = MM_MODEM_MODE_NONE
+ },
+ {
+ .mode_str = "0102",
+ .allowed = (MM_MODEM_MODE_2G | MM_MODEM_MODE_3G),
+ .preferred = MM_MODEM_MODE_2G
+ },
+ {
+ .mode_str = "0201",
+ .allowed = (MM_MODEM_MODE_2G | MM_MODEM_MODE_3G),
+ .preferred = MM_MODEM_MODE_3G
+ }
+ }
+ }
+};
+
+static void
+test_syscfgex (void)
+{
+ guint i;
+
+ for (i = 0; i < G_N_ELEMENTS (syscfgex_tests); i++) {
+ GError *error = NULL;
+ GArray *combinations = NULL;
+ guint j;
+ guint n_expected_combinations = 0;
+
+ for (j = 0; j < MAX_SYSCFGEX_COMBINATIONS; j++) {
+ if (syscfgex_tests[i].expected_modes[j].mode_str != NULL)
+ n_expected_combinations++;
+ }
+
+ combinations = mm_huawei_parse_syscfgex_test (syscfgex_tests[i].str, &error);
+ g_assert_no_error (error);
+ g_assert (combinations != NULL);
+ g_assert_cmpuint (combinations->len, ==, n_expected_combinations);
+
+#if defined ENABLE_TEST_MESSAGE_TRACES
+ for (j = 0; j < combinations->len; j++) {
+ MMHuaweiSyscfgexCombination *single;
+ gchar *allowed_str;
+ gchar *preferred_str;
+
+ single = &g_array_index (combinations, MMHuaweiSyscfgexCombination, j);
+ allowed_str = mm_modem_mode_build_string_from_mask (single->allowed);
+ preferred_str = mm_modem_mode_build_string_from_mask (single->preferred);
+ mm_dbg ("Test[%u], Combination[%u]: \"%s\", \"%s\", \"%s\"",
+ i,
+ j,
+ single->mode_str,
+ allowed_str,
+ preferred_str);
+ g_free (allowed_str);
+ g_free (preferred_str);
+ }
+#endif
+
+ for (j = 0; j < combinations->len; j++) {
+ MMHuaweiSyscfgexCombination *single;
+ guint k;
+ gboolean found = FALSE;
+
+ single = &g_array_index (combinations, MMHuaweiSyscfgexCombination, j);
+ for (k = 0; k <= n_expected_combinations; k++) {
+ if (g_str_equal (single->mode_str, syscfgex_tests[i].expected_modes[k].mode_str) &&
+ single->allowed == syscfgex_tests[i].expected_modes[k].allowed &&
+ single->preferred == syscfgex_tests[i].expected_modes[k].preferred) {
+ found = TRUE;
+ break;
+ }
+ }
+
+ g_assert (found == TRUE);
+ }
+
+ g_array_unref (combinations);
+ }
+}
+
+/*****************************************************************************/
+/* Test ^SYSCFGEX? responses */
+
+typedef struct {
+ const gchar *str;
+ const gchar *format;
+ MMModemMode allowed;
+ MMModemMode preferred;
+} SyscfgexResponseTest;
+
+static const SyscfgexResponseTest syscfgex_response_tests[] = {
+ {
+ .str = "^SYSCFGEX: \"00\",3FFFFFFF,1,2,7FFFFFFFFFFFFFFF",
+ .format = "^SYSCFGEX: (\"00\",\"03\",\"02\",\"01\",\"99\"),"
+ "((2000004e80380,\"GSM850/GSM900/GSM1800/GSM1900/WCDMA850/WCDMA900/WCDMA1900/WCDMA2100\"),(3fffffff,\"All Bands\")),"
+ "(0-3),"
+ "(0-4),"
+ "((800c5,\"LTE2100/LTE1800/LTE2600/LTE900/LTE800\"),(7fffffffffffffff,\"All bands\"))"
+ "\r\n",
+ .allowed = (MM_MODEM_MODE_4G | MM_MODEM_MODE_3G | MM_MODEM_MODE_2G),
+ .preferred = MM_MODEM_MODE_NONE
+ },
+ {
+ .str = "^SYSCFGEX: \"03\",3FFFFFFF,1,2,7FFFFFFFFFFFFFFF",
+ .format = "^SYSCFGEX: (\"00\",\"03\",\"02\",\"01\",\"99\"),"
+ "((2000004e80380,\"GSM850/GSM900/GSM1800/GSM1900/WCDMA850/WCDMA900/WCDMA1900/WCDMA2100\"),(3fffffff,\"All Bands\")),"
+ "(0-3),"
+ "(0-4),"
+ "((800c5,\"LTE2100/LTE1800/LTE2600/LTE900/LTE800\"),(7fffffffffffffff,\"All bands\"))"
+ "\r\n",
+ .allowed = MM_MODEM_MODE_4G,
+ .preferred = MM_MODEM_MODE_NONE
+ },
+ {
+ .str = "^SYSCFGEX: \"02\",3FFFFFFF,1,2,7FFFFFFFFFFFFFFF",
+ .format = "^SYSCFGEX: (\"00\",\"03\",\"02\",\"01\",\"99\"),"
+ "((2000004e80380,\"GSM850/GSM900/GSM1800/GSM1900/WCDMA850/WCDMA900/WCDMA1900/WCDMA2100\"),(3fffffff,\"All Bands\")),"
+ "(0-3),"
+ "(0-4),"
+ "((800c5,\"LTE2100/LTE1800/LTE2600/LTE900/LTE800\"),(7fffffffffffffff,\"All bands\"))"
+ "\r\n",
+ .allowed = MM_MODEM_MODE_3G,
+ .preferred = MM_MODEM_MODE_NONE
+ },
+ {
+ .str = "^SYSCFGEX: \"01\",3FFFFFFF,1,2,7FFFFFFFFFFFFFFF",
+ .format = "^SYSCFGEX: (\"00\",\"03\",\"02\",\"01\",\"99\"),"
+ "((2000004e80380,\"GSM850/GSM900/GSM1800/GSM1900/WCDMA850/WCDMA900/WCDMA1900/WCDMA2100\"),(3fffffff,\"All Bands\")),"
+ "(0-3),"
+ "(0-4),"
+ "((800c5,\"LTE2100/LTE1800/LTE2600/LTE900/LTE800\"),(7fffffffffffffff,\"All bands\"))"
+ "\r\n",
+ .allowed = MM_MODEM_MODE_2G,
+ .preferred = MM_MODEM_MODE_NONE
+ },
+ {
+ .str = "^SYSCFGEX: \"00\",3fffffff,1,2,",
+ .format = "^SYSCFGEX: (\"00\",\"01\",\"02\",\"0102\",\"0201\"),"
+ "((3fffffff,\"All Bands\"),(2000000400180,\"GSM900/GSM1800/WCDMA900/WCDMA2100\"),(6A80000,\"GSM850/GSM1900/WCDMA850/AWS/WCDMA1900\")),"
+ "(0-2),"
+ "(0-4),"
+ "," /* NOTE: Non-LTE modem, LTE Bands EMPTY */
+ "\r\n",
+ .allowed = (MM_MODEM_MODE_2G | MM_MODEM_MODE_3G),
+ .preferred = MM_MODEM_MODE_NONE
+ },
+ {
+ .str = "^SYSCFGEX: \"01\",3fffffff,1,2,",
+ .format = "^SYSCFGEX: (\"00\",\"01\",\"02\",\"0102\",\"0201\"),"
+ "((3fffffff,\"All Bands\"),(2000000400180,\"GSM900/GSM1800/WCDMA900/WCDMA2100\"),(6A80000,\"GSM850/GSM1900/WCDMA850/AWS/WCDMA1900\")),"
+ "(0-2),"
+ "(0-4),"
+ "," /* NOTE: Non-LTE modem, LTE Bands EMPTY */
+ "\r\n",
+ .allowed = MM_MODEM_MODE_2G,
+ .preferred = MM_MODEM_MODE_NONE
+ },
+ {
+ .str = "^SYSCFGEX: \"02\",3fffffff,1,2,",
+ .format = "^SYSCFGEX: (\"00\",\"01\",\"02\",\"0102\",\"0201\"),"
+ "((3fffffff,\"All Bands\"),(2000000400180,\"GSM900/GSM1800/WCDMA900/WCDMA2100\"),(6A80000,\"GSM850/GSM1900/WCDMA850/AWS/WCDMA1900\")),"
+ "(0-2),"
+ "(0-4),"
+ "," /* NOTE: Non-LTE modem, LTE Bands EMPTY */
+ "\r\n",
+ .allowed = MM_MODEM_MODE_3G,
+ .preferred = MM_MODEM_MODE_NONE
+ },
+ {
+ .str = "^SYSCFGEX: \"0102\",3fffffff,1,2,",
+ .format = "^SYSCFGEX: (\"00\",\"01\",\"02\",\"0102\",\"0201\"),"
+ "((3fffffff,\"All Bands\"),(2000000400180,\"GSM900/GSM1800/WCDMA900/WCDMA2100\"),(6A80000,\"GSM850/GSM1900/WCDMA850/AWS/WCDMA1900\")),"
+ "(0-2),"
+ "(0-4),"
+ "," /* NOTE: Non-LTE modem, LTE Bands EMPTY */
+ "\r\n",
+ .allowed = (MM_MODEM_MODE_2G | MM_MODEM_MODE_3G),
+ .preferred = MM_MODEM_MODE_2G
+ },
+ {
+ .str = "^SYSCFGEX: \"0201\",3fffffff,1,2,",
+ .format = "^SYSCFGEX: (\"00\",\"01\",\"02\",\"0102\",\"0201\"),"
+ "((3fffffff,\"All Bands\"),(2000000400180,\"GSM900/GSM1800/WCDMA900/WCDMA2100\"),(6A80000,\"GSM850/GSM1900/WCDMA850/AWS/WCDMA1900\")),"
+ "(0-2),"
+ "(0-4),"
+ "," /* NOTE: Non-LTE modem, LTE Bands EMPTY */
+ "\r\n",
+ .allowed = (MM_MODEM_MODE_2G | MM_MODEM_MODE_3G),
+ .preferred = MM_MODEM_MODE_3G
+ }
+};
+
+static void
+test_syscfgex_response (void)
+{
+ guint i;
+
+ for (i = 0; i < G_N_ELEMENTS (syscfgex_response_tests); i++) {
+ GArray *combinations = NULL;
+ const MMHuaweiSyscfgexCombination *found;
+ GError *error = NULL;
+
+ combinations = mm_huawei_parse_syscfgex_test (syscfgex_response_tests[i].format, NULL);
+ g_assert (combinations != NULL);
+
+ found = mm_huawei_parse_syscfgex_response (syscfgex_response_tests[i].str,
+ combinations,
+ &error);
+
+ g_assert (found != NULL);
+ g_assert_cmpuint (found->allowed, ==, syscfgex_response_tests[i].allowed);
+ g_assert_cmpuint (found->preferred, ==, syscfgex_response_tests[i].preferred);
+
+ g_array_unref (combinations);
+ }
+}
+
+/*****************************************************************************/
+
+void
+_mm_log (const char *loc,
+ const char *func,
+ guint32 level,
+ const char *fmt,
+ ...)
+{
+#if defined ENABLE_TEST_MESSAGE_TRACES
+ /* Dummy log function */
+ va_list args;
+ gchar *msg;
+
+ va_start (args, fmt);
+ msg = g_strdup_vprintf (fmt, args);
+ va_end (args);
+ g_print ("%s\n", msg);
+ g_free (msg);
+#endif
+}
int main (int argc, char **argv)
{
@@ -98,6 +1031,14 @@ int main (int argc, char **argv)
g_test_init (&argc, &argv, NULL);
g_test_add_func ("/MM/huawei/ndisstatqry", test_ndisstatqry);
+ g_test_add_func ("/MM/huawei/sysinfo", test_sysinfo);
+ g_test_add_func ("/MM/huawei/sysinfoex", test_sysinfoex);
+ g_test_add_func ("/MM/huawei/prefmode", test_prefmode);
+ g_test_add_func ("/MM/huawei/prefmode/response", test_prefmode_response);
+ g_test_add_func ("/MM/huawei/syscfg", test_syscfg);
+ g_test_add_func ("/MM/huawei/syscfg/response", test_syscfg_response);
+ g_test_add_func ("/MM/huawei/syscfgex", test_syscfgex);
+ g_test_add_func ("/MM/huawei/syscfgex/response", test_syscfgex_response);
return g_test_run ();
}
diff --git a/plugins/icera/mm-broadband-bearer-icera.c b/plugins/icera/mm-broadband-bearer-icera.c
index b7ea8df..48a2a79 100644
--- a/plugins/icera/mm-broadband-bearer-icera.c
+++ b/plugins/icera/mm-broadband-bearer-icera.c
@@ -32,6 +32,7 @@
#include "mm-log.h"
#include "mm-modem-helpers.h"
#include "mm-error-helpers.h"
+#include "mm-daemon-enums-types.h"
G_DEFINE_TYPE (MMBroadbandBearerIcera, mm_broadband_bearer_icera, MM_TYPE_BROADBAND_BEARER);
@@ -360,13 +361,14 @@ disconnect_3gpp_timed_out_cb (MMBroadbandBearerIcera *self)
static void
report_disconnect_status (MMBroadbandBearerIcera *self,
- MMBroadbandBearerIceraConnectionStatus status)
+ MMBearerConnectionStatus status)
{
Disconnect3gppContext *ctx;
/* Recover context */
ctx = self->priv->disconnect_pending;
self->priv->disconnect_pending = NULL;
+ g_assert (ctx != NULL);
/* Cleanup timeout, if any */
if (self->priv->disconnect_pending_id) {
@@ -374,42 +376,26 @@ report_disconnect_status (MMBroadbandBearerIcera *self,
self->priv->disconnect_pending_id = 0;
}
- switch (status) {
- case MM_BROADBAND_BEARER_ICERA_CONNECTION_STATUS_UNKNOWN:
- g_warn_if_reached ();
- break;
-
- case MM_BROADBAND_BEARER_ICERA_CONNECTION_STATUS_CONNECTED:
- if (!ctx)
- break;
-
+ /* Received 'CONNECTED' during a disconnection attempt? */
+ if (status == MM_BEARER_CONNECTION_STATUS_CONNECTED) {
g_simple_async_result_set_error (ctx->result,
MM_CORE_ERROR,
MM_CORE_ERROR_FAILED,
"Disconnection failed");
disconnect_3gpp_context_complete_and_free (ctx);
return;
+ }
- case MM_BROADBAND_BEARER_ICERA_CONNECTION_STATUS_CONNECTION_FAILED:
- if (!ctx)
- break;
-
- /* Well, this actually means disconnection, right? */
- g_simple_async_result_set_op_res_gboolean (ctx->result, TRUE);
- disconnect_3gpp_context_complete_and_free (ctx);
- return;
-
- case MM_BROADBAND_BEARER_ICERA_CONNECTION_STATUS_DISCONNECTED:
- if (!ctx) {
- mm_dbg ("Received spontaneous %%IPDPACT disconnect");
- mm_bearer_report_disconnection (MM_BEARER (self));
- break;
- }
-
+ /* Received 'DISCONNECTED' during a disconnection attempt? */
+ if (status == MM_BEARER_CONNECTION_STATUS_DISCONNECTED ||
+ status == MM_BEARER_CONNECTION_STATUS_CONNECTION_FAILED) {
g_simple_async_result_set_op_res_gboolean (ctx->result, TRUE);
disconnect_3gpp_context_complete_and_free (ctx);
return;
}
+
+ /* No other status is expected by this implementation */
+ g_assert_not_reached ();
}
static void
@@ -658,9 +644,8 @@ forced_close_cb (MMSerialPort *port,
MMBroadbandBearerIcera *self)
{
/* Just treat the forced close event as any other unsolicited message */
- mm_broadband_bearer_icera_report_connection_status (
- self,
- MM_BROADBAND_BEARER_ICERA_CONNECTION_STATUS_CONNECTION_FAILED);
+ mm_bearer_report_connection_status (MM_BEARER (self),
+ MM_BEARER_CONNECTION_STATUS_CONNECTION_FAILED);
}
static void
@@ -699,13 +684,18 @@ ier_query_ready (MMBaseModem *modem,
static void
report_connect_status (MMBroadbandBearerIcera *self,
- MMBroadbandBearerIceraConnectionStatus status)
+ MMBearerConnectionStatus status)
{
Dial3gppContext *ctx;
+ g_assert (status == MM_BEARER_CONNECTION_STATUS_CONNECTED ||
+ status == MM_BEARER_CONNECTION_STATUS_CONNECTION_FAILED ||
+ status == MM_BEARER_CONNECTION_STATUS_DISCONNECTED);
+
/* Recover context and remove it from the private info */
ctx = self->priv->connect_pending;
self->priv->connect_pending = NULL;
+ g_assert (ctx != NULL);
/* Cleanup cancellable, timeout and port closed watch, if any */
if (self->priv->connect_pending_id) {
@@ -713,29 +703,19 @@ report_connect_status (MMBroadbandBearerIcera *self,
self->priv->connect_pending_id = 0;
}
- if (ctx && self->priv->connect_cancellable_id) {
+ if (self->priv->connect_cancellable_id) {
g_cancellable_disconnect (ctx->cancellable,
self->priv->connect_cancellable_id);
self->priv->connect_cancellable_id = 0;
}
- if (ctx && self->priv->connect_port_closed_id) {
+ if (self->priv->connect_port_closed_id) {
g_signal_handler_disconnect (ctx->primary, self->priv->connect_port_closed_id);
self->priv->connect_port_closed_id = 0;
}
- switch (status) {
- case MM_BROADBAND_BEARER_ICERA_CONNECTION_STATUS_UNKNOWN:
- break;
-
- case MM_BROADBAND_BEARER_ICERA_CONNECTION_STATUS_CONNECTED:
- if (!ctx)
- /* We may get this if the timeout for the connection attempt is
- * reached before the unsolicited response. We should probably
- * keep the CID around to request explicit disconnection in this
- * case. */
- break;
-
+ /* Received 'CONNECTED' during a connection attempt? */
+ if (status == MM_BEARER_CONNECTION_STATUS_CONNECTED) {
/* If we wanted to get cancelled before, do it now */
if (ctx->saved_error) {
/* Keep error */
@@ -751,20 +731,19 @@ report_connect_status (MMBroadbandBearerIcera *self,
(GDestroyNotify)g_object_unref);
dial_3gpp_context_complete_and_free (ctx);
return;
+ }
- case MM_BROADBAND_BEARER_ICERA_CONNECTION_STATUS_CONNECTION_FAILED:
- if (!ctx)
- break;
-
- /* If we wanted to get cancelled before and now we couldn't connect,
- * use the cancelled error and return */
- if (ctx->saved_error) {
- g_simple_async_result_take_error (ctx->result, ctx->saved_error);
- ctx->saved_error = NULL;
- dial_3gpp_context_complete_and_free (ctx);
- return;
- }
+ /* If we wanted to get cancelled before and now we couldn't connect,
+ * use the cancelled error and return */
+ if (ctx->saved_error) {
+ g_simple_async_result_take_error (ctx->result, ctx->saved_error);
+ ctx->saved_error = NULL;
+ dial_3gpp_context_complete_and_free (ctx);
+ return;
+ }
+ /* Received CONNECTION_FAILED during a connection attempt? */
+ if (status == MM_BEARER_CONNECTION_STATUS_CONNECTION_FAILED) {
/* Try to gather additional info about the connection failure */
mm_base_modem_at_command_full (
ctx->modem,
@@ -777,32 +756,14 @@ report_connect_status (MMBroadbandBearerIcera *self,
(GAsyncReadyCallback)ier_query_ready,
ctx);
return;
-
- case MM_BROADBAND_BEARER_ICERA_CONNECTION_STATUS_DISCONNECTED:
- if (ctx) {
- /* If we wanted to get cancelled before and now we couldn't connect,
- * use the cancelled error and return */
- if (ctx->saved_error) {
- g_simple_async_result_take_error (ctx->result, ctx->saved_error);
- ctx->saved_error = NULL;
- dial_3gpp_context_complete_and_free (ctx);
- return;
- }
-
- g_simple_async_result_set_error (ctx->result,
- MM_CORE_ERROR,
- MM_CORE_ERROR_FAILED,
- "Call setup failed");
- dial_3gpp_context_complete_and_free (ctx);
- return;
- }
-
- /* Just ensure we mark ourselves as being disconnected... */
- mm_bearer_report_disconnection (MM_BEARER (self));
- return;
}
- g_warn_if_reached ();
+ /* Otherwise, received 'DISCONNECTED' during a connection attempt? */
+ g_simple_async_result_set_error (ctx->result,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Call setup failed");
+ dial_3gpp_context_complete_and_free (ctx);
}
static void
@@ -1060,15 +1021,36 @@ dial_3gpp (MMBroadbandBearer *self,
/*****************************************************************************/
-void
-mm_broadband_bearer_icera_report_connection_status (MMBroadbandBearerIcera *self,
- MMBroadbandBearerIceraConnectionStatus status)
+static void
+report_connection_status (MMBearer *bearer,
+ MMBearerConnectionStatus status)
{
- if (self->priv->connect_pending)
+ MMBroadbandBearerIcera *self = MM_BROADBAND_BEARER_ICERA (bearer);
+
+ /* Process pending connection attempt */
+ if (self->priv->connect_pending) {
report_connect_status (self, status);
+ return;
+ }
- if (self->priv->disconnect_pending)
+ /* Process pending disconnection attempt */
+ if (self->priv->disconnect_pending) {
report_disconnect_status (self, status);
+ return;
+ }
+
+ mm_dbg ("Received spontaneous %%IPDPACT (%s)",
+ mm_bearer_connection_status_get_string (status));
+
+ /* Received a random 'DISCONNECTED'...*/
+ if (status == MM_BEARER_CONNECTION_STATUS_DISCONNECTED ||
+ status == MM_BEARER_CONNECTION_STATUS_CONNECTION_FAILED) {
+ /* If no connection/disconnection attempt on-going, make sure we mark ourselves as
+ * disconnected. Make sure we only pass 'DISCONNECTED' to the parent */
+ MM_BEARER_CLASS (mm_broadband_bearer_icera_parent_class)->report_connection_status (
+ bearer,
+ MM_BEARER_CONNECTION_STATUS_DISCONNECTED);
+ }
}
/*****************************************************************************/
@@ -1165,12 +1147,14 @@ static void
mm_broadband_bearer_icera_class_init (MMBroadbandBearerIceraClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ MMBearerClass *bearer_class = MM_BEARER_CLASS (klass);
MMBroadbandBearerClass *broadband_bearer_class = MM_BROADBAND_BEARER_CLASS (klass);
g_type_class_add_private (object_class, sizeof (MMBroadbandBearerIceraPrivate));
object_class->get_property = get_property;
object_class->set_property = set_property;
+ bearer_class->report_connection_status = report_connection_status;
broadband_bearer_class->dial_3gpp = dial_3gpp;
broadband_bearer_class->dial_3gpp_finish = dial_3gpp_finish;
broadband_bearer_class->get_ip_config_3gpp = get_ip_config_3gpp;
diff --git a/plugins/icera/mm-broadband-bearer-icera.h b/plugins/icera/mm-broadband-bearer-icera.h
index 4edd189..f513659 100644
--- a/plugins/icera/mm-broadband-bearer-icera.h
+++ b/plugins/icera/mm-broadband-bearer-icera.h
@@ -36,13 +36,6 @@
#define MM_BROADBAND_BEARER_ICERA_DEFAULT_IP_METHOD "broadband-bearer-icera-default-ip-method"
-typedef enum {
- MM_BROADBAND_BEARER_ICERA_CONNECTION_STATUS_UNKNOWN,
- MM_BROADBAND_BEARER_ICERA_CONNECTION_STATUS_CONNECTED,
- MM_BROADBAND_BEARER_ICERA_CONNECTION_STATUS_CONNECTION_FAILED,
- MM_BROADBAND_BEARER_ICERA_CONNECTION_STATUS_DISCONNECTED
-} MMBroadbandBearerIceraConnectionStatus;
-
typedef struct _MMBroadbandBearerIcera MMBroadbandBearerIcera;
typedef struct _MMBroadbandBearerIceraClass MMBroadbandBearerIceraClass;
typedef struct _MMBroadbandBearerIceraPrivate MMBroadbandBearerIceraPrivate;
@@ -68,7 +61,4 @@ void mm_broadband_bearer_icera_new (MMBroadbandModem *modem,
MMBearer *mm_broadband_bearer_icera_new_finish (GAsyncResult *res,
GError **error);
-void mm_broadband_bearer_icera_report_connection_status (MMBroadbandBearerIcera *self,
- MMBroadbandBearerIceraConnectionStatus status);
-
#endif /* MM_BROADBAND_BEARER_ICERA_H */
diff --git a/plugins/icera/mm-broadband-modem-icera.c b/plugins/icera/mm-broadband-modem-icera.c
index b84cd12..bf3d18b 100644
--- a/plugins/icera/mm-broadband-modem-icera.c
+++ b/plugins/icera/mm-broadband-modem-icera.c
@@ -397,7 +397,7 @@ modem_set_current_modes (MMIfaceModem *self,
typedef struct {
guint cid;
- MMBroadbandBearerIceraConnectionStatus status;
+ MMBearerConnectionStatus status;
} BearerListReportStatusForeachContext;
static void
@@ -410,8 +410,7 @@ bearer_list_report_status_foreach (MMBearer *bearer,
if (!MM_IS_BROADBAND_BEARER_ICERA (bearer))
return;
- mm_broadband_bearer_icera_report_connection_status (MM_BROADBAND_BEARER_ICERA (bearer),
- ctx->status);
+ mm_bearer_report_connection_status (bearer, ctx->status);
}
static void
@@ -431,20 +430,20 @@ ipdpact_received (MMAtSerialPort *port,
/* Setup context */
ctx.cid = cid;
- ctx.status = MM_BROADBAND_BEARER_ICERA_CONNECTION_STATUS_UNKNOWN;
+ ctx.status = MM_BEARER_CONNECTION_STATUS_UNKNOWN;
switch (status) {
case 0:
- ctx.status = MM_BROADBAND_BEARER_ICERA_CONNECTION_STATUS_DISCONNECTED;
+ ctx.status = MM_BEARER_CONNECTION_STATUS_DISCONNECTED;
break;
case 1:
- ctx.status = MM_BROADBAND_BEARER_ICERA_CONNECTION_STATUS_CONNECTED;
+ ctx.status = MM_BEARER_CONNECTION_STATUS_CONNECTED;
break;
case 2:
/* activating */
break;
case 3:
- ctx.status = MM_BROADBAND_BEARER_ICERA_CONNECTION_STATUS_CONNECTION_FAILED;
+ ctx.status = MM_BEARER_CONNECTION_STATUS_CONNECTION_FAILED;
break;
default:
mm_warn ("Unknown Icera connect status %d", status);
@@ -452,7 +451,7 @@ ipdpact_received (MMAtSerialPort *port,
}
/* If unknown status, don't try to report anything */
- if (ctx.status == MM_BROADBAND_BEARER_ICERA_CONNECTION_STATUS_UNKNOWN)
+ if (ctx.status == MM_BEARER_CONNECTION_STATUS_UNKNOWN)
return;
/* If empty bearer list, nothing else to do */
diff --git a/plugins/longcheer/77-mm-longcheer-port-types.rules b/plugins/longcheer/77-mm-longcheer-port-types.rules
index d465679..e91ba95 100644
--- a/plugins/longcheer/77-mm-longcheer-port-types.rules
+++ b/plugins/longcheer/77-mm-longcheer-port-types.rules
@@ -13,7 +13,7 @@
# cannot be used for PPP.
-ACTION!="add|change", GOTO="mm_longcheer_port_types_end"
+ACTION!="add|change|move", GOTO="mm_longcheer_port_types_end"
SUBSYSTEM!="tty", GOTO="mm_longcheer_port_types_end"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1c9e", GOTO="mm_longcheer_vendorcheck"
diff --git a/plugins/mbm/77-mm-ericsson-mbm.rules b/plugins/mbm/77-mm-ericsson-mbm.rules
index a2341f1..ded81b1 100644
--- a/plugins/mbm/77-mm-ericsson-mbm.rules
+++ b/plugins/mbm/77-mm-ericsson-mbm.rules
@@ -1,6 +1,6 @@
# do not edit this file, it will be overwritten on update
-ACTION!="add|change", GOTO="mm_mbm_end"
+ACTION!="add|change|move", GOTO="mm_mbm_end"
SUBSYSTEMS=="usb", GOTO="mm_mbm_check"
GOTO="mm_mbm_end"
@@ -52,10 +52,14 @@ ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1921", ENV{ID_MM_ERICSSON_MBM}="1"
# Ericsson H5321gw
ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1926", ENV{ID_MM_ERICSSON_MBM}="1"
+ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1927", ENV{ID_MM_ERICSSON_MBM}="1"
# Ericsson C3304w
ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1928", ENV{ID_MM_ERICSSON_MBM}="1"
+# Ericsson C5621 TFF
+ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1936", ENV{ID_MM_ERICSSON_MBM}="1"
+
# Sony-Ericsson MD300
ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="d0cf", ENV{ID_MM_ERICSSON_MBM}="1"
@@ -116,4 +120,7 @@ ATTRS{idVendor}=="0930", ATTRS{idProduct}=="1317", ENV{ID_MM_ERICSSON_MBM}="1"
ATTRS{idVendor}=="0930", ATTRS{idProduct}=="1313", ENV{ID_MM_ERICSSON_MBM}="1"
ATTRS{idVendor}=="0930", ATTRS{idProduct}=="1314", ENV{ID_MM_ERICSSON_MBM}="1"
+# Toshiba H5321gw
+ATTRS{idVendor}=="0930", ATTRS{idProduct}=="1319", ENV{ID_MM_ERICSSON_MBM}="1"
+
LABEL="mm_mbm_end"
diff --git a/plugins/mbm/mm-broadband-bearer-mbm.c b/plugins/mbm/mm-broadband-bearer-mbm.c
index e4f9983..c7495ce 100644
--- a/plugins/mbm/mm-broadband-bearer-mbm.c
+++ b/plugins/mbm/mm-broadband-bearer-mbm.c
@@ -39,6 +39,7 @@
#include "mm-broadband-bearer-mbm.h"
#include "mm-log.h"
#include "mm-modem-helpers.h"
+#include "mm-daemon-enums-types.h"
G_DEFINE_TYPE (MMBroadbandBearerMbm, mm_broadband_bearer_mbm, MM_TYPE_BROADBAND_BEARER);
@@ -114,55 +115,63 @@ dial_3gpp_finish (MMBroadbandBearer *self,
return MM_PORT (g_object_ref (g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (res))));
}
-void
-mm_broadband_bearer_mbm_report_connection_status (MMBroadbandBearerMbm *self,
- MMBroadbandBearerMbmConnectionStatus status)
+static void
+report_connection_status (MMBearer *bearer,
+ MMBearerConnectionStatus status)
{
+ MMBroadbandBearerMbm *self = MM_BROADBAND_BEARER_MBM (bearer);
Dial3gppContext *ctx;
+ g_assert (status == MM_BEARER_CONNECTION_STATUS_CONNECTED ||
+ status == MM_BEARER_CONNECTION_STATUS_DISCONNECTED);
+
/* Recover context (if any) and remove both cancellation and timeout (if any)*/
ctx = self->priv->connect_pending;
self->priv->connect_pending = NULL;
+ /* Connection status reported but no connection attempt? */
+ if (!ctx) {
+ g_assert (self->priv->connect_pending_id == 0);
+
+ mm_dbg ("Received spontaneous *E2NAP (%s)",
+ mm_bearer_connection_status_get_string (status));
+
+ if (status == MM_BEARER_CONNECTION_STATUS_DISCONNECTED) {
+ /* If no connection attempt on-going, make sure we mark ourselves as
+ * disconnected */
+ MM_BEARER_CLASS (mm_broadband_bearer_mbm_parent_class)->report_connection_status (
+ bearer,
+ status);
+ }
+ return;
+ }
+
if (self->priv->connect_pending_id) {
g_source_remove (self->priv->connect_pending_id);
self->priv->connect_pending_id = 0;
}
- if (ctx && self->priv->connect_cancellable_id) {
+ if (self->priv->connect_cancellable_id) {
g_cancellable_disconnect (ctx->cancellable,
self->priv->connect_cancellable_id);
self->priv->connect_cancellable_id = 0;
}
- switch (status) {
- case MM_BROADBAND_BEARER_MBM_CONNECTION_STATUS_UNKNOWN:
- g_warn_if_reached ();
- break;
-
- case MM_BROADBAND_BEARER_MBM_CONNECTION_STATUS_CONNECTED:
- if (!ctx)
- break;
-
+ /* Reporting connected */
+ if (status == MM_BEARER_CONNECTION_STATUS_CONNECTED) {
g_simple_async_result_set_op_res_gpointer (ctx->result,
g_object_ref (ctx->data),
(GDestroyNotify)g_object_unref);
dial_3gpp_context_complete_and_free (ctx);
return;
-
- case MM_BROADBAND_BEARER_MBM_CONNECTION_STATUS_DISCONNECTED:
- if (ctx) {
- g_simple_async_result_set_error (ctx->result,
- MM_CORE_ERROR,
- MM_CORE_ERROR_FAILED,
- "Call setup failed");
- dial_3gpp_context_complete_and_free (ctx);
- } else {
- /* Just ensure we mark ourselves as being disconnected... */
- mm_bearer_report_disconnection (MM_BEARER (self));
- }
- break;
}
+
+ /* Reporting disconnected */
+ g_simple_async_result_set_error (ctx->result,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Call setup failed");
+ dial_3gpp_context_complete_and_free (ctx);
}
static void
@@ -591,10 +600,12 @@ mm_broadband_bearer_mbm_class_init (MMBroadbandBearerMbmClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ MMBearerClass *bearer_class = MM_BEARER_CLASS (klass);
MMBroadbandBearerClass *broadband_bearer_class = MM_BROADBAND_BEARER_CLASS (klass);
g_type_class_add_private (object_class, sizeof (MMBroadbandBearerMbmPrivate));
+ bearer_class->report_connection_status = report_connection_status;
broadband_bearer_class->dial_3gpp = dial_3gpp;
broadband_bearer_class->dial_3gpp_finish = dial_3gpp_finish;
broadband_bearer_class->disconnect_3gpp = disconnect_3gpp;
diff --git a/plugins/mbm/mm-broadband-bearer-mbm.h b/plugins/mbm/mm-broadband-bearer-mbm.h
index dcbeeec..a49cce1 100644
--- a/plugins/mbm/mm-broadband-bearer-mbm.h
+++ b/plugins/mbm/mm-broadband-bearer-mbm.h
@@ -41,12 +41,6 @@
#define MM_IS_BROADBAND_BEARER_MBM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MM_TYPE_BROADBAND_BEARER_MBM))
#define MM_BROADBAND_BEARER_MBM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MM_TYPE_BROADBAND_BEARER_MBM, MMBroadbandBearerMbmClass))
-typedef enum {
- MM_BROADBAND_BEARER_MBM_CONNECTION_STATUS_UNKNOWN,
- MM_BROADBAND_BEARER_MBM_CONNECTION_STATUS_CONNECTED,
- MM_BROADBAND_BEARER_MBM_CONNECTION_STATUS_DISCONNECTED
-} MMBroadbandBearerMbmConnectionStatus;
-
typedef struct _MMBroadbandBearerMbm MMBroadbandBearerMbm;
typedef struct _MMBroadbandBearerMbmClass MMBroadbandBearerMbmClass;
typedef struct _MMBroadbandBearerMbmPrivate MMBroadbandBearerMbmPrivate;
@@ -71,7 +65,4 @@ void mm_broadband_bearer_mbm_new (MMBroadbandModemMbm *modem,
MMBearer *mm_broadband_bearer_mbm_new_finish (GAsyncResult *res,
GError **error);
-void mm_broadband_bearer_mbm_report_connection_status (MMBroadbandBearerMbm *self,
- MMBroadbandBearerMbmConnectionStatus status);
-
#endif /* MM_BROADBAND_BEARER_MBM_H */
diff --git a/plugins/mbm/mm-broadband-modem-mbm.c b/plugins/mbm/mm-broadband-modem-mbm.c
index 8380813..5259359 100644
--- a/plugins/mbm/mm-broadband-modem-mbm.c
+++ b/plugins/mbm/mm-broadband-modem-mbm.c
@@ -797,15 +797,14 @@ load_unlock_retries (MMIfaceModem *self,
/* Setup/Cleanup unsolicited events (3GPP interface) */
typedef struct {
- MMBroadbandBearerMbmConnectionStatus status;
+ MMBearerConnectionStatus status;
} BearerListReportStatusForeachContext;
static void
bearer_list_report_status_foreach (MMBearer *bearer,
BearerListReportStatusForeachContext *ctx)
{
- mm_broadband_bearer_mbm_report_connection_status (MM_BROADBAND_BEARER_MBM (bearer),
- ctx->status);
+ mm_bearer_report_connection_status (bearer, ctx->status);
}
static void
@@ -820,16 +819,16 @@ e2nap_received (MMAtSerialPort *port,
if (!mm_get_uint_from_match_info (info, 1, &state))
return;
- ctx.status = MM_BROADBAND_BEARER_MBM_CONNECTION_STATUS_UNKNOWN;
+ ctx.status = MM_BEARER_CONNECTION_STATUS_UNKNOWN;
switch (state) {
case MBM_E2NAP_DISCONNECTED:
mm_dbg ("disconnected");
- ctx.status = MM_BROADBAND_BEARER_MBM_CONNECTION_STATUS_DISCONNECTED;
+ ctx.status = MM_BEARER_CONNECTION_STATUS_DISCONNECTED;
break;
case MBM_E2NAP_CONNECTED:
mm_dbg ("connected");
- ctx.status = MM_BROADBAND_BEARER_MBM_CONNECTION_STATUS_CONNECTED;
+ ctx.status = MM_BEARER_CONNECTION_STATUS_CONNECTED;
break;
case MBM_E2NAP_CONNECTING:
mm_dbg ("connecting");
@@ -840,7 +839,7 @@ e2nap_received (MMAtSerialPort *port,
}
/* If unknown status, don't try to report anything */
- if (ctx.status == MM_BROADBAND_BEARER_MBM_CONNECTION_STATUS_UNKNOWN)
+ if (ctx.status == MM_BEARER_CONNECTION_STATUS_UNKNOWN)
return;
/* If empty bearer list, nothing else to do */
diff --git a/plugins/mtk/77-mm-mtk-port-types.rules b/plugins/mtk/77-mm-mtk-port-types.rules
new file mode 100644
index 0000000..26f01f2
--- /dev/null
+++ b/plugins/mtk/77-mm-mtk-port-types.rules
@@ -0,0 +1,48 @@
+# do not edit this file, it will be overwritten on update
+
+ACTION!="add|change|move", GOTO="mm_mtk_port_types_end"
+
+SUBSYSTEMS=="usb", ATTRS{idVendor}=="0e8d", GOTO="mm_mtk_port_types_vendorcheck"
+SUBSYSTEMS=="usb", ATTRS{idVendor}=="2001", GOTO="mm_dlink_port_types_vendorcheck"
+GOTO="mm_mtk_port_types_end"
+
+# MediaTek devices ---------------------------
+
+LABEL="mm_mtk_port_types_vendorcheck"
+ATTRS{bInterfaceNumber}=="?*", ENV{.MM_USBIFNUM}="$attr{bInterfaceNumber}"
+
+ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="00a1", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_MTK_MODEM_PORT}="1"
+ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="00a1", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_MTK_AT_PORT}="1"
+ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="00a1", ENV{ID_MM_MTK_TAGGED}="1"
+
+ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="00a2", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_MTK_MODEM_PORT}="1"
+ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="00a2", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_MTK_AT_PORT}="1"
+ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="00a2", ENV{ID_MM_MTK_TAGGED}="1"
+
+ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="00a4", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_MTK_MODEM_PORT}="1"
+ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="00a4", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_MTK_AT_PORT}="1"
+ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="00a4", ENV{ID_MM_MTK_TAGGED}="1"
+
+ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="00a5", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_MTK_MODEM_PORT}="1"
+ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="00a5", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_MTK_AT_PORT}="1"
+ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="00a5", ENV{ID_MM_MTK_TAGGED}="1"
+
+ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="00a7", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_MTK_MODEM_PORT}="1"
+ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="00a7", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_MTK_AT_PORT}="1"
+ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="00a7", ENV{ID_MM_MTK_TAGGED}="1"
+
+GOTO="mm_mtk_port_types_end"
+
+# D-Link devices ---------------------------
+
+LABEL="mm_dlink_port_types_vendorcheck"
+ATTRS{bInterfaceNumber}=="?*", ENV{.MM_USBIFNUM}="$attr{bInterfaceNumber}"
+
+# D-Link DWM-156 A5 (and later?)
+ATTRS{idVendor}=="2001", ATTRS{idProduct}=="7d00", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_MTK_MODEM_PORT}="1"
+ATTRS{idVendor}=="2001", ATTRS{idProduct}=="7d00", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_MTK_AT_PORT}="1"
+ATTRS{idVendor}=="2001", ATTRS{idProduct}=="7d00", ENV{ID_MM_MTK_TAGGED}="1"
+
+GOTO="mm_mtk_port_types_end"
+
+LABEL="mm_mtk_port_types_end"
diff --git a/plugins/mtk/mm-broadband-modem-mtk.c b/plugins/mtk/mm-broadband-modem-mtk.c
new file mode 100644
index 0000000..9732ae2
--- /dev/null
+++ b/plugins/mtk/mm-broadband-modem-mtk.c
@@ -0,0 +1,1036 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details:
+ *
+ * Copyright (C) 2008 - 2009 Novell, Inc.
+ * Copyright (C) 2009 - 2012 Red Hat, Inc.
+ * Copyright (C) 2012 Aleksander Morgado <aleksander@gnu.org>
+ */
+
+#include <config.h>
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <ctype.h>
+
+#include "ModemManager.h"
+#include "mm-log.h"
+#include "mm-errors-types.h"
+#include "mm-modem-helpers.h"
+#include "mm-base-modem-at.h"
+#include "mm-iface-modem.h"
+#include "mm-iface-modem-3gpp.h"
+#include "mm-broadband-modem-mtk.h"
+
+static void iface_modem_init (MMIfaceModem *iface);
+static void iface_modem_3gpp_init (MMIfaceModem3gpp *iface);
+
+static MMIfaceModem *iface_modem_parent;
+static MMIfaceModem3gpp *iface_modem_3gpp_parent;
+
+G_DEFINE_TYPE_EXTENDED (MMBroadbandModemMtk, mm_broadband_modem_mtk, MM_TYPE_BROADBAND_MODEM, 0,
+ G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM, iface_modem_init)
+ G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_3GPP, iface_modem_3gpp_init));
+
+struct _MMBroadbandModemMtkPrivate {
+ /* Signal quality regex */
+ GRegex *ecsqg_regex;
+ GRegex *ecsqu_regex;
+ GRegex *ecsqeg_regex;
+ GRegex *ecsqeu_regex;
+ GRegex *ecsqel_regex;
+};
+
+/*****************************************************************************/
+/* Unlock retries (Modem interface) */
+
+static MMUnlockRetries *
+load_unlock_retries_finish (MMIfaceModem *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error))
+ return NULL;
+ return (MMUnlockRetries *) g_object_ref (g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (res)));
+}
+
+static void
+load_unlock_retries_ready (MMBaseModem *self,
+ GAsyncResult *res,
+ GSimpleAsyncResult *operation_result)
+{
+ const gchar *response;
+ GError *error = NULL;
+ GMatchInfo *match_info = NULL;
+ GError *match_error = NULL;
+ GRegex *r = NULL;
+ gint pin1, puk1, pin2, puk2;
+ MMUnlockRetries *retries;
+
+ response = mm_base_modem_at_command_finish (MM_BASE_MODEM (self), res, &error);
+ if (!response) {
+ mm_dbg ("Couldn't query unlock retries: '%s'", error->message);
+ g_simple_async_result_take_error (operation_result, error);
+ g_simple_async_result_complete (operation_result);
+ g_object_unref (operation_result);
+ return;
+ }
+
+ r = g_regex_new (
+ "\\+EPINC:\\s*([0-9]+),\\s*([0-9]+),\\s*([0-9]+),\\s*([0-9]+)",
+ 0,
+ 0,
+ NULL);
+
+ g_assert (r != NULL);
+
+ if (!g_regex_match_full (r, response, strlen (response), 0, 0, &match_info, &match_error)){
+ if (match_error) {
+ g_propagate_error (&error, match_error);
+ } else {
+ g_set_error (&error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Failed to match EPINC response: %s", response);
+ }
+ g_simple_async_result_take_error (operation_result, error);
+ } else if (!mm_get_int_from_match_info (match_info, 1, &pin1) ||
+ !mm_get_int_from_match_info (match_info, 2, &pin2) ||
+ !mm_get_int_from_match_info (match_info, 3, &puk1) ||
+ !mm_get_int_from_match_info (match_info, 4, &puk2)) {
+ g_set_error (&error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Failed to parse the EPINC response: '%s'",
+ response);
+
+ g_simple_async_result_take_error (operation_result, error);
+ } else {
+ retries = mm_unlock_retries_new ();
+
+ mm_unlock_retries_set (retries, MM_MODEM_LOCK_SIM_PIN, pin1);
+ mm_unlock_retries_set (retries, MM_MODEM_LOCK_SIM_PIN2, pin2);
+ mm_unlock_retries_set (retries, MM_MODEM_LOCK_SIM_PUK, puk1);
+ mm_unlock_retries_set (retries, MM_MODEM_LOCK_SIM_PUK2, puk2);
+
+ g_simple_async_result_set_op_res_gpointer (operation_result,
+ retries,
+ (GDestroyNotify)g_object_unref);
+ }
+
+ if (match_info)
+ g_match_info_free (match_info);
+ g_regex_unref (r);
+
+ g_simple_async_result_complete (operation_result);
+ g_object_unref (operation_result);
+ return;
+}
+
+static void
+load_unlock_retries (MMIfaceModem *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ mm_base_modem_at_command (
+ MM_BASE_MODEM (self),
+ "+EPINC?",
+ 3,
+ FALSE,
+ (GAsyncReadyCallback)load_unlock_retries_ready,
+ g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ load_unlock_retries));
+}
+
+/*****************************************************************************/
+static gboolean
+modem_after_sim_unlock_finish (MMIfaceModem *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ return TRUE;
+}
+
+static gboolean
+after_sim_unlock_wait_cb (GSimpleAsyncResult *result)
+{
+ g_simple_async_result_complete (result);
+ g_object_unref (result);
+ return FALSE;
+}
+
+static void
+modem_after_sim_unlock (MMIfaceModem *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ GSimpleAsyncResult *result;
+
+ result = g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ modem_after_sim_unlock);
+
+ /* For device, 3 second is OK for SIM get ready */
+ g_timeout_add_seconds (3, (GSourceFunc)after_sim_unlock_wait_cb, result);
+}
+
+/*****************************************************************************/
+/* Load supported modes (Modem interface) */
+
+static void
+get_supported_modes_ready (MMBaseModem *self,
+ GAsyncResult *res,
+ GSimpleAsyncResult *simple)
+
+{
+ const gchar *response;
+ GError *error = NULL;
+ GMatchInfo *match_info = NULL;
+ MMModemModeCombination mode;
+ GArray *combinations;
+ GRegex *r;
+ GError *match_error = NULL;
+ gint device_type;
+
+ response = mm_base_modem_at_command_finish (MM_BASE_MODEM (self), res, &error);
+ if (!response) {
+ mm_dbg ("Fail to get response %s", response);
+ g_simple_async_result_take_error (simple, error);
+ g_simple_async_result_complete (simple);
+ g_object_unref (simple);
+ return;
+ }
+
+ r = g_regex_new ("\\+EGMR:\\s*\"MT([0-9]+)",
+ G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
+ g_assert (r != NULL);
+
+ if(!g_regex_match_full (r, response, strlen (response), 0, 0, &match_info, &match_error)) {
+ if (match_error) {
+ g_propagate_error (&error, match_error);
+ } else {
+ g_set_error (&error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Failed to match EGMR response: %s", response);
+ }
+
+ g_regex_unref (r);
+ return;
+ }
+
+ if (!mm_get_int_from_match_info (match_info, 1, &device_type)) {
+ g_set_error (&error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Failed to parse the allowed mode response: '%s'",
+ response);
+
+ g_regex_unref (r);
+ if (match_info)
+ g_match_info_free (match_info);
+ return;
+ }
+
+ /* Build list of combinations */
+ combinations = g_array_sized_new (FALSE,
+ FALSE,
+ sizeof (MMModemModeCombination),
+ 8);
+
+ /* 2G only */
+ mode.allowed = MM_MODEM_MODE_2G;
+ mode.preferred = MM_MODEM_MODE_NONE;
+ g_array_append_val (combinations, mode);
+ /* 3G only */
+ mode.allowed = MM_MODEM_MODE_3G;
+ mode.preferred = MM_MODEM_MODE_NONE;
+ g_array_append_val (combinations, mode);
+ /* 2G and 3G, no prefer*/
+ mode.allowed = MM_MODEM_MODE_2G | MM_MODEM_MODE_3G;
+ mode.preferred = MM_MODEM_MODE_NONE;
+ g_array_append_val (combinations, mode);
+ /* 2G and 3G, 3G prefer*/
+ mode.allowed = MM_MODEM_MODE_2G | MM_MODEM_MODE_3G;
+ mode.preferred = MM_MODEM_MODE_3G;
+ g_array_append_val (combinations, mode);
+
+ if (device_type == 6290) {
+ /* 4G only */
+ mode.allowed = MM_MODEM_MODE_4G;
+ mode.preferred = MM_MODEM_MODE_NONE;
+ g_array_append_val (combinations, mode);
+ /* 2G and 4G, no prefer */
+ mode.allowed = MM_MODEM_MODE_2G | MM_MODEM_MODE_4G;
+ mode.preferred = MM_MODEM_MODE_NONE;
+ g_array_append_val (combinations, mode);
+ /* 3G and 4G, no prefer */
+ mode.allowed = MM_MODEM_MODE_3G | MM_MODEM_MODE_4G;
+ mode.preferred = MM_MODEM_MODE_NONE;
+ g_array_append_val (combinations, mode);
+ /* 2G, 3G and 4G, no prefer */
+ mode.allowed = MM_MODEM_MODE_2G | MM_MODEM_MODE_3G | MM_MODEM_MODE_4G;
+ mode.preferred = MM_MODEM_MODE_NONE;
+ g_array_append_val (combinations, mode);
+ }
+
+ /*********************************************************************
+ * No need to filter out any unsupported modes for MTK device. For
+ * +GCAP, +WS64 not support completely, generic filter will filter
+ * out 4G modes.
+ */
+ g_simple_async_result_set_op_res_gpointer (simple,
+ combinations,
+ (GDestroyNotify)g_array_unref);
+
+ g_simple_async_result_complete (simple);
+ g_object_unref (simple);
+
+ g_regex_unref (r);
+ if (match_info)
+ g_match_info_free (match_info);
+ return;
+}
+
+static void
+load_supported_modes (MMIfaceModem *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ mm_base_modem_at_command (
+ MM_BASE_MODEM (self),
+ "+EGMR=0,0",
+ 3,
+ FALSE,
+ (GAsyncReadyCallback)get_supported_modes_ready,
+ g_simple_async_result_new (
+ G_OBJECT (self),
+ callback,
+ user_data,
+ load_supported_modes));
+}
+
+static GArray *
+load_supported_modes_finish (MMIfaceModem *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error))
+ return NULL;
+
+ return g_array_ref (g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (res)));
+}
+
+/*****************************************************************************/
+/* Load initial allowed/preferred modes (Modem interface) */
+
+static gboolean
+load_current_modes_finish (MMIfaceModem *self,
+ GAsyncResult *res,
+ MMModemMode *allowed,
+ MMModemMode *preferred,
+ GError **error)
+{
+ const gchar *response;
+ GMatchInfo *match_info = NULL;
+ GRegex *r;
+ gint erat_mode = -1;
+ gint erat_pref = -1;
+ GError *match_error = NULL;
+ gboolean result = FALSE;
+
+ response = mm_base_modem_at_command_finish (MM_BASE_MODEM (self), res, error);
+ if (!response)
+ return result;
+
+ r = g_regex_new (
+ "\\+ERAT:\\s*[0-9]+,\\s*[0-9]+,\\s*([0-9]+),\\s*([0-9]+)",
+ 0,
+ 0,
+ error);
+ g_assert (r != NULL);
+
+ if (!g_regex_match_full (r, response, strlen (response), 0, 0, &match_info, &match_error)) {
+ if (match_error)
+ g_propagate_error (error, match_error);
+ else {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Couldn't parse +ERAT response: '%s'",
+ response);
+
+ }
+ goto done;
+ }
+
+ if (!mm_get_int_from_match_info (match_info, 1, &erat_mode) ||
+ !mm_get_int_from_match_info (match_info, 2, &erat_pref)) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Failed to parse the ERAT response: m=%d p=%d",
+ erat_mode, erat_pref);
+ goto done;
+ }
+
+ /* Correctly parsed! */
+ result = TRUE;
+
+ switch (erat_mode) {
+ case 0:
+ *allowed = MM_MODEM_MODE_2G;
+ break;
+ case 1:
+ *allowed = MM_MODEM_MODE_3G;
+ break;
+ case 2:
+ *allowed = MM_MODEM_MODE_2G | MM_MODEM_MODE_3G;
+ break;
+ case 3:
+ *allowed = MM_MODEM_MODE_4G;
+ break;
+ case 4:
+ *allowed = MM_MODEM_MODE_2G | MM_MODEM_MODE_4G;
+ break;
+ case 5:
+ *allowed = MM_MODEM_MODE_3G | MM_MODEM_MODE_4G;
+ break;
+ case 6:
+ *allowed = MM_MODEM_MODE_2G | MM_MODEM_MODE_3G | MM_MODEM_MODE_4G;
+ break;
+ default:
+ result = FALSE;
+ mm_dbg ("Not supported allowed mode %d", erat_mode);
+ goto done;
+ }
+
+ switch (erat_pref) {
+ case 0:
+ *preferred = MM_MODEM_MODE_NONE;
+ break;
+ case 1:
+ *preferred = MM_MODEM_MODE_2G;
+ break;
+ case 2:
+ *preferred = MM_MODEM_MODE_3G;
+ break;
+ case 3:
+ *preferred = MM_MODEM_MODE_4G;
+ break;
+ default:
+ result = FALSE;
+ mm_dbg ("Not supported preferred mode %d", erat_pref);
+ goto done;
+ }
+
+done:
+ if (r)
+ g_regex_unref (r);
+ if (match_info)
+ g_match_info_free (match_info);
+
+ return result;
+}
+
+static void
+load_current_modes (MMIfaceModem *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ mm_base_modem_at_command (MM_BASE_MODEM (self),
+ "+ERAT?",
+ 3,
+ FALSE,
+ callback,
+ user_data);
+}
+
+/*****************************************************************************/
+/* Set allowed modes (Modem interface) */
+
+static gboolean
+set_current_modes_finish (MMIfaceModem *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ return !g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error);
+}
+
+static void
+allowed_mode_update_ready (MMBroadbandModemMtk *self,
+ GAsyncResult *res,
+ GSimpleAsyncResult *operation_result)
+{
+ GError *error = NULL;
+
+ mm_base_modem_at_command_finish (MM_BASE_MODEM (self), res, &error);
+
+ if (error)
+ /* Let the error be critical. */
+ g_simple_async_result_take_error (operation_result, error);
+ else
+ g_simple_async_result_set_op_res_gboolean (operation_result, TRUE);
+ g_simple_async_result_complete (operation_result);
+ g_object_unref (operation_result);
+}
+
+static void
+set_current_modes (MMIfaceModem *self,
+ MMModemMode allowed,
+ MMModemMode preferred,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ GSimpleAsyncResult *result;
+ gchar *command;
+ gint erat_mode = -1;
+ gint erat_pref = -1;
+
+ result = g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ set_current_modes);
+
+ if (allowed == MM_MODEM_MODE_2G) {
+ erat_mode = 0;
+ erat_pref = 0;
+ } else if (allowed == MM_MODEM_MODE_3G) {
+ erat_mode = 1;
+ erat_pref = 0;
+ } else if (allowed == (MM_MODEM_MODE_2G | MM_MODEM_MODE_3G)) {
+ erat_mode = 2;
+ if (preferred == MM_MODEM_MODE_3G)
+ erat_pref = 2;
+ else if (preferred == MM_MODEM_MODE_NONE)
+ erat_pref = 0;
+ /* 2G prefer not supported */
+ } else if (allowed == (MM_MODEM_MODE_2G | MM_MODEM_MODE_3G | MM_MODEM_MODE_4G) &&
+ preferred == MM_MODEM_MODE_NONE) {
+ erat_mode = 6;
+ erat_pref = 0;
+ } else if ((allowed == (MM_MODEM_MODE_2G | MM_MODEM_MODE_4G)) &&
+ preferred == MM_MODEM_MODE_NONE) {
+ erat_mode = 4;
+ erat_pref = 0;
+ } else if ((allowed == (MM_MODEM_MODE_3G | MM_MODEM_MODE_4G)) &&
+ preferred == MM_MODEM_MODE_NONE) {
+ erat_mode = 5;
+ erat_pref = 0;
+ } else if (allowed == MM_MODEM_MODE_4G) {
+ erat_mode = 3;
+ erat_pref = 0;
+ }
+
+ if (erat_mode < 0 || erat_pref < 0) {
+ gchar *allowed_str;
+ gchar *preferred_str;
+
+ allowed_str = mm_modem_mode_build_string_from_mask (allowed);
+ preferred_str = mm_modem_mode_build_string_from_mask (preferred);
+ g_simple_async_result_set_error (result,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Requested mode (allowed: '%s', preferred: '%s') not "
+ "supported by the modem.",
+ allowed_str,
+ preferred_str);
+ g_free (allowed_str);
+ g_free (preferred_str);
+
+ g_simple_async_result_complete_in_idle (result);
+ g_object_unref (result);
+ return;
+ }
+
+ command = g_strdup_printf ("AT+ERAT=%d,%d", erat_mode, erat_pref);
+ mm_base_modem_at_command (
+ MM_BASE_MODEM (self),
+ command,
+ 30,
+ FALSE,
+ (GAsyncReadyCallback)allowed_mode_update_ready,
+ result);
+ g_free (command);
+}
+
+/*****************************************************************************/
+/* Setup/Cleanup unsolicited events (3GPP interface) */
+
+static void
+mtk_80_signal_changed (MMAtSerialPort *port,
+ GMatchInfo *match_info,
+ MMBroadbandModemMtk *self)
+{
+ guint quality = 0;
+
+ if (!mm_get_uint_from_match_info (match_info, 1, &quality))
+ return;
+
+ if (quality == 99)
+ quality = 0;
+ else
+ quality = CLAMP(quality, 0, 31) * 100 / 31;
+
+ mm_dbg ("6280 signal quality URC received: quality = %u", quality);
+ mm_iface_modem_update_signal_quality (MM_IFACE_MODEM (self), (guint)quality);
+}
+
+static void
+mtk_90_2g_signal_changed (MMAtSerialPort *port,
+ GMatchInfo *match_info,
+ MMBroadbandModemMtk *self)
+{
+ guint quality = 0;
+
+ if (!mm_get_uint_from_match_info (match_info, 1, &quality))
+ return;
+
+ if (quality == 99)
+ quality = 0;
+ else
+ quality = CLAMP (quality, 0, 63) * 100 / 63;
+
+ mm_dbg ("2G signal quality URC received: quality = %u", quality);
+ mm_iface_modem_update_signal_quality (MM_IFACE_MODEM (self), (guint)quality);
+}
+
+static void
+mtk_90_3g_signal_changed (MMAtSerialPort *port,
+ GMatchInfo *match_info,
+ MMBroadbandModemMtk *self)
+{
+ guint quality = 0;
+
+ if (!mm_get_uint_from_match_info (match_info, 1, &quality))
+ return;
+
+ quality = CLAMP (quality, 0, 96) * 100 / 96;
+
+ mm_dbg ("3G signal quality URC received: quality = %u", quality);
+ mm_iface_modem_update_signal_quality (MM_IFACE_MODEM (self), (guint)quality);
+}
+
+static void
+mtk_90_4g_signal_changed (MMAtSerialPort *port,
+ GMatchInfo *match_info,
+ MMBroadbandModemMtk *self)
+{
+ guint quality = 0;
+
+ if (!mm_get_uint_from_match_info (match_info, 1, &quality))
+ return;
+
+ quality = CLAMP (quality, 0, 97) * 100 / 97;
+
+ mm_dbg ("4G signal quality URC received: quality = %u", quality);
+ mm_iface_modem_update_signal_quality (MM_IFACE_MODEM (self), (guint)quality);
+}
+
+static void
+set_unsolicited_events_handlers (MMBroadbandModemMtk *self,
+ gboolean enable)
+{
+ MMAtSerialPort *ports[2];
+ guint i;
+
+ ports[0] = mm_base_modem_peek_port_primary (MM_BASE_MODEM (self));
+ ports[1] = mm_base_modem_peek_port_secondary (MM_BASE_MODEM (self));
+
+ /* Enable/disable unsolicited events in given port */
+ for (i = 0; i < 2; i++){
+ if(!ports[i])
+ continue;
+
+ mm_at_serial_port_add_unsolicited_msg_handler (
+ ports[i],
+ self->priv->ecsqg_regex,
+ enable ? (MMAtSerialUnsolicitedMsgFn)mtk_80_signal_changed : NULL,
+ enable ? self : NULL,
+ NULL);
+
+ mm_at_serial_port_add_unsolicited_msg_handler (
+ ports[i],
+ self->priv->ecsqu_regex,
+ enable ? (MMAtSerialUnsolicitedMsgFn)mtk_80_signal_changed : NULL,
+ enable ? self : NULL,
+ NULL);
+
+ mm_at_serial_port_add_unsolicited_msg_handler (
+ ports[i],
+ self->priv->ecsqeg_regex,
+ enable ? (MMAtSerialUnsolicitedMsgFn)mtk_90_2g_signal_changed:NULL,
+ enable ? self : NULL,
+ NULL);
+
+ mm_at_serial_port_add_unsolicited_msg_handler (
+ ports[i],
+ self->priv->ecsqeu_regex,
+ enable ? (MMAtSerialUnsolicitedMsgFn)mtk_90_3g_signal_changed:NULL,
+ enable ? self : NULL,
+ NULL);
+
+ mm_at_serial_port_add_unsolicited_msg_handler (
+ ports[i],
+ self->priv->ecsqel_regex,
+ enable ? (MMAtSerialUnsolicitedMsgFn)mtk_90_4g_signal_changed:NULL,
+ enable ? self : NULL,
+ NULL);
+ }
+}
+
+static gboolean
+modem_3gpp_setup_cleanup_unsolicited_events_finish (MMIfaceModem3gpp *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ return !g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error);
+}
+
+static void
+parent_setup_unsolicited_events_ready (MMIfaceModem3gpp *self,
+ GAsyncResult *res,
+ GSimpleAsyncResult *simple)
+{
+ GError *error = NULL;
+
+ if (!iface_modem_3gpp_parent->setup_unsolicited_events_finish (self, res, &error))
+ g_simple_async_result_take_error (simple, error);
+ else {
+ /* Our own setup now */
+ set_unsolicited_events_handlers (MM_BROADBAND_MODEM_MTK (self),
+ TRUE);
+ g_simple_async_result_set_op_res_gboolean (G_SIMPLE_ASYNC_RESULT (res), TRUE);
+ }
+
+ g_simple_async_result_complete (simple);
+ g_object_unref (simple);
+}
+
+static void
+modem_3gpp_setup_unsolicited_events (MMIfaceModem3gpp *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ GSimpleAsyncResult *result;
+
+ result = g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ modem_3gpp_setup_unsolicited_events);
+
+ /* Chain up parent's setup */
+ iface_modem_3gpp_parent->setup_unsolicited_events (
+ self,
+ (GAsyncReadyCallback)parent_setup_unsolicited_events_ready,
+ result);
+}
+
+static void
+parent_cleanup_unsolicited_events_ready (MMIfaceModem3gpp *self,
+ GAsyncResult *res,
+ GSimpleAsyncResult *simple)
+{
+ GError *error = NULL;
+
+ if (!iface_modem_3gpp_parent->cleanup_unsolicited_events_finish (self, res, &error))
+ g_simple_async_result_take_error (simple, error);
+ else
+ g_simple_async_result_set_op_res_gboolean (G_SIMPLE_ASYNC_RESULT (res), TRUE);
+ g_simple_async_result_complete (simple);
+ g_object_unref (simple);
+}
+
+static void
+modem_3gpp_cleanup_unsolicited_events (MMIfaceModem3gpp *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ GSimpleAsyncResult *result;
+
+ result = g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ modem_3gpp_cleanup_unsolicited_events);
+
+ /* Our own cleanup first */
+ set_unsolicited_events_handlers (MM_BROADBAND_MODEM_MTK (self), FALSE);
+
+ /* And now chain up parent's cleanup */
+ iface_modem_3gpp_parent->cleanup_unsolicited_events (
+ self,
+ (GAsyncReadyCallback)parent_cleanup_unsolicited_events_ready,
+ result);
+}
+
+static const MMBaseModemAtCommand unsolicited_enable_sequence[] = {
+ /* enable signal URC */
+ {"+ECSQ=2", 5, FALSE, NULL},
+ {NULL}
+};
+
+static const MMBaseModemAtCommand unsolicited_disable_sequence[] = {
+ /* disable signal URC */
+ {"+ECSQ=0", 5, FALSE, NULL},
+ {NULL}
+};
+
+static void
+own_enable_unsolicited_events_ready (MMBaseModem *self,
+ GAsyncResult *res,
+ GSimpleAsyncResult *simple)
+{
+ GError *error = NULL;
+
+ mm_base_modem_at_sequence_full_finish (self, res, NULL, &error);
+ if (error)
+ g_simple_async_result_take_error (simple, error);
+ else
+ g_simple_async_result_set_op_res_gboolean (simple, TRUE);
+
+ g_simple_async_result_complete (simple);
+ g_object_unref (simple);
+}
+
+static void
+parent_enable_unsolicited_events_ready (MMIfaceModem3gpp *self,
+ GAsyncResult *res,
+ GSimpleAsyncResult *simple)
+{
+ GError *error = NULL;
+
+ if (!iface_modem_3gpp_parent->enable_unsolicited_events_finish (self, res, &error)) {
+ g_simple_async_result_take_error (simple, error);
+ g_simple_async_result_complete (simple);
+ g_object_unref (simple);
+ }
+
+ /* Our own enable now */
+ mm_base_modem_at_sequence_full (
+ MM_BASE_MODEM (self),
+ mm_base_modem_peek_port_primary (MM_BASE_MODEM (self)),
+ unsolicited_enable_sequence,
+ NULL,NULL,NULL,
+ (GAsyncReadyCallback)own_enable_unsolicited_events_ready,
+ simple);
+}
+
+static void
+modem_3gpp_enable_unsolicited_events (MMIfaceModem3gpp *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ GSimpleAsyncResult *result;
+
+ result = g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ modem_3gpp_enable_unsolicited_events);
+
+ /* Chain up parent's enable */
+ iface_modem_3gpp_parent->enable_unsolicited_events (
+ self,
+ (GAsyncReadyCallback)parent_enable_unsolicited_events_ready,
+ result);
+}
+
+static gboolean
+modem_3gpp_enable_unsolicited_events_finish (MMIfaceModem3gpp *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ return !g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error);
+}
+
+static void
+parent_disable_unsolicited_events_ready (MMIfaceModem3gpp *self,
+ GAsyncResult *res,
+ GSimpleAsyncResult *simple)
+{
+ GError *error = NULL;
+
+ if (!iface_modem_3gpp_parent->disable_unsolicited_events_finish (self, res, &error))
+ g_simple_async_result_take_error (simple, error);
+ else
+ g_simple_async_result_set_op_res_gboolean (simple, TRUE);
+ g_simple_async_result_complete (simple);
+ g_object_unref (simple);
+}
+
+static void
+own_disable_unsolicited_events_ready (MMBaseModem *self,
+ GAsyncResult *res,
+ GSimpleAsyncResult *simple)
+{
+ GError *error = NULL;
+
+ mm_base_modem_at_sequence_full_finish (self, res, NULL, &error);
+ if (error) {
+ g_simple_async_result_take_error (simple, error);
+ g_simple_async_result_complete (simple);
+ g_object_unref (simple);
+ return;
+ }
+
+ /* Next, chain up parent's disable */
+ iface_modem_3gpp_parent->disable_unsolicited_events (
+ MM_IFACE_MODEM_3GPP (self),
+ (GAsyncReadyCallback)parent_disable_unsolicited_events_ready,
+ simple);
+}
+
+static void
+modem_3gpp_disable_unsolicited_events (MMIfaceModem3gpp *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ GSimpleAsyncResult *result;
+
+ result = g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ modem_3gpp_disable_unsolicited_events);
+
+ /* Our own disable first */
+ mm_base_modem_at_sequence_full (
+ MM_BASE_MODEM (self),
+ mm_base_modem_peek_port_primary (MM_BASE_MODEM (self)),
+ unsolicited_disable_sequence,
+ NULL, NULL, NULL,
+ (GAsyncReadyCallback)own_disable_unsolicited_events_ready,
+ result);
+}
+
+static gboolean
+modem_3gpp_disable_unsolicited_events_finish (MMIfaceModem3gpp *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ return !g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error);
+}
+
+/*****************************************************************************/
+/* Setup ports (Broadband modem class) */
+
+static void
+setup_ports (MMBroadbandModem *self)
+{
+ /* Call parent's setup ports first always */
+ MM_BROADBAND_MODEM_CLASS (mm_broadband_modem_mtk_parent_class)->setup_ports (self);
+
+ /* Now reset the unsolicited messages we'll handle when enabled */
+ set_unsolicited_events_handlers (MM_BROADBAND_MODEM_MTK (self), FALSE);
+}
+
+/*****************************************************************************/
+MMBroadbandModemMtk *
+mm_broadband_modem_mtk_new (const gchar *device,
+ const gchar **drivers,
+ const gchar *plugin,
+ guint16 vendor_id,
+ guint16 product_id)
+{
+ return g_object_new (MM_TYPE_BROADBAND_MODEM_MTK,
+ MM_BASE_MODEM_DEVICE, device,
+ MM_BASE_MODEM_DRIVERS, drivers,
+ MM_BASE_MODEM_PLUGIN, plugin,
+ MM_BASE_MODEM_VENDOR_ID, vendor_id,
+ MM_BASE_MODEM_PRODUCT_ID, product_id,
+ NULL);
+}
+
+static void
+mm_broadband_modem_mtk_init (MMBroadbandModemMtk *self)
+{
+ /* Initialize private data */
+ self->priv = G_TYPE_INSTANCE_GET_PRIVATE ((self),
+ MM_TYPE_BROADBAND_MODEM_MTK,
+ MMBroadbandModemMtkPrivate);
+ self->priv->ecsqg_regex = g_regex_new (
+ "\\r\\n\\+ECSQ:\\s*([0-9]*),\\s*[0-9]*,\\s*-[0-9]*\\r\\n",
+ G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
+ self->priv->ecsqu_regex = g_regex_new (
+ "\\r\\n\\+ECSQ:\\s*([0-9]*),\\s*[0-9]*,\\s*-[0-9]*,\\s*-[0-9]*,\\s*-[0-9]*\\r\\n",
+ G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
+ self->priv->ecsqeg_regex = g_regex_new (
+ "\\r\\n\\+ECSQ:\\s*([0-9]*),\\s*[0-9]*,\\s*-[0-9]*,\\s*1,\\s*1,\\s*1,\\s*1,\\s*[0-9]*\\r\\n",
+ G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
+ self->priv->ecsqeu_regex = g_regex_new (
+ "\\r\\n\\+ECSQ:\\s*([0-9]*),\\s*[0-9]*,\\s*1,\\s*-[0-9]*,\\s*-[0-9]*,\\s*1,\\s*1,\\s*[0-9]*\\r\\n",
+ G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
+ self->priv->ecsqel_regex = g_regex_new (
+ "\\r\\n\\+ECSQ:\\s*[0-9]*,\\s*([0-9]*),\\s*1,\\s*1,\\s*1,\\s*-[0-9]*,\\s*-[0-9]*,\\s*[0-9]*\\r\\n",
+ G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
+}
+
+static void
+finalize (GObject *object)
+{
+ MMBroadbandModemMtk *self = MM_BROADBAND_MODEM_MTK (object);
+
+ g_regex_unref (self->priv->ecsqg_regex);
+ g_regex_unref (self->priv->ecsqu_regex);
+ g_regex_unref (self->priv->ecsqeg_regex);
+ g_regex_unref (self->priv->ecsqeu_regex);
+ g_regex_unref (self->priv->ecsqel_regex);
+
+ G_OBJECT_CLASS (mm_broadband_modem_mtk_parent_class)->finalize (object);
+}
+
+static void
+iface_modem_init (MMIfaceModem *iface)
+{
+ iface_modem_parent = g_type_interface_peek_parent (iface);
+
+ iface->modem_after_sim_unlock = modem_after_sim_unlock;
+ iface->modem_after_sim_unlock_finish = modem_after_sim_unlock_finish;
+ iface->load_supported_modes = load_supported_modes;
+ iface->load_supported_modes_finish = load_supported_modes_finish;
+ iface->load_current_modes = load_current_modes;
+ iface->load_current_modes_finish = load_current_modes_finish;
+ iface->set_current_modes = set_current_modes;
+ iface->set_current_modes_finish = set_current_modes_finish;
+ iface->load_unlock_retries = load_unlock_retries;
+ iface->load_unlock_retries_finish = load_unlock_retries_finish;
+}
+
+static void
+iface_modem_3gpp_init (MMIfaceModem3gpp *iface)
+{
+ iface_modem_3gpp_parent = g_type_interface_peek_parent (iface);
+
+ iface->setup_unsolicited_events = modem_3gpp_setup_unsolicited_events;
+ iface->setup_unsolicited_events_finish = modem_3gpp_setup_cleanup_unsolicited_events_finish;
+ iface->cleanup_unsolicited_events = modem_3gpp_cleanup_unsolicited_events;
+ iface->cleanup_unsolicited_events_finish = modem_3gpp_setup_cleanup_unsolicited_events_finish;
+ iface->enable_unsolicited_events = modem_3gpp_enable_unsolicited_events;
+ iface->enable_unsolicited_events_finish = modem_3gpp_enable_unsolicited_events_finish;
+ iface->disable_unsolicited_events = modem_3gpp_disable_unsolicited_events;
+ iface->disable_unsolicited_events_finish = modem_3gpp_disable_unsolicited_events_finish;
+}
+
+static void
+mm_broadband_modem_mtk_class_init (MMBroadbandModemMtkClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ MMBroadbandModemClass *broadband_modem_class = MM_BROADBAND_MODEM_CLASS (klass);
+
+ g_type_class_add_private (object_class, sizeof (MMBroadbandModemMtkPrivate));
+
+ object_class->finalize = finalize;
+ broadband_modem_class->setup_ports = setup_ports;
+}
+
diff --git a/plugins/mtk/mm-broadband-modem-mtk.h b/plugins/mtk/mm-broadband-modem-mtk.h
new file mode 100644
index 0000000..bbe72cc
--- /dev/null
+++ b/plugins/mtk/mm-broadband-modem-mtk.h
@@ -0,0 +1,51 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details:
+ *
+ * Copyright (C) 2008 - 2009 Novell, Inc.
+ * Copyright (C) 2009 - 2011 Red Hat, Inc.
+ * Copyright (C) 2011 Google Inc.
+ */
+
+#ifndef MM_BROADBAND_MODEM_MTK_H
+#define MM_BROADBAND_MODEM_MTK_H
+
+#include "mm-broadband-modem.h"
+
+#define MM_TYPE_BROADBAND_MODEM_MTK (mm_broadband_modem_mtk_get_type ())
+#define MM_BROADBAND_MODEM_MTK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MM_TYPE_BROADBAND_MODEM_MTK, MMBroadbandModemMtk))
+#define MM_BROADBAND_MODEM_MTK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MM_TYPE_BROADBAND_MODEM_MTK, MMBroadbandModemMtkClass))
+#define MM_IS_BROADBAND_MODEM_MTK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MM_TYPE_BROADBAND_MODEM_MTK))
+#define MM_IS_BROADBAND_MODEM_MTK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MM_TYPE_BROADBAND_MODEM_MTK))
+#define MM_BROADBAND_MODEM_MTK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MM_TYPE_BROADBAND_MODEM_MTK, MMBroadbandModemMtkClass))
+
+typedef struct _MMBroadbandModemMtk MMBroadbandModemMtk;
+typedef struct _MMBroadbandModemMtkClass MMBroadbandModemMtkClass;
+typedef struct _MMBroadbandModemMtkPrivate MMBroadbandModemMtkPrivate;
+
+struct _MMBroadbandModemMtk {
+ MMBroadbandModem parent;
+ MMBroadbandModemMtkPrivate *priv;
+};
+
+struct _MMBroadbandModemMtkClass {
+ MMBroadbandModemClass parent;
+};
+
+GType mm_broadband_modem_mtk_get_type (void);
+
+MMBroadbandModemMtk *mm_broadband_modem_mtk_new (const gchar *device,
+ const gchar **drivers,
+ const gchar *plugin,
+ guint16 vendor_id,
+ guint16 product_id);
+
+#endif /* MM_BROADBAND_MODEM_MTK_H */
diff --git a/plugins/mtk/mm-plugin-mtk.c b/plugins/mtk/mm-plugin-mtk.c
new file mode 100644
index 0000000..ff5e1e4
--- /dev/null
+++ b/plugins/mtk/mm-plugin-mtk.c
@@ -0,0 +1,118 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details:
+ *
+ * Copyright (C) 2008 - 2009 Novell, Inc.
+ * Copyright (C) 2009 - 2012 Red Hat, Inc.
+ * Copyright (C) 2012 Aleksander Morgado <aleksander@gnu.org>
+ */
+
+#include <string.h>
+#include <gmodule.h>
+
+#define _LIBMM_INSIDE_MM
+#include <libmm-glib.h>
+
+#include "mm-log.h"
+#include "mm-plugin-mtk.h"
+#include "mm-broadband-modem-mtk.h"
+
+G_DEFINE_TYPE (MMPluginMtk, mm_plugin_mtk, MM_TYPE_PLUGIN)
+
+int mm_plugin_major_version = MM_PLUGIN_MAJOR_VERSION;
+int mm_plugin_minor_version = MM_PLUGIN_MINOR_VERSION;
+
+/*****************************************************************************/
+
+/* MTK done */
+static MMBaseModem *
+create_modem (MMPlugin *self,
+ const gchar *sysfs_path,
+ const gchar **drivers,
+ guint16 vendor,
+ guint16 product,
+ GList *probes,
+ GError **error)
+{
+ return MM_BASE_MODEM (mm_broadband_modem_mtk_new (sysfs_path,
+ drivers,
+ mm_plugin_get_name (self),
+ vendor,
+ product));
+}
+
+/* MTK done */
+static gboolean
+grab_port (MMPlugin *self,
+ MMBaseModem *modem,
+ MMPortProbe *probe,
+ GError **error)
+{
+ GUdevDevice *port;
+ MMAtPortFlag pflags = MM_AT_PORT_FLAG_NONE;
+
+ port = mm_port_probe_peek_port (probe);
+
+ if (mm_port_probe_is_at (probe)) {
+ /* Get port type from udev */
+ if (g_udev_device_get_property_as_boolean (port, "ID_MM_MTK_AT_PORT")) {
+ mm_dbg ("MTK: AT port '%s/%s' flagged as secondary",
+ mm_port_probe_get_port_subsys (probe),
+ mm_port_probe_get_port_name (probe));
+ pflags = MM_AT_PORT_FLAG_SECONDARY;
+ } else if (g_udev_device_get_property_as_boolean (port, "ID_MM_MTK_MODEM_PORT")) {
+ mm_dbg ("MTK: Modem port '%s/%s' flagged as primary",
+ mm_port_probe_get_port_subsys (probe),
+ mm_port_probe_get_port_name (probe));
+ pflags = MM_AT_PORT_FLAG_PRIMARY;
+ }
+ }
+
+ return mm_base_modem_grab_port (modem,
+ mm_port_probe_get_port_subsys (probe),
+ mm_port_probe_get_port_name (probe),
+ mm_port_probe_get_port_type(probe),
+ pflags,
+ error);
+}
+
+/*****************************************************************************/
+
+G_MODULE_EXPORT MMPlugin *
+mm_plugin_create (void)
+{
+ static const gchar *subsystems[] = { "tty", NULL };
+ static const gchar *udev_tags[]={
+ "ID_MM_MTK_TAGGED",
+ NULL};
+
+ return MM_PLUGIN (
+ g_object_new (MM_TYPE_PLUGIN_MTK,
+ MM_PLUGIN_NAME, "MTK",
+ MM_PLUGIN_ALLOWED_SUBSYSTEMS, subsystems,
+ MM_PLUGIN_ALLOWED_UDEV_TAGS, udev_tags,
+ MM_PLUGIN_ALLOWED_AT, TRUE,
+ NULL));
+}
+
+static void
+mm_plugin_mtk_init (MMPluginMtk *self)
+{
+}
+
+static void
+mm_plugin_mtk_class_init (MMPluginMtkClass *klass)
+{
+ MMPluginClass *plugin_class = MM_PLUGIN_CLASS (klass);
+
+ plugin_class->create_modem = create_modem;
+ plugin_class->grab_port = grab_port;
+}
diff --git a/plugins/mtk/mm-plugin-mtk.h b/plugins/mtk/mm-plugin-mtk.h
new file mode 100644
index 0000000..cc7b0d1
--- /dev/null
+++ b/plugins/mtk/mm-plugin-mtk.h
@@ -0,0 +1,42 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details:
+ *
+ * Copyright (C) 2008 - 2009 Novell, Inc.
+ * Copyright (C) 2009 - 2012 Red Hat, Inc.
+ * Copyright (C) 2012 Aleksander Morgado <aleksander@gnu.org>
+ */
+
+#ifndef MM_PLUGIN_MTK_H
+#define MM_PLUGIN_MTK_H
+
+#include "mm-plugin.h"
+
+#define MM_TYPE_PLUGIN_MTK (mm_plugin_mtk_get_type ())
+#define MM_PLUGIN_MTK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MM_TYPE_PLUGIN_MTK, MMPluginMtk))
+#define MM_PLUGIN_MTK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MM_TYPE_PLUGIN_MTK, MMPluginMtkClass))
+#define MM_IS_PLUGIN_MTK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MM_TYPE_PLUGIN_MTK))
+#define MM_IS_PLUGIN_MTK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MM_TYPE_PLUGIN_MTK))
+#define MM_PLUGIN_MTK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MM_TYPE_PLUGIN_MTK, MMPluginMtkClass))
+
+typedef struct {
+ MMPlugin parent;
+} MMPluginMtk;
+
+typedef struct {
+ MMPluginClass parent;
+} MMPluginMtkClass;
+
+GType mm_plugin_mtk_get_type (void);
+
+G_MODULE_EXPORT MMPlugin *mm_plugin_create (void);
+
+#endif /* MM_PLUGIN_MTK_H */
diff --git a/plugins/nokia/77-mm-nokia-port-types.rules b/plugins/nokia/77-mm-nokia-port-types.rules
index 4a3e5dc..f3c4479 100644
--- a/plugins/nokia/77-mm-nokia-port-types.rules
+++ b/plugins/nokia/77-mm-nokia-port-types.rules
@@ -1,6 +1,6 @@
# do not edit this file, it will be overwritten on update
-ACTION!="add|change", GOTO="mm_nokia_port_types_end"
+ACTION!="add|change|move", GOTO="mm_nokia_port_types_end"
SUBSYSTEM!="tty", GOTO="mm_nokia_port_types_end"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0421", GOTO="mm_nokia_port_types_vendorcheck"
diff --git a/plugins/novatel/mm-broadband-bearer-novatel-lte.c b/plugins/novatel/mm-broadband-bearer-novatel-lte.c
index 7f023bc..1126ca0 100644
--- a/plugins/novatel/mm-broadband-bearer-novatel-lte.c
+++ b/plugins/novatel/mm-broadband-bearer-novatel-lte.c
@@ -114,6 +114,14 @@ is_qmistatus_disconnected (const gchar *str)
return g_strrstr (str, "QMI State: DISCONNECTED") || g_strrstr (str, "QMI State: QMI_WDS_PKT_DATA_DISCONNECTED");
}
+static gboolean
+is_qmistatus_call_failed (const gchar *str)
+{
+ str = mm_strip_tag (str, QMISTATUS_TAG);
+
+ return (g_strrstr (str, "QMI_RESULT_FAILURE:QMI_ERR_CALL_FAILED") != NULL);
+}
+
static void
poll_connection_ready (MMBaseModem *modem,
GAsyncResult *res,
@@ -130,7 +138,7 @@ poll_connection_ready (MMBaseModem *modem,
}
if (is_qmistatus_disconnected (result)) {
- mm_bearer_report_disconnection (MM_BEARER (bearer));
+ mm_bearer_report_connection_status (MM_BEARER (bearer), MM_BEARER_CONNECTION_STATUS_DISCONNECTED);
g_source_remove (bearer->priv->connection_poller);
bearer->priv->connection_poller = 0;
}
@@ -165,9 +173,7 @@ connect_3gpp_qmistatus_ready (MMBaseModem *modem,
gchar *normalized_result;
GError *error = NULL;
- result = mm_base_modem_at_command_finish (MM_BASE_MODEM (ctx->modem),
- res,
- &error);
+ result = mm_base_modem_at_command_full_finish (modem, res, &error);
if (!result) {
mm_warn ("QMI connection status failed: %s", error->message);
if (!g_error_matches (error, MM_MOBILE_EQUIPMENT_ERROR, MM_MOBILE_EQUIPMENT_ERROR_UNKNOWN)) {
@@ -193,9 +199,22 @@ connect_3gpp_qmistatus_ready (MMBaseModem *modem,
g_object_unref (config);
detailed_connect_context_complete_and_free (ctx);
return;
+ } else if (is_qmistatus_call_failed (result)) {
+ /* Don't retry if the call failed */
+ ctx->retries = 0;
}
mm_dbg ("Error: '%s'", result);
+
+ if (g_cancellable_is_cancelled (ctx->cancellable)) {
+ g_simple_async_result_set_error (ctx->result,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_CANCELLED,
+ "Connection setup operation has been cancelled");
+ detailed_connect_context_complete_and_free (ctx);
+ return;
+ }
+
if (ctx->retries > 0) {
ctx->retries--;
mm_dbg ("Retrying status check in a second. %d retries left.",
@@ -218,11 +237,14 @@ connect_3gpp_qmistatus_ready (MMBaseModem *modem,
static gboolean
connect_3gpp_qmistatus (DetailedConnectContext *ctx)
{
- mm_base_modem_at_command (
+ mm_base_modem_at_command_full (
ctx->modem,
+ ctx->primary,
"$NWQMISTATUS",
3, /* timeout */
FALSE, /* allow_cached */
+ FALSE, /* is_raw */
+ ctx->cancellable,
(GAsyncReadyCallback)connect_3gpp_qmistatus_ready, /* callback */
ctx); /* user_data */
@@ -237,9 +259,7 @@ connect_3gpp_qmiconnect_ready (MMBaseModem *modem,
const gchar *result;
GError *error = NULL;
- result = mm_base_modem_at_command_finish (MM_BASE_MODEM (modem),
- res,
- &error);
+ result = mm_base_modem_at_command_full_finish (modem, res, &error);
if (!result) {
mm_warn ("QMI connection failed: %s", error->message);
g_simple_async_result_take_error (ctx->result, error);
@@ -271,11 +291,14 @@ connect_3gpp_authenticate (DetailedConnectContext *ctx)
g_free (apn);
g_free (user);
g_free (password);
- mm_base_modem_at_command (
+ mm_base_modem_at_command_full (
ctx->modem,
+ ctx->primary,
command,
10, /* timeout */
FALSE, /* allow_cached */
+ FALSE, /* is_raw */
+ ctx->cancellable,
(GAsyncReadyCallback)connect_3gpp_qmiconnect_ready,
ctx); /* user_data */
g_free (command);
@@ -304,8 +327,7 @@ connect_3gpp (MMBroadbandBearer *self,
ctx->retries = 60;
/* Get a 'net' data port */
- ctx->data = mm_base_modem_get_best_data_port (MM_BASE_MODEM (modem),
- MM_PORT_TYPE_NET);
+ ctx->data = mm_base_modem_get_best_data_port (ctx->modem, MM_PORT_TYPE_NET);
if (!ctx->data) {
g_simple_async_result_set_error (
ctx->result,
@@ -326,7 +348,6 @@ typedef struct {
MMBroadbandBearer *self;
MMBaseModem *modem;
MMAtSerialPort *primary;
- MMAtSerialPort *secondary;
MMPort *data;
GSimpleAsyncResult *result;
gint retries;
@@ -336,7 +357,6 @@ static DetailedDisconnectContext *
detailed_disconnect_context_new (MMBroadbandBearer *self,
MMBroadbandModem *modem,
MMAtSerialPort *primary,
- MMAtSerialPort *secondary,
MMPort *data,
GAsyncReadyCallback callback,
gpointer user_data)
@@ -347,7 +367,6 @@ detailed_disconnect_context_new (MMBroadbandBearer *self,
ctx->self = g_object_ref (self);
ctx->modem = MM_BASE_MODEM (g_object_ref (modem));
ctx->primary = g_object_ref (primary);
- ctx->secondary = (secondary ? g_object_ref (secondary) : NULL);
ctx->data = g_object_ref (data);
ctx->result = g_simple_async_result_new (G_OBJECT (self),
callback,
@@ -363,8 +382,6 @@ detailed_disconnect_context_complete_and_free (DetailedDisconnectContext *ctx)
g_simple_async_result_complete_in_idle (ctx->result);
g_object_unref (ctx->result);
g_object_unref (ctx->data);
- if (ctx->secondary)
- g_object_unref (ctx->secondary);
g_object_unref (ctx->primary);
g_object_unref (ctx->modem);
g_object_unref (ctx->self);
@@ -390,9 +407,7 @@ disconnect_3gpp_status_ready (MMBaseModem *modem,
GError *error = NULL;
gboolean is_connected = FALSE;
- result = mm_base_modem_at_command_finish (MM_BASE_MODEM (modem),
- res,
- &error);
+ result = mm_base_modem_at_command_full_finish (modem, res, &error);
if (result) {
mm_dbg ("QMI connection status: %s", result);
if (is_qmistatus_disconnected (result)) {
@@ -438,14 +453,16 @@ disconnect_3gpp_status_ready (MMBaseModem *modem,
static gboolean
disconnect_3gpp_qmistatus (DetailedDisconnectContext *ctx)
{
- mm_base_modem_at_command (
+ mm_base_modem_at_command_full (
ctx->modem,
+ ctx->primary,
"$NWQMISTATUS",
3, /* timeout */
FALSE, /* allow_cached */
- (GAsyncReadyCallback)disconnect_3gpp_status_ready, /* callback */
+ FALSE, /* is_raw */
+ NULL, /* cancellable */
+ (GAsyncReadyCallback)disconnect_3gpp_status_ready,
ctx); /* user_data */
-
return FALSE;
}
@@ -457,9 +474,7 @@ disconnect_3gpp_check_status (MMBaseModem *modem,
{
GError *error = NULL;
- mm_base_modem_at_command_finish (MM_BASE_MODEM (modem),
- res,
- &error);
+ mm_base_modem_at_command_full_finish (modem, res, &error);
if (error) {
mm_dbg("Disconnection error: %s", error->message);
g_error_free (error);
@@ -486,14 +501,16 @@ disconnect_3gpp (MMBroadbandBearer *self,
bearer->priv->connection_poller = 0;
}
- ctx = detailed_disconnect_context_new (self, modem, primary, secondary,
- data, callback, user_data);
+ ctx = detailed_disconnect_context_new (self, modem, primary, data, callback, user_data);
- mm_base_modem_at_command (
+ mm_base_modem_at_command_full (
ctx->modem,
+ ctx->primary,
"$NWQMIDISCONNECT",
10, /* timeout */
FALSE, /* allow_cached */
+ FALSE, /* is_raw */
+ NULL, /* cancellable */
(GAsyncReadyCallback)disconnect_3gpp_check_status,
ctx); /* user_data */
}
diff --git a/plugins/novatel/mm-broadband-bearer-novatel-lte.h b/plugins/novatel/mm-broadband-bearer-novatel-lte.h
index b304789..9f380f0 100644
--- a/plugins/novatel/mm-broadband-bearer-novatel-lte.h
+++ b/plugins/novatel/mm-broadband-bearer-novatel-lte.h
@@ -34,9 +34,6 @@
#define MM_IS_BROADBAND_BEARER_NOVATEL_LTE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MM_TYPE_BROADBAND_BEARER_NOVATEL_LTE))
#define MM_BROADBAND_BEARER_NOVATEL_LTE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MM_TYPE_BROADBAND_BEARER_NOVATEL_LTE, MMBroadbandBearerNovatelLteClass))
-#define MM_BROADBAND_BEARER_NOVATEL_LTE_USER "broadband-bearer-novatel-user"
-#define MM_BROADBAND_BEARER_NOVATEL_LTE_PASSWORD "broadband-bearer-novatel-password"
-
typedef struct _MMBroadbandBearerNovatelLte MMBroadbandBearerNovatelLte;
typedef struct _MMBroadbandBearerNovatelLteClass MMBroadbandBearerNovatelLteClass;
typedef struct _MMBroadbandBearerNovatelLtePrivate MMBroadbandBearerNovatelLtePrivate;
diff --git a/plugins/novatel/mm-broadband-modem-novatel.c b/plugins/novatel/mm-broadband-modem-novatel.c
index 31a9cc3..5d6bdbd 100644
--- a/plugins/novatel/mm-broadband-modem-novatel.c
+++ b/plugins/novatel/mm-broadband-modem-novatel.c
@@ -611,6 +611,7 @@ cnti_set_ready (MMBaseModem *self,
snapshot_result_complete_simple (simple,
mm_string_to_access_tech (p),
MM_IFACE_MODEM_3GPP_ALL_ACCESS_TECHNOLOGIES_MASK);
+ g_object_unref (simple);
}
static void
diff --git a/plugins/novatel/mm-sim-novatel-lte.c b/plugins/novatel/mm-sim-novatel-lte.c
index b5bccdb..489dd02 100644
--- a/plugins/novatel/mm-sim-novatel-lte.c
+++ b/plugins/novatel/mm-sim-novatel-lte.c
@@ -188,7 +188,7 @@ load_imsi (MMSim *self,
mm_dbg ("loading (Novatel LTE) IMSI...");
mm_base_modem_at_command (
- MM_BASE_MODEM (modem),
+ modem,
"+CRSM=176,28423,0,0,9",
3,
FALSE,
diff --git a/plugins/option/mm-broadband-bearer-hso.c b/plugins/option/mm-broadband-bearer-hso.c
index 7da13aa..1c81557 100644
--- a/plugins/option/mm-broadband-bearer-hso.c
+++ b/plugins/option/mm-broadband-bearer-hso.c
@@ -32,6 +32,7 @@
#include "mm-broadband-bearer-hso.h"
#include "mm-log.h"
#include "mm-modem-helpers.h"
+#include "mm-daemon-enums-types.h"
G_DEFINE_TYPE (MMBroadbandBearerHso, mm_broadband_bearer_hso, MM_TYPE_BROADBAND_BEARER);
@@ -314,44 +315,56 @@ connect_reset (Dial3gppContext *ctx)
g_free (command);
}
-void
-mm_broadband_bearer_hso_report_connection_status (MMBroadbandBearerHso *self,
- MMBroadbandBearerHsoConnectionStatus status)
+static void
+report_connection_status (MMBearer *bearer,
+ MMBearerConnectionStatus status)
{
+ MMBroadbandBearerHso *self = MM_BROADBAND_BEARER_HSO (bearer);
Dial3gppContext *ctx;
+ g_assert (status == MM_BEARER_CONNECTION_STATUS_CONNECTED ||
+ status == MM_BEARER_CONNECTION_STATUS_CONNECTION_FAILED ||
+ status == MM_BEARER_CONNECTION_STATUS_DISCONNECTED);
+
/* Recover context (if any) and remove both cancellation and timeout (if any)*/
ctx = self->priv->connect_pending;
self->priv->connect_pending = NULL;
+ /* Connection status reported but no connection attempt? */
+ if (!ctx) {
+ g_assert (self->priv->connect_pending_id == 0);
+
+ mm_dbg ("Received spontaneous _OWANCALL (%s)",
+ mm_bearer_connection_status_get_string (status));
+
+ if (status == MM_BEARER_CONNECTION_STATUS_DISCONNECTED) {
+ /* If no connection attempt on-going, make sure we mark ourselves as
+ * disconnected */
+ MM_BEARER_CLASS (mm_broadband_bearer_hso_parent_class)->report_connection_status (
+ bearer,
+ status);
+ }
+ return;
+ }
+
if (self->priv->connect_pending_id) {
g_source_remove (self->priv->connect_pending_id);
self->priv->connect_pending_id = 0;
}
- if (ctx && self->priv->connect_cancellable_id) {
+ if (self->priv->connect_cancellable_id) {
g_cancellable_disconnect (ctx->cancellable,
self->priv->connect_cancellable_id);
self->priv->connect_cancellable_id = 0;
}
- if (ctx && self->priv->connect_port_closed_id) {
+ if (self->priv->connect_port_closed_id) {
g_signal_handler_disconnect (ctx->primary, self->priv->connect_port_closed_id);
self->priv->connect_port_closed_id = 0;
}
- switch (status) {
- case MM_BROADBAND_BEARER_HSO_CONNECTION_STATUS_UNKNOWN:
- break;
-
- case MM_BROADBAND_BEARER_HSO_CONNECTION_STATUS_CONNECTED:
- if (!ctx)
- /* We may get this if the timeout for the connection attempt is
- * reached before the unsolicited response. We should probably
- * keep the CID around to request explicit disconnection in this
- * case. */
- break;
-
+ /* Reporting connected */
+ if (status == MM_BEARER_CONNECTION_STATUS_CONNECTED) {
/* If we wanted to get cancelled before, do it now */
if (ctx->saved_error) {
/* Keep error */
@@ -367,52 +380,23 @@ mm_broadband_bearer_hso_report_connection_status (MMBroadbandBearerHso *self,
(GDestroyNotify)g_object_unref);
dial_3gpp_context_complete_and_free (ctx);
return;
+ }
- case MM_BROADBAND_BEARER_HSO_CONNECTION_STATUS_CONNECTION_FAILED:
- if (!ctx)
- break;
-
- /* If we wanted to get cancelled before and now we couldn't connect,
- * use the cancelled error and return */
- if (ctx->saved_error) {
- g_simple_async_result_take_error (ctx->result, ctx->saved_error);
- ctx->saved_error = NULL;
- dial_3gpp_context_complete_and_free (ctx);
- return;
- }
-
- g_simple_async_result_set_error (ctx->result,
- MM_CORE_ERROR,
- MM_CORE_ERROR_FAILED,
- "Call setup failed");
+ /* If we wanted to get cancelled before and now we couldn't connect,
+ * use the cancelled error and return */
+ if (ctx->saved_error) {
+ g_simple_async_result_take_error (ctx->result, ctx->saved_error);
+ ctx->saved_error = NULL;
dial_3gpp_context_complete_and_free (ctx);
return;
-
- case MM_BROADBAND_BEARER_HSO_CONNECTION_STATUS_DISCONNECTED:
- if (ctx) {
- /* If we wanted to get cancelled before and now we couldn't connect,
- * use the cancelled error and return */
- if (ctx->saved_error) {
- g_simple_async_result_take_error (ctx->result, ctx->saved_error);
- ctx->saved_error = NULL;
- dial_3gpp_context_complete_and_free (ctx);
- return;
- }
-
- g_simple_async_result_set_error (ctx->result,
- MM_CORE_ERROR,
- MM_CORE_ERROR_FAILED,
- "Call setup failed");
- dial_3gpp_context_complete_and_free (ctx);
- return;
- }
-
- /* Just ensure we mark ourselves as being disconnected... */
- mm_bearer_report_disconnection (MM_BEARER (self));
- return;
}
- g_warn_if_reached ();
+ /* Received CONNECTION_FAILED or DISCONNECTED during a connection attempt? */
+ g_simple_async_result_set_error (ctx->result,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Call setup failed");
+ dial_3gpp_context_complete_and_free (ctx);
}
static gboolean
@@ -482,9 +466,8 @@ forced_close_cb (MMSerialPort *port,
MMBroadbandBearerHso *self)
{
/* Just treat the forced close event as any other unsolicited message */
- mm_broadband_bearer_hso_report_connection_status (
- self,
- MM_BROADBAND_BEARER_HSO_CONNECTION_STATUS_CONNECTION_FAILED);
+ mm_bearer_report_connection_status (MM_BEARER (self),
+ MM_BEARER_CONNECTION_STATUS_CONNECTION_FAILED);
}
static void
@@ -854,10 +837,12 @@ static void
mm_broadband_bearer_hso_class_init (MMBroadbandBearerHsoClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ MMBearerClass *bearer_class = MM_BEARER_CLASS (klass);
MMBroadbandBearerClass *broadband_bearer_class = MM_BROADBAND_BEARER_CLASS (klass);
g_type_class_add_private (object_class, sizeof (MMBroadbandBearerHsoPrivate));
+ bearer_class->report_connection_status = report_connection_status;
broadband_bearer_class->dial_3gpp = dial_3gpp;
broadband_bearer_class->dial_3gpp_finish = dial_3gpp_finish;
broadband_bearer_class->get_ip_config_3gpp = get_ip_config_3gpp;
diff --git a/plugins/option/mm-broadband-bearer-hso.h b/plugins/option/mm-broadband-bearer-hso.h
index 584fc03..20b89db 100644
--- a/plugins/option/mm-broadband-bearer-hso.h
+++ b/plugins/option/mm-broadband-bearer-hso.h
@@ -32,13 +32,6 @@
#define MM_IS_BROADBAND_BEARER_HSO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MM_TYPE_BROADBAND_BEARER_HSO))
#define MM_BROADBAND_BEARER_HSO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MM_TYPE_BROADBAND_BEARER_HSO, MMBroadbandBearerHsoClass))
-typedef enum {
- MM_BROADBAND_BEARER_HSO_CONNECTION_STATUS_UNKNOWN,
- MM_BROADBAND_BEARER_HSO_CONNECTION_STATUS_CONNECTED,
- MM_BROADBAND_BEARER_HSO_CONNECTION_STATUS_CONNECTION_FAILED,
- MM_BROADBAND_BEARER_HSO_CONNECTION_STATUS_DISCONNECTED
-} MMBroadbandBearerHsoConnectionStatus;
-
typedef struct _MMBroadbandBearerHso MMBroadbandBearerHso;
typedef struct _MMBroadbandBearerHsoClass MMBroadbandBearerHsoClass;
typedef struct _MMBroadbandBearerHsoPrivate MMBroadbandBearerHsoPrivate;
@@ -63,7 +56,4 @@ void mm_broadband_bearer_hso_new (MMBroadbandModemHso *modem,
MMBearer *mm_broadband_bearer_hso_new_finish (GAsyncResult *res,
GError **error);
-void mm_broadband_bearer_hso_report_connection_status (MMBroadbandBearerHso *self,
- MMBroadbandBearerHsoConnectionStatus status);
-
#endif /* MM_BROADBAND_BEARER_HSO_H */
diff --git a/plugins/option/mm-broadband-modem-hso.c b/plugins/option/mm-broadband-modem-hso.c
index 1c69109..ef10174 100644
--- a/plugins/option/mm-broadband-modem-hso.c
+++ b/plugins/option/mm-broadband-modem-hso.c
@@ -216,7 +216,7 @@ load_unlock_retries (MMIfaceModem *self,
typedef struct {
guint cid;
- MMBroadbandBearerHsoConnectionStatus status;
+ MMBearerConnectionStatus status;
} BearerListReportStatusForeachContext;
static void
@@ -226,8 +226,7 @@ bearer_list_report_status_foreach (MMBearer *bearer,
if (mm_broadband_bearer_get_3gpp_cid (MM_BROADBAND_BEARER (bearer)) != ctx->cid)
return;
- mm_broadband_bearer_hso_report_connection_status (MM_BROADBAND_BEARER_HSO (bearer),
- ctx->status);
+ mm_bearer_report_connection_status (MM_BEARER (bearer), ctx->status);
}
static void
@@ -247,24 +246,24 @@ hso_connection_status_changed (MMAtSerialPort *port,
/* Setup context */
ctx.cid = cid;
- ctx.status = MM_BROADBAND_BEARER_HSO_CONNECTION_STATUS_UNKNOWN;
+ ctx.status = MM_BEARER_CONNECTION_STATUS_UNKNOWN;
switch (status) {
case 1:
- ctx.status = MM_BROADBAND_BEARER_HSO_CONNECTION_STATUS_CONNECTED;
+ ctx.status = MM_BEARER_CONNECTION_STATUS_CONNECTED;
break;
case 3:
- ctx.status = MM_BROADBAND_BEARER_HSO_CONNECTION_STATUS_CONNECTION_FAILED;
+ ctx.status = MM_BEARER_CONNECTION_STATUS_CONNECTION_FAILED;
break;
case 0:
- ctx.status = MM_BROADBAND_BEARER_HSO_CONNECTION_STATUS_DISCONNECTED;
+ ctx.status = MM_BEARER_CONNECTION_STATUS_DISCONNECTED;
break;
default:
break;
}
/* If unknown status, don't try to report anything */
- if (ctx.status == MM_BROADBAND_BEARER_HSO_CONNECTION_STATUS_UNKNOWN)
+ if (ctx.status == MM_BEARER_CONNECTION_STATUS_UNKNOWN)
return;
/* If empty bearer list, nothing else to do */
diff --git a/plugins/samsung/mm-broadband-modem-samsung.c b/plugins/samsung/mm-broadband-modem-samsung.c
index 78de336..e9c6239 100644
--- a/plugins/samsung/mm-broadband-modem-samsung.c
+++ b/plugins/samsung/mm-broadband-modem-samsung.c
@@ -53,7 +53,6 @@ setup_ports (MMBroadbandModem *self)
continue;
g_object_set (ports[i],
- MM_PORT_CARRIER_DETECT, FALSE,
MM_SERIAL_PORT_SEND_DELAY, (guint64) 0,
NULL);
}
diff --git a/plugins/sierra/mm-broadband-modem-sierra.c b/plugins/sierra/mm-broadband-modem-sierra.c
index ba1881f..92186c8 100644
--- a/plugins/sierra/mm-broadband-modem-sierra.c
+++ b/plugins/sierra/mm-broadband-modem-sierra.c
@@ -368,6 +368,8 @@ parse_status (const char *response,
}
}
+ g_strfreev (lines);
+
return TRUE;
}
diff --git a/plugins/sierra/mm-common-sierra.c b/plugins/sierra/mm-common-sierra.c
index 8686425..54317d1 100644
--- a/plugins/sierra/mm-common-sierra.c
+++ b/plugins/sierra/mm-common-sierra.c
@@ -281,10 +281,6 @@ mm_common_sierra_setup_ports (MMBroadbandModem *self)
if (!ports[i])
continue;
- g_object_set (ports[i],
- MM_PORT_CARRIER_DETECT, FALSE,
- NULL);
-
if (i == 1) {
/* Built-in echo removal conflicts with the APP1 port's limited AT
* parser, which doesn't always prefix responses with <CR><LF>.
diff --git a/plugins/sierra/mm-sim-sierra.c b/plugins/sierra/mm-sim-sierra.c
index 1b741de..d8a4715 100644
--- a/plugins/sierra/mm-sim-sierra.c
+++ b/plugins/sierra/mm-sim-sierra.c
@@ -59,8 +59,8 @@ iccid_read_ready (MMBaseModem *modem,
GError *error = NULL;
const gchar *response;
const gchar *p;
- gchar buf[21];
- gint i;
+ char *parsed;
+ GError *local = NULL;
response = mm_base_modem_at_command_finish (modem, res, &error);
if (!response) {
@@ -82,34 +82,12 @@ iccid_read_ready (MMBaseModem *modem,
return;
}
- memset (buf, 0, sizeof (buf));
- for (i = 0; i < 20; i++) {
- if (!isdigit (p[i]) && (p[i] != 'F') && (p[i] == 'f')) {
- g_simple_async_result_set_error (simple,
- MM_CORE_ERROR,
- MM_CORE_ERROR_FAILED,
- "CRSM ICCID response contained invalid character '%c'",
- p[i]);
- g_simple_async_result_complete (simple);
- g_object_unref (simple);
- return;
- }
-
- if (p[i] == 'F' || p[i] == 'f') {
- buf[i] = 0;
- break;
- }
- buf[i] = p[i];
- }
-
- if (i != 19 && i != 20)
- g_simple_async_result_set_error (simple,
- MM_CORE_ERROR,
- MM_CORE_ERROR_FAILED,
- "Invalid +CRSM ICCID response size (was %d, expected 19 or 20)",
- i);
+ parsed = mm_3gpp_parse_iccid (p, &local);
+ if (parsed)
+ g_simple_async_result_set_op_res_gpointer (simple, parsed, g_free);
else
- g_simple_async_result_set_op_res_gpointer (simple, buf, NULL);
+ g_simple_async_result_take_error (simple, local);
+
g_simple_async_result_complete (simple);
g_object_unref (simple);
}
diff --git a/plugins/simtech/77-mm-simtech-port-types.rules b/plugins/simtech/77-mm-simtech-port-types.rules
index 96bf348..2c70049 100644
--- a/plugins/simtech/77-mm-simtech-port-types.rules
+++ b/plugins/simtech/77-mm-simtech-port-types.rules
@@ -10,7 +10,7 @@
# *ser.inf lists the aux ports that may be used for PPP.
-ACTION!="add|change", GOTO="mm_simtech_port_types_end"
+ACTION!="add|change|move", GOTO="mm_simtech_port_types_end"
SUBSYSTEM!="tty", GOTO="mm_simtech_port_types_end"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1e0e", GOTO="mm_alink_vendorcheck"
diff --git a/plugins/telit/77-mm-telit-port-types.rules b/plugins/telit/77-mm-telit-port-types.rules
new file mode 100644
index 0000000..f06822e
--- /dev/null
+++ b/plugins/telit/77-mm-telit-port-types.rules
@@ -0,0 +1,48 @@
+# do not edit this file, it will be overwritten on update
+
+ACTION!="add|change|move", GOTO="mm_telit_port_types_end"
+SUBSYSTEM!="tty", GOTO="mm_telit_port_types_end"
+
+SUBSYSTEMS=="usb", ATTRS{idVendor}=="1bc7", GOTO="mm_telit_vendorcheck"
+GOTO="mm_telit_port_types_end"
+
+LABEL="mm_telit_vendorcheck"
+SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="?*", ENV{.MM_USBIFNUM}="$attr{bInterfaceNumber}"
+
+# UC864-E, UC864-E-AUTO, UC864-K, UC864-WD, UC864-WDU
+ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1003", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_TELIT_PORT_TYPE_MODEM}="1"
+ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1003", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_TELIT_PORT_TYPE_AUX}="1"
+ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1003", ENV{ID_MM_TELIT_TAGGED}="1"
+
+# UC864-G
+ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1004", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_TELIT_PORT_TYPE_MODEM}="1"
+ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1004", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_TELIT_PORT_TYPE_NMEA}="1"
+ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1004", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_TELIT_PORT_TYPE_AUX}="1"
+ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1004", ENV{ID_MM_TELIT_TAGGED}="1"
+
+# CC864-DUAL
+ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1005", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_TELIT_PORT_TYPE_MODEM}="1"
+ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1005", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_TELIT_PORT_TYPE_NMEA}="1"
+ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1005", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_TELIT_PORT_TYPE_AUX}="1"
+ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1005", ENV{ID_MM_TELIT_TAGGED}="1"
+
+# CC864-SINGLE, CC864-KPS
+ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1006", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_TELIT_PORT_TYPE_MODEM}="1"
+ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1006", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_TELIT_PORT_TYPE_AUX}="1"
+ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1006", ENV{ID_MM_TELIT_TAGGED}="1"
+
+# DE910-DUAL
+ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1010", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_TELIT_PORT_TYPE_NMEA}="1"
+ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1010", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_TELIT_PORT_TYPE_AUX}="1"
+ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1010", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_TELIT_PORT_TYPE_MODEM}="1"
+ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1010", ENV{ID_MM_TELIT_TAGGED}="1"
+
+# CE910-DUAL
+ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1011", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_TELIT_PORT_TYPE_MODEM}="1"
+ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1011", ENV{ID_MM_TELIT_TAGGED}="1"
+
+# NOTE: Qualcomm Gobi-based devices like the LE920 should not be handled
+# by this plugin, but by the Gobi plugin.
+
+GOTO="mm_telit_port_types_end"
+LABEL="mm_telit_port_types_end"
diff --git a/plugins/x22x/77-mm-x22x-port-types.rules b/plugins/x22x/77-mm-x22x-port-types.rules
index 91ae092..cb4ca12 100644
--- a/plugins/x22x/77-mm-x22x-port-types.rules
+++ b/plugins/x22x/77-mm-x22x-port-types.rules
@@ -8,7 +8,7 @@
# aux ports that may be either AT-capable or not but cannot be used for PPP.
-ACTION!="add|change", GOTO="mm_x22x_port_types_end"
+ACTION!="add|change|move", GOTO="mm_x22x_port_types_end"
SUBSYSTEM!="tty", GOTO="mm_x22x_port_types_end"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1bbb", GOTO="mm_x22x_generic_vendorcheck"
diff --git a/plugins/x22x/mm-plugin-x22x.c b/plugins/x22x/mm-plugin-x22x.c
index 9b36048..72b8f2e 100644
--- a/plugins/x22x/mm-plugin-x22x.c
+++ b/plugins/x22x/mm-plugin-x22x.c
@@ -26,6 +26,10 @@
#include "mm-plugin-x22x.h"
#include "mm-broadband-modem-x22x.h"
+#if defined WITH_QMI
+#include "mm-broadband-modem-qmi.h"
+#endif
+
G_DEFINE_TYPE (MMPluginX22x, mm_plugin_x22x, MM_TYPE_PLUGIN)
int mm_plugin_major_version = MM_PLUGIN_MAJOR_VERSION;
@@ -185,6 +189,17 @@ create_modem (MMPlugin *self,
GList *probes,
GError **error)
{
+#if defined WITH_QMI
+ if (mm_port_probe_list_has_qmi_port (probes)) {
+ mm_dbg ("QMI-powered X22X modem found...");
+ return MM_BASE_MODEM (mm_broadband_modem_qmi_new (sysfs_path,
+ drivers,
+ mm_plugin_get_name (self),
+ vendor,
+ product));
+ }
+#endif
+
return MM_BASE_MODEM (mm_broadband_modem_x22x_new (sysfs_path,
drivers,
mm_plugin_get_name (self),
@@ -205,26 +220,28 @@ grab_port (MMPlugin *self,
port = mm_port_probe_peek_port (probe);
ptype = mm_port_probe_get_port_type (probe);
- /* Look for port type hints; just probing can't distinguish which port should
- * be the data/primary port on these devices. We have to tag them based on
- * what the Windows .INF files say the port layout should be.
- */
- if (g_udev_device_get_property_as_boolean (port, "ID_MM_X22X_PORT_TYPE_MODEM")) {
- mm_dbg ("x22x: AT port '%s/%s' flagged as primary",
- mm_port_probe_get_port_subsys (probe),
- mm_port_probe_get_port_name (probe));
- pflags = MM_AT_PORT_FLAG_PRIMARY;
- } else if (g_udev_device_get_property_as_boolean (port, "ID_MM_X22X_PORT_TYPE_AUX")) {
- mm_dbg ("x22x: AT port '%s/%s' flagged as secondary",
- mm_port_probe_get_port_subsys (probe),
- mm_port_probe_get_port_name (probe));
- pflags = MM_AT_PORT_FLAG_SECONDARY;
- } else {
- /* If the port was tagged by the udev rules but isn't a primary or secondary,
- * then ignore it to guard against race conditions if a device just happens
- * to show up with more than two AT-capable ports.
+ if (ptype == MM_PORT_TYPE_AT) {
+ /* Look for port type hints; just probing can't distinguish which port should
+ * be the data/primary port on these devices. We have to tag them based on
+ * what the Windows .INF files say the port layout should be.
*/
- ptype = MM_PORT_TYPE_IGNORED;
+ if (g_udev_device_get_property_as_boolean (port, "ID_MM_X22X_PORT_TYPE_MODEM")) {
+ mm_dbg ("x22x: AT port '%s/%s' flagged as primary",
+ mm_port_probe_get_port_subsys (probe),
+ mm_port_probe_get_port_name (probe));
+ pflags = MM_AT_PORT_FLAG_PRIMARY;
+ } else if (g_udev_device_get_property_as_boolean (port, "ID_MM_X22X_PORT_TYPE_AUX")) {
+ mm_dbg ("x22x: AT port '%s/%s' flagged as secondary",
+ mm_port_probe_get_port_subsys (probe),
+ mm_port_probe_get_port_name (probe));
+ pflags = MM_AT_PORT_FLAG_SECONDARY;
+ } else {
+ /* If the port was tagged by the udev rules but isn't a primary or secondary,
+ * then ignore it to guard against race conditions if a device just happens
+ * to show up with more than two AT-capable ports.
+ */
+ ptype = MM_PORT_TYPE_IGNORED;
+ }
}
return mm_base_modem_grab_port (modem,
@@ -240,7 +257,7 @@ grab_port (MMPlugin *self,
G_MODULE_EXPORT MMPlugin *
mm_plugin_create (void)
{
- static const gchar *subsystems[] = { "tty", NULL };
+ static const gchar *subsystems[] = { "tty", "net", "usb", NULL };
/* Vendors: TAMobile and Olivetti */
static const guint16 vendor_ids[] = { 0x1bbb, 0x0b3c, 0 };
/* Only handle X22X tagged devices here. */
@@ -259,6 +276,7 @@ mm_plugin_create (void)
MM_PLUGIN_ALLOWED_SUBSYSTEMS, subsystems,
MM_PLUGIN_ALLOWED_VENDOR_IDS, vendor_ids,
MM_PLUGIN_ALLOWED_AT, TRUE,
+ MM_PLUGIN_ALLOWED_QMI, TRUE,
MM_PLUGIN_ALLOWED_UDEV_TAGS, udev_tags,
MM_PLUGIN_CUSTOM_INIT, &custom_init,
NULL));
diff --git a/plugins/zte/77-mm-zte-port-types.rules b/plugins/zte/77-mm-zte-port-types.rules
index 5e2284b..6fe826e 100644
--- a/plugins/zte/77-mm-zte-port-types.rules
+++ b/plugins/zte/77-mm-zte-port-types.rules
@@ -1,6 +1,6 @@
# do not edit this file, it will be overwritten on update
-ACTION!="add|change", GOTO="mm_zte_port_types_end"
+ACTION!="add|change|move", GOTO="mm_zte_port_types_end"
SUBSYSTEM!="tty", GOTO="mm_zte_port_types_end"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="19d2", GOTO="mm_zte_port_types_vendorcheck"
@@ -177,6 +177,9 @@ ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1008", ENV{.MM_USBIFNUM}=="01", ENV{
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1010", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1010", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1"
+ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1254", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1"
+ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1254", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1"
+
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1515", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1515", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1"
diff --git a/plugins/zte/mm-broadband-modem-zte-icera.c b/plugins/zte/mm-broadband-modem-zte-icera.c
index 793e201..8a6f930 100644
--- a/plugins/zte/mm-broadband-modem-zte-icera.c
+++ b/plugins/zte/mm-broadband-modem-zte-icera.c
@@ -139,25 +139,9 @@ modem_3gpp_cleanup_unsolicited_events (MMIfaceModem3gpp *self,
static void
setup_ports (MMBroadbandModem *self)
{
- MMAtSerialPort *ports[2];
- guint i;
-
/* Call parent's setup ports first always */
MM_BROADBAND_MODEM_CLASS (mm_broadband_modem_zte_icera_parent_class)->setup_ports (self);
- ports[0] = mm_base_modem_peek_port_primary (MM_BASE_MODEM (self));
- ports[1] = mm_base_modem_peek_port_secondary (MM_BASE_MODEM (self));
-
- /* Configure AT ports */
- for (i = 0; i < 2; i++) {
- if (!ports[i])
- continue;
-
- g_object_set (ports[i],
- MM_PORT_CARRIER_DETECT, FALSE,
- NULL);
- }
-
/* Now reset the unsolicited messages we'll handle when enabled */
mm_common_zte_set_unsolicited_events_handlers (MM_BROADBAND_MODEM (self),
MM_BROADBAND_MODEM_ZTE_ICERA (self)->priv->unsolicited_setup,
diff --git a/plugins/zte/mm-broadband-modem-zte.c b/plugins/zte/mm-broadband-modem-zte.c
index 9c9d8e6..17658e0 100644
--- a/plugins/zte/mm-broadband-modem-zte.c
+++ b/plugins/zte/mm-broadband-modem-zte.c
@@ -704,25 +704,9 @@ modem_3gpp_cleanup_unsolicited_events (MMIfaceModem3gpp *self,
static void
setup_ports (MMBroadbandModem *self)
{
- MMAtSerialPort *ports[2];
- guint i;
-
/* Call parent's setup ports first always */
MM_BROADBAND_MODEM_CLASS (mm_broadband_modem_zte_parent_class)->setup_ports (self);
- ports[0] = mm_base_modem_peek_port_primary (MM_BASE_MODEM (self));
- ports[1] = mm_base_modem_peek_port_secondary (MM_BASE_MODEM (self));
-
- /* Configure AT ports */
- for (i = 0; i < 2; i++) {
- if (!ports[i])
- continue;
-
- g_object_set (ports[i],
- MM_PORT_CARRIER_DETECT, FALSE,
- NULL);
- }
-
/* Now reset the unsolicited messages we'll handle when enabled */
mm_common_zte_set_unsolicited_events_handlers (MM_BROADBAND_MODEM (self),
MM_BROADBAND_MODEM_ZTE (self)->priv->unsolicited_setup,
diff --git a/plugins/zte/mm-plugin-zte.c b/plugins/zte/mm-plugin-zte.c
index 59d4380..496ccf2 100644
--- a/plugins/zte/mm-plugin-zte.c
+++ b/plugins/zte/mm-plugin-zte.c
@@ -26,6 +26,10 @@
#include "mm-broadband-modem-zte.h"
#include "mm-broadband-modem-zte-icera.h"
+#if defined WITH_QMI
+#include "mm-broadband-modem-qmi.h"
+#endif
+
G_DEFINE_TYPE (MMPluginZte, mm_plugin_zte, MM_TYPE_PLUGIN)
int mm_plugin_major_version = MM_PLUGIN_MAJOR_VERSION;
@@ -60,6 +64,17 @@ create_modem (MMPlugin *self,
GList *probes,
GError **error)
{
+#if defined WITH_QMI
+ if (mm_port_probe_list_has_qmi_port (probes)) {
+ mm_dbg ("QMI-powered ZTE modem found...");
+ return MM_BASE_MODEM (mm_broadband_modem_qmi_new (sysfs_path,
+ drivers,
+ mm_plugin_get_name (self),
+ vendor,
+ product));
+ }
+#endif
+
if (mm_port_probe_list_is_icera (probes))
return MM_BASE_MODEM (mm_broadband_modem_zte_icera_new (sysfs_path,
drivers,
@@ -86,13 +101,13 @@ grab_port (MMPlugin *self,
port = mm_port_probe_peek_port (probe);
- /* Ignore net ports on non-Icera modems */
+ /* Ignore net ports on non-Icera non-QMI modems */
ptype = mm_port_probe_get_port_type (probe);
- if (ptype == MM_PORT_TYPE_NET && !MM_IS_BROADBAND_MODEM_ZTE_ICERA (modem)) {
+ if (ptype == MM_PORT_TYPE_NET && MM_IS_BROADBAND_MODEM_ZTE (modem)) {
g_set_error (error,
MM_CORE_ERROR,
MM_CORE_ERROR_UNSUPPORTED,
- "Ignoring net port in non-Icera ZTE modem");
+ "Ignoring net port in ZTE modem");
return FALSE;
}
@@ -131,7 +146,7 @@ grab_port (MMPlugin *self,
G_MODULE_EXPORT MMPlugin *
mm_plugin_create (void)
{
- static const gchar *subsystems[] = { "tty", "net", NULL };
+ static const gchar *subsystems[] = { "tty", "net", "usb", NULL };
static const guint16 vendor_ids[] = { 0x19d2, 0 };
return MM_PLUGIN (
@@ -142,6 +157,7 @@ mm_plugin_create (void)
MM_PLUGIN_CUSTOM_AT_PROBE, custom_at_probe,
MM_PLUGIN_ALLOWED_AT, TRUE,
MM_PLUGIN_ALLOWED_QCDM, TRUE,
+ MM_PLUGIN_ALLOWED_QMI, TRUE,
MM_PLUGIN_ICERA_PROBE, TRUE,
NULL));
}
diff --git a/po/LINGUAS b/po/LINGUAS
index e69de29..bb23b10 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -0,0 +1,2 @@
+uk
+de \ No newline at end of file
diff --git a/po/de.po b/po/de.po
new file mode 100644
index 0000000..d11e4fe
--- /dev/null
+++ b/po/de.po
@@ -0,0 +1,95 @@
+# German translation of Modem Manager
+# Copyright (C) 2013 Free Software Foundation, Inc.
+# This file is distributed under the same license as the Modem Manager package.
+#
+# Mario Blättermann <mario.blaettermann@gmail.com>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ModemManager\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-01-06 21:12+0100\n"
+"PO-Revision-Date: 2014-01-06 21:23+0100\n"
+"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
+"Language-Team: German <debian-l10n-german@lists.debian.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.5.4\n"
+
+#: ../data/org.freedesktop.ModemManager1.policy.in.in.h:1
+msgid "Control the Modem Manager daemon"
+msgstr "Den Modem-Manager-Daemon steuern"
+
+#: ../data/org.freedesktop.ModemManager1.policy.in.in.h:2
+msgid "System policy prevents controlling the Modem Manager."
+msgstr "Die Systemrichtlinien verhindern die Steuerung von ModemManager."
+
+#: ../data/org.freedesktop.ModemManager1.policy.in.in.h:3
+msgid "Unlock and control a mobile broadband device"
+msgstr "Ein mobiles Breitbandgerät entsperren und steuern"
+
+#: ../data/org.freedesktop.ModemManager1.policy.in.in.h:4
+msgid ""
+"System policy prevents unlocking or controlling the mobile broadband device."
+msgstr ""
+"Die Systemrichtlinien verhindern das Entsperren oder Steuern des mobilen "
+"Breitbandgerätes."
+
+#: ../data/org.freedesktop.ModemManager1.policy.in.in.h:5
+msgid "Add, modify, and delete mobile broadband contacts"
+msgstr "Kontakte für mobiles Breitband hinzufügen, ändern und löschen"
+
+#: ../data/org.freedesktop.ModemManager1.policy.in.in.h:6
+msgid ""
+"System policy prevents adding, modifying, or deleting this device's contacts."
+msgstr ""
+"Die Systemrichtlinien verhindern das Hinzufügen, Ändern oder Löschen der "
+"Kontakte dieses Gerätes."
+
+#: ../data/org.freedesktop.ModemManager1.policy.in.in.h:7
+msgid "Send, save, modify, and delete text messages"
+msgstr "Textnachrichten senden, speichern, bearbeiten und löschen"
+
+#: ../data/org.freedesktop.ModemManager1.policy.in.in.h:8
+msgid ""
+"System policy prevents sending or maniuplating this device's text messages."
+msgstr ""
+"Die Systemrichtlinien verhindern das Senden oder Bearbeiten der "
+"Textnachrichten dieses Gerätes."
+
+#: ../data/org.freedesktop.ModemManager1.policy.in.in.h:9
+msgid "Enable and view geographic location and positioning information"
+msgstr ""
+"Informationen zum geografischen Standort und Positionierung aktivieren und "
+"anzeigen"
+
+#: ../data/org.freedesktop.ModemManager1.policy.in.in.h:10
+msgid ""
+"System policy prevents enabling or viewing geographic location information."
+msgstr ""
+"Die Systemrichtlinien verhindern das Aktivieren oder Ändern der "
+"Informationen zum geografischen Standort."
+
+#: ../data/org.freedesktop.ModemManager1.policy.in.in.h:11
+msgid "Query and utilize network information and services"
+msgstr "Netzwerkinformationen und -dienste abfragen und nutzen"
+
+#: ../data/org.freedesktop.ModemManager1.policy.in.in.h:12
+msgid ""
+"System policy prevents querying or utilizing network information and "
+"services."
+msgstr ""
+"Die Systemrichtlinien verhindern die Abfrage der Netzwerkinformationen und -"
+"dienste."
+
+#: ../data/org.freedesktop.ModemManager1.policy.in.in.h:13
+msgid "Query and manage firmware on a mobile broadband device"
+msgstr "Firmware auf mobilen Breitbandgeräten abfragen und verwalten"
+
+#: ../data/org.freedesktop.ModemManager1.policy.in.in.h:14
+msgid "System policy prevents querying or managing this device's firmware."
+msgstr ""
+"Die Systemrichtlinien verhindern die Abfrage oder Verwaltung der Firmware "
+"dieses Gerätes."
diff --git a/po/uk.po b/po/uk.po
new file mode 100644
index 0000000..b4c8c5d
--- /dev/null
+++ b/po/uk.po
@@ -0,0 +1,98 @@
+# Ukrainian translation of Modem Manager
+# Copyright (C) 2013 Free Software Foundation, Inc.
+# This file is distributed under the same license as the Modem Manager package.
+#
+# Yuri Chornoivan <yurchor@ukr.net>, 2013.
+msgid ""
+msgstr ""
+"Project-Id-Version: Modem Manager\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-10-19 18:13+0300\n"
+"PO-Revision-Date: 2013-10-19 18:17+0300\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Ukrainian <kde-i18n-uk@kde.org>\n"
+"Language: uk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Generator: Lokalize 1.5\n"
+
+#: ../data/org.freedesktop.ModemManager1.policy.in.in.h:1
+msgid "Control the Modem Manager daemon"
+msgstr "Керування фоновою службою Modem Manager"
+
+#: ../data/org.freedesktop.ModemManager1.policy.in.in.h:2
+msgid "System policy prevents controlling the Modem Manager."
+msgstr "Правила системи перешкоджають керування Modem Manager."
+
+#: ../data/org.freedesktop.ModemManager1.policy.in.in.h:3
+msgid "Unlock and control a mobile broadband device"
+msgstr "Розблокувати пристрій мобільної широкосмугової мережі і керувати ним"
+
+#: ../data/org.freedesktop.ModemManager1.policy.in.in.h:4
+msgid ""
+"System policy prevents unlocking or controlling the mobile broadband device."
+msgstr ""
+"Правила системи забороняють розблокування і керування пристроями "
+"широкосмугових мобільних мереж."
+
+#: ../data/org.freedesktop.ModemManager1.policy.in.in.h:5
+msgid "Add, modify, and delete mobile broadband contacts"
+msgstr ""
+"Додати, внести зміни і вилучити контакти пристрою мобільних широкосмугових "
+"мереж"
+
+#: ../data/org.freedesktop.ModemManager1.policy.in.in.h:6
+msgid ""
+"System policy prevents adding, modifying, or deleting this device's contacts."
+msgstr ""
+"Правила системи перешкоджають додаванню, внесенню змін та вилученню записів "
+"контактів на цьому пристрої."
+
+#: ../data/org.freedesktop.ModemManager1.policy.in.in.h:7
+msgid "Send, save, modify, and delete text messages"
+msgstr "Надіслати, зберегти, внести зміни або вилучити текстові повідомлення"
+
+#: ../data/org.freedesktop.ModemManager1.policy.in.in.h:8
+msgid ""
+"System policy prevents sending or maniuplating this device's text messages."
+msgstr ""
+"Правила системи забороняють надсилання або керування текстовими "
+"повідомленнями цього пристрою."
+
+#: ../data/org.freedesktop.ModemManager1.policy.in.in.h:9
+msgid "Enable and view geographic location and positioning information"
+msgstr ""
+"Увімкнути або переглянути дані щодо географічного розташування і позиціювання"
+
+#: ../data/org.freedesktop.ModemManager1.policy.in.in.h:10
+msgid ""
+"System policy prevents enabling or viewing geographic location information."
+msgstr ""
+"Правила системи забороняють вмикання або перегляд даних щодо розташування."
+
+#: ../data/org.freedesktop.ModemManager1.policy.in.in.h:11
+msgid "Query and utilize network information and services"
+msgstr "Надіслати запит і використати дані щодо мережі і служби"
+
+#: ../data/org.freedesktop.ModemManager1.policy.in.in.h:12
+msgid ""
+"System policy prevents querying or utilizing network information and "
+"services."
+msgstr ""
+"Правила системи забороняють надсилання запитів і використання даних щодо "
+"мережі і служб."
+
+#: ../data/org.freedesktop.ModemManager1.policy.in.in.h:13
+msgid "Query and manage firmware on a mobile broadband device"
+msgstr ""
+"Опитування та керування мікропрограмою на пристрої мобільної широкосмугової "
+"мережі"
+
+#: ../data/org.freedesktop.ModemManager1.policy.in.in.h:14
+msgid "System policy prevents querying or managing this device's firmware."
+msgstr ""
+"Правила системи перешкоджають опитуванню або керування мікропрограмою цього "
+"пристрою."
diff --git a/src/77-mm-pcmcia-device-blacklist.rules b/src/77-mm-pcmcia-device-blacklist.rules
index 76259a2..f0f8474 100644
--- a/src/77-mm-pcmcia-device-blacklist.rules
+++ b/src/77-mm-pcmcia-device-blacklist.rules
@@ -1,10 +1,9 @@
# do not edit this file, it will be overwritten on update
-ACTION!="add|change", GOTO="mm_pcmcia_device_blacklist_end"
+ACTION!="add|change|move", GOTO="mm_pcmcia_device_blacklist_end"
SUBSYSTEM!="pcmcia", GOTO="mm_pcmcia_device_blacklist_end"
# Gemplus Serial Port smartcard adapter
ATTRS{prod_id1}=="Gemplus", ATTRS{prod_id2}=="SerialPort", ATTRS{prod_id3}=="GemPC Card", ENV{ID_MM_DEVICE_IGNORE}="1"
LABEL="mm_pcmcia_device_blacklist_end"
-
diff --git a/src/77-mm-platform-serial-whitelist.rules b/src/77-mm-platform-serial-whitelist.rules
index b62d0a6..faf4472 100644
--- a/src/77-mm-platform-serial-whitelist.rules
+++ b/src/77-mm-platform-serial-whitelist.rules
@@ -1,6 +1,6 @@
# do not edit this file, it will be overwritten on update
-ACTION!="add|change", GOTO="mm_platform_device_whitelist_end"
+ACTION!="add|change|move", GOTO="mm_platform_device_whitelist_end"
SUBSYSTEM!="platform", GOTO="mm_platform_device_whitelist_end"
# Be careful here since many devices connected to platform drivers on PCs
@@ -11,4 +11,3 @@ SUBSYSTEM!="platform", GOTO="mm_platform_device_whitelist_end"
DRIVERS=="atmel_usart", ENV{ID_MM_PLATFORM_DRIVER_PROBE}="1"
LABEL="mm_platform_device_whitelist_end"
-
diff --git a/src/77-mm-usb-device-blacklist.rules b/src/77-mm-usb-device-blacklist.rules
index 30355b1..044d80f 100644
--- a/src/77-mm-usb-device-blacklist.rules
+++ b/src/77-mm-usb-device-blacklist.rules
@@ -1,6 +1,6 @@
# do not edit this file, it will be overwritten on update
-ACTION!="add|change", GOTO="mm_usb_device_blacklist_end"
+ACTION!="add|change|move", GOTO="mm_usb_device_blacklist_end"
SUBSYSTEM!="usb", GOTO="mm_usb_device_blacklist_end"
ENV{DEVTYPE}!="usb_device", GOTO="mm_usb_device_blacklist_end"
@@ -69,7 +69,7 @@ ATTRS{idVendor}=="9e88", ATTRS{idProduct}=="9e8f", ENV{ID_MM_DEVICE_IGNORE}="1"
ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", ENV{ID_MM_DEVICE_IGNORE}="1"
# Dangerous Prototypes Bus Pirate v4
-ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="fb00" ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="fb00", ENV{ID_MM_DEVICE_IGNORE}="1"
# All devices from the Swiss Federal Institute of Technology
ATTRS{idVendor}=="0617", ENV{ID_MM_DEVICE_IGNORE}="1"
@@ -84,7 +84,33 @@ ATTRS{idVendor}=="2341", ENV{ID_MM_DEVICE_IGNORE}="1"
ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9207", ENV{ID_MM_DEVICE_IGNORE}="1"
ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9208", ENV{ID_MM_DEVICE_IGNORE}="1"
+# Adafruit Flora
+ATTRS{idVendor}=="239a", ATTRS{idProduct}=="0004", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTRS{idVendor}=="239a", ATTRS{idProduct}=="8004", ENV{ID_MM_DEVICE_IGNORE}="1"
+
# Altair U-Boot device
-ATTRS{idVendor}=="0216", ATTRS{idProduct}=="0051" ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTRS{idVendor}=="0216", ATTRS{idProduct}=="0051", ENV{ID_MM_DEVICE_IGNORE}="1"
+
+# Bluegiga BLE112B
+ATTRS{idVendor}=="2458", ATTRS{idProduct}=="0001", ENV{ID_MM_DEVICE_IGNORE}="1"
+
+# MediaTek GPS chip (HOLUX M-1200E, GlobalTop Gms-d1, etc)
+ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="3329", ENV{ID_MM_DEVICE_IGNORE}="1"
+
+# PS-360 OEM (GPS sold with MS Street and Trips 2005)
+ATTRS{idVendor}=="067b", ATTRS{idProduct}=="aaa0", ENV{ID_MM_DEVICE_IGNORE}="1"
+
+# u-blox AG, u-blox 5 GPS chips
+ATTRS{idVendor}=="1546", ATTRS{idProduct}=="01a5", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTRS{idVendor}=="1546", ATTRS{idProduct}=="01a6", ENV{ID_MM_DEVICE_IGNORE}="1"
+
+# Garmin GPS devices
+DRIVERS=="garmin_gps", ENV{ID_MM_DEVICE_IGNORE}="1"
+
+# Cypress M8-based GPS devices, UPSes, and serial converters
+DRIVERS=="cypress_m8", ENV{ID_MM_DEVICE_IGNORE}="1"
+
+# All devices in the Openmoko vendor ID
+ATTRS{idVendor}=="1d50", ENV{ID_MM_DEVICE_IGNORE}="1"
LABEL="mm_usb_device_blacklist_end"
diff --git a/src/77-mm-usb-serial-adapters-greylist.rules b/src/77-mm-usb-serial-adapters-greylist.rules
index 1f30833..3f3e090 100644
--- a/src/77-mm-usb-serial-adapters-greylist.rules
+++ b/src/77-mm-usb-serial-adapters-greylist.rules
@@ -1,6 +1,6 @@
# do not edit this file, it will be overwritten on update
-ACTION!="add|change", GOTO="mm_usb_serial_adapters_greylist_end"
+ACTION!="add|change|move", GOTO="mm_usb_serial_adapters_greylist_end"
SUBSYSTEM!="usb", GOTO="mm_usb_serial_adapters_greylist_end"
ENV{DEVTYPE}!="usb_device", GOTO="mm_usb_serial_adapters_greylist_end"
@@ -24,6 +24,7 @@ ATTRS{idVendor}=="0711", ENV{ID_MM_DEVICE_MANUAL_SCAN_ONLY}="1"
# Cygnal Integrated Products, Inc. CP210x
ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", ENV{ID_MM_DEVICE_MANUAL_SCAN_ONLY}="1"
+ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea71", ENV{ID_MM_DEVICE_MANUAL_SCAN_ONLY}="1"
# QinHeng Electronics HL-340
ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", ENV{ID_MM_DEVICE_MANUAL_SCAN_ONLY}="1"
diff --git a/src/Makefile.am b/src/Makefile.am
index 4531a99..2051472 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -30,7 +30,11 @@ libmodem_helpers_la_SOURCES = \
mm-charsets.c \
mm-charsets.h \
mm-sms-part.h \
- mm-sms-part.c
+ mm-sms-part.c \
+ mm-sms-part-3gpp.h \
+ mm-sms-part-3gpp.c \
+ mm-sms-part-cdma.h \
+ mm-sms-part-cdma.c
# Additional QMI support in libmodem-helpers
if WITH_QMI
@@ -125,15 +129,6 @@ mm-daemon-enums-types.c: Makefile.am $(top_srcdir)/build-aux/mm-enums-template.c
--template $(top_srcdir)/build-aux/mm-enums-template.c \
$(DAEMON_ENUMS) > $@
-# Marshallers
-
-mm-marshal.h: mm-marshal.list
- $(AM_V_GEN) $(GLIB_GENMARSHAL) $< --prefix=mm_marshal --header > $@
-
-mm-marshal.c: mm-marshal.list mm-marshal.h
- $(AM_V_GEN) echo "#include \"mm-marshal.h\"" > $@ && \
- $(GLIB_GENMARSHAL) $< --prefix=mm_marshal --body >> $@
-
sbin_PROGRAMS = ModemManager
ModemManager_CPPFLAGS = \
@@ -156,8 +151,6 @@ ModemManager_LDADD = \
$(top_builddir)/libqcdm/src/libqcdm.la
nodist_ModemManager_SOURCES = \
- mm-marshal.h \
- mm-marshal.c \
mm-daemon-enums-types.h \
mm-daemon-enums-types.c
@@ -191,8 +184,6 @@ ModemManager_SOURCES = \
mm-base-modem-at.c \
mm-base-modem.h \
mm-base-modem.c \
- mm-sms-part.h \
- mm-sms-part.c \
mm-sms.h \
mm-sms.c \
mm-sms-list.h \
@@ -215,6 +206,10 @@ ModemManager_SOURCES = \
mm-iface-modem-time.c \
mm-iface-modem-firmware.h \
mm-iface-modem-firmware.c \
+ mm-iface-modem-signal.h \
+ mm-iface-modem-signal.c \
+ mm-iface-modem-oma.h \
+ mm-iface-modem-oma.c \
mm-broadband-modem.h \
mm-broadband-modem.c \
mm-serial-parsers.c \
@@ -228,8 +223,6 @@ ModemManager_SOURCES = \
# Additional dependency rules
mm-bearer.c: mm-daemon-enums-types.h
-mm-sms-list.c: mm-marshal.h
-mm-sim.c: mm-marshal.h
# Additional Polkit support
if WITH_POLKIT
@@ -271,12 +264,9 @@ ModemManager_LDADD += $(MBIM_LIBS)
endif
EXTRA_DIST = \
- $(udevrules_DATA) \
- mm-marshal.list
+ $(udevrules_DATA)
CLEANFILES = \
- mm-marshal.h \
- mm-marshal.c \
mm-daemon-enums-types.h \
mm-daemon-enums-types.c \
mm-serial-enums-types.h \
diff --git a/src/Makefile.in b/src/Makefile.in
index a08e3db..306ccda 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -152,12 +152,13 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \
$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
- $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
- $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/introspection.m4 \
+ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
@@ -171,8 +172,10 @@ libmodem_helpers_la_DEPENDENCIES = \
am__libmodem_helpers_la_SOURCES_DIST = mm-error-helpers.c \
mm-error-helpers.h mm-modem-helpers.c mm-modem-helpers.h \
mm-charsets.c mm-charsets.h mm-sms-part.h mm-sms-part.c \
- mm-modem-helpers-qmi.c mm-modem-helpers-qmi.h \
- mm-modem-helpers-mbim.c mm-modem-helpers-mbim.h
+ mm-sms-part-3gpp.h mm-sms-part-3gpp.c mm-sms-part-cdma.h \
+ mm-sms-part-cdma.c mm-modem-helpers-qmi.c \
+ mm-modem-helpers-qmi.h mm-modem-helpers-mbim.c \
+ mm-modem-helpers-mbim.h
@WITH_QMI_TRUE@am__objects_1 = \
@WITH_QMI_TRUE@ libmodem_helpers_la-mm-modem-helpers-qmi.lo
@WITH_MBIM_TRUE@am__objects_2 = \
@@ -181,7 +184,9 @@ am_libmodem_helpers_la_OBJECTS = \
libmodem_helpers_la-mm-error-helpers.lo \
libmodem_helpers_la-mm-modem-helpers.lo \
libmodem_helpers_la-mm-charsets.lo \
- libmodem_helpers_la-mm-sms-part.lo $(am__objects_1) \
+ libmodem_helpers_la-mm-sms-part.lo \
+ libmodem_helpers_la-mm-sms-part-3gpp.lo \
+ libmodem_helpers_la-mm-sms-part-cdma.lo $(am__objects_1) \
$(am__objects_2)
libmodem_helpers_la_OBJECTS = $(am_libmodem_helpers_la_OBJECTS)
AM_V_lt = $(am__v_lt_@AM_V@)
@@ -215,9 +220,9 @@ am__ModemManager_SOURCES_DIST = main.c mm-context.h mm-context.c \
mm-plugin-manager.h mm-sim.h mm-sim.c mm-bearer.h mm-bearer.c \
mm-broadband-bearer.h mm-broadband-bearer.c mm-bearer-list.h \
mm-bearer-list.c mm-base-modem-at.h mm-base-modem-at.c \
- mm-base-modem.h mm-base-modem.c mm-sms-part.h mm-sms-part.c \
- mm-sms.h mm-sms.c mm-sms-list.h mm-sms-list.c mm-iface-modem.h \
- mm-iface-modem.c mm-iface-modem-3gpp.h mm-iface-modem-3gpp.c \
+ mm-base-modem.h mm-base-modem.c mm-sms.h mm-sms.c \
+ mm-sms-list.h mm-sms-list.c mm-iface-modem.h mm-iface-modem.c \
+ mm-iface-modem-3gpp.h mm-iface-modem-3gpp.c \
mm-iface-modem-3gpp-ussd.h mm-iface-modem-3gpp-ussd.c \
mm-iface-modem-cdma.h mm-iface-modem-cdma.c \
mm-iface-modem-simple.h mm-iface-modem-simple.c \
@@ -225,9 +230,11 @@ am__ModemManager_SOURCES_DIST = main.c mm-context.h mm-context.c \
mm-iface-modem-messaging.h mm-iface-modem-messaging.c \
mm-iface-modem-time.h mm-iface-modem-time.c \
mm-iface-modem-firmware.h mm-iface-modem-firmware.c \
- mm-broadband-modem.h mm-broadband-modem.c mm-serial-parsers.c \
- mm-serial-parsers.h mm-port-probe.h mm-port-probe.c \
- mm-port-probe-at.h mm-port-probe-at.c mm-plugin.c mm-plugin.h \
+ mm-iface-modem-signal.h mm-iface-modem-signal.c \
+ mm-iface-modem-oma.h mm-iface-modem-oma.c mm-broadband-modem.h \
+ mm-broadband-modem.c mm-serial-parsers.c mm-serial-parsers.h \
+ mm-port-probe.h mm-port-probe.c mm-port-probe-at.h \
+ mm-port-probe-at.c mm-plugin.c mm-plugin.h \
mm-auth-provider-polkit.c mm-auth-provider-polkit.h \
mm-sms-qmi.h mm-sms-qmi.c mm-sim-qmi.h mm-sim-qmi.c \
mm-bearer-qmi.h mm-bearer-qmi.c mm-broadband-modem-qmi.h \
@@ -257,7 +264,6 @@ am_ModemManager_OBJECTS = ModemManager-main.$(OBJEXT) \
ModemManager-mm-bearer-list.$(OBJEXT) \
ModemManager-mm-base-modem-at.$(OBJEXT) \
ModemManager-mm-base-modem.$(OBJEXT) \
- ModemManager-mm-sms-part.$(OBJEXT) \
ModemManager-mm-sms.$(OBJEXT) \
ModemManager-mm-sms-list.$(OBJEXT) \
ModemManager-mm-iface-modem.$(OBJEXT) \
@@ -269,13 +275,15 @@ am_ModemManager_OBJECTS = ModemManager-main.$(OBJEXT) \
ModemManager-mm-iface-modem-messaging.$(OBJEXT) \
ModemManager-mm-iface-modem-time.$(OBJEXT) \
ModemManager-mm-iface-modem-firmware.$(OBJEXT) \
+ ModemManager-mm-iface-modem-signal.$(OBJEXT) \
+ ModemManager-mm-iface-modem-oma.$(OBJEXT) \
ModemManager-mm-broadband-modem.$(OBJEXT) \
ModemManager-mm-serial-parsers.$(OBJEXT) \
ModemManager-mm-port-probe.$(OBJEXT) \
ModemManager-mm-port-probe-at.$(OBJEXT) \
ModemManager-mm-plugin.$(OBJEXT) $(am__objects_5) \
$(am__objects_6) $(am__objects_7)
-nodist_ModemManager_OBJECTS = ModemManager-mm-marshal.$(OBJEXT) \
+nodist_ModemManager_OBJECTS = \
ModemManager-mm-daemon-enums-types.$(OBJEXT)
ModemManager_OBJECTS = $(am_ModemManager_OBJECTS) \
$(nodist_ModemManager_OBJECTS)
@@ -481,6 +489,14 @@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
@@ -547,6 +563,9 @@ STRIP = @STRIP@
SYSTEMD_UNIT_DIR = @SYSTEMD_UNIT_DIR@
UDEV_BASE_DIR = @UDEV_BASE_DIR@
USE_NLS = @USE_NLS@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
@@ -626,8 +645,9 @@ libmodem_helpers_la_LIBADD = \
libmodem_helpers_la_SOURCES = mm-error-helpers.c mm-error-helpers.h \
mm-modem-helpers.c mm-modem-helpers.h mm-charsets.c \
- mm-charsets.h mm-sms-part.h mm-sms-part.c $(am__append_1) \
- $(am__append_3)
+ mm-charsets.h mm-sms-part.h mm-sms-part.c mm-sms-part-3gpp.h \
+ mm-sms-part-3gpp.c mm-sms-part-cdma.h mm-sms-part-cdma.c \
+ $(am__append_1) $(am__append_3)
# libserial specific enum types
SERIAL_ENUMS = \
@@ -667,8 +687,6 @@ ModemManager_LDADD = $(MM_LIBS) $(GUDEV_LIBS) \
$(top_builddir)/libqcdm/src/libqcdm.la $(am__append_10) \
$(am__append_14) $(am__append_17)
nodist_ModemManager_SOURCES = \
- mm-marshal.h \
- mm-marshal.c \
mm-daemon-enums-types.h \
mm-daemon-enums-types.c
@@ -680,27 +698,26 @@ ModemManager_SOURCES = main.c mm-context.h mm-context.c mm-log.c \
mm-bearer.h mm-bearer.c mm-broadband-bearer.h \
mm-broadband-bearer.c mm-bearer-list.h mm-bearer-list.c \
mm-base-modem-at.h mm-base-modem-at.c mm-base-modem.h \
- mm-base-modem.c mm-sms-part.h mm-sms-part.c mm-sms.h mm-sms.c \
- mm-sms-list.h mm-sms-list.c mm-iface-modem.h mm-iface-modem.c \
- mm-iface-modem-3gpp.h mm-iface-modem-3gpp.c \
- mm-iface-modem-3gpp-ussd.h mm-iface-modem-3gpp-ussd.c \
- mm-iface-modem-cdma.h mm-iface-modem-cdma.c \
- mm-iface-modem-simple.h mm-iface-modem-simple.c \
- mm-iface-modem-location.h mm-iface-modem-location.c \
- mm-iface-modem-messaging.h mm-iface-modem-messaging.c \
- mm-iface-modem-time.h mm-iface-modem-time.c \
- mm-iface-modem-firmware.h mm-iface-modem-firmware.c \
- mm-broadband-modem.h mm-broadband-modem.c mm-serial-parsers.c \
- mm-serial-parsers.h mm-port-probe.h mm-port-probe.c \
- mm-port-probe-at.h mm-port-probe-at.c mm-plugin.c mm-plugin.h \
- $(am__append_9) $(am__append_12) $(am__append_15)
+ mm-base-modem.c mm-sms.h mm-sms.c mm-sms-list.h mm-sms-list.c \
+ mm-iface-modem.h mm-iface-modem.c mm-iface-modem-3gpp.h \
+ mm-iface-modem-3gpp.c mm-iface-modem-3gpp-ussd.h \
+ mm-iface-modem-3gpp-ussd.c mm-iface-modem-cdma.h \
+ mm-iface-modem-cdma.c mm-iface-modem-simple.h \
+ mm-iface-modem-simple.c mm-iface-modem-location.h \
+ mm-iface-modem-location.c mm-iface-modem-messaging.h \
+ mm-iface-modem-messaging.c mm-iface-modem-time.h \
+ mm-iface-modem-time.c mm-iface-modem-firmware.h \
+ mm-iface-modem-firmware.c mm-iface-modem-signal.h \
+ mm-iface-modem-signal.c mm-iface-modem-oma.h \
+ mm-iface-modem-oma.c mm-broadband-modem.h mm-broadband-modem.c \
+ mm-serial-parsers.c mm-serial-parsers.h mm-port-probe.h \
+ mm-port-probe.c mm-port-probe-at.h mm-port-probe-at.c \
+ mm-plugin.c mm-plugin.h $(am__append_9) $(am__append_12) \
+ $(am__append_15)
EXTRA_DIST = \
- $(udevrules_DATA) \
- mm-marshal.list
+ $(udevrules_DATA)
CLEANFILES = \
- mm-marshal.h \
- mm-marshal.c \
mm-daemon-enums-types.h \
mm-daemon-enums-types.c \
mm-serial-enums-types.h \
@@ -840,12 +857,13 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ModemManager-mm-iface-modem-firmware.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ModemManager-mm-iface-modem-location.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ModemManager-mm-iface-modem-messaging.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ModemManager-mm-iface-modem-oma.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ModemManager-mm-iface-modem-signal.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ModemManager-mm-iface-modem-simple.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ModemManager-mm-iface-modem-time.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ModemManager-mm-iface-modem.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ModemManager-mm-log.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ModemManager-mm-manager.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ModemManager-mm-marshal.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ModemManager-mm-plugin-manager.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ModemManager-mm-plugin.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ModemManager-mm-port-probe-at.Po@am__quote@
@@ -857,7 +875,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ModemManager-mm-sim.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ModemManager-mm-sms-list.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ModemManager-mm-sms-mbim.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ModemManager-mm-sms-part.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ModemManager-mm-sms-qmi.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ModemManager-mm-sms.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmodem_helpers_la-mm-charsets.Plo@am__quote@
@@ -865,6 +882,8 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmodem_helpers_la-mm-modem-helpers-mbim.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmodem_helpers_la-mm-modem-helpers-qmi.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmodem_helpers_la-mm-modem-helpers.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmodem_helpers_la-mm-sms-part-3gpp.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmodem_helpers_la-mm-sms-part-cdma.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmodem_helpers_la-mm-sms-part.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libserial_la-mm-at-serial-port.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libserial_la-mm-gps-serial-port.Plo@am__quote@
@@ -927,6 +946,20 @@ libmodem_helpers_la-mm-sms-part.lo: mm-sms-part.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodem_helpers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmodem_helpers_la-mm-sms-part.lo `test -f 'mm-sms-part.c' || echo '$(srcdir)/'`mm-sms-part.c
+libmodem_helpers_la-mm-sms-part-3gpp.lo: mm-sms-part-3gpp.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodem_helpers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmodem_helpers_la-mm-sms-part-3gpp.lo -MD -MP -MF $(DEPDIR)/libmodem_helpers_la-mm-sms-part-3gpp.Tpo -c -o libmodem_helpers_la-mm-sms-part-3gpp.lo `test -f 'mm-sms-part-3gpp.c' || echo '$(srcdir)/'`mm-sms-part-3gpp.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmodem_helpers_la-mm-sms-part-3gpp.Tpo $(DEPDIR)/libmodem_helpers_la-mm-sms-part-3gpp.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-sms-part-3gpp.c' object='libmodem_helpers_la-mm-sms-part-3gpp.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodem_helpers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmodem_helpers_la-mm-sms-part-3gpp.lo `test -f 'mm-sms-part-3gpp.c' || echo '$(srcdir)/'`mm-sms-part-3gpp.c
+
+libmodem_helpers_la-mm-sms-part-cdma.lo: mm-sms-part-cdma.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodem_helpers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmodem_helpers_la-mm-sms-part-cdma.lo -MD -MP -MF $(DEPDIR)/libmodem_helpers_la-mm-sms-part-cdma.Tpo -c -o libmodem_helpers_la-mm-sms-part-cdma.lo `test -f 'mm-sms-part-cdma.c' || echo '$(srcdir)/'`mm-sms-part-cdma.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmodem_helpers_la-mm-sms-part-cdma.Tpo $(DEPDIR)/libmodem_helpers_la-mm-sms-part-cdma.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-sms-part-cdma.c' object='libmodem_helpers_la-mm-sms-part-cdma.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodem_helpers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmodem_helpers_la-mm-sms-part-cdma.lo `test -f 'mm-sms-part-cdma.c' || echo '$(srcdir)/'`mm-sms-part-cdma.c
+
libmodem_helpers_la-mm-modem-helpers-qmi.lo: mm-modem-helpers-qmi.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmodem_helpers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmodem_helpers_la-mm-modem-helpers-qmi.lo -MD -MP -MF $(DEPDIR)/libmodem_helpers_la-mm-modem-helpers-qmi.Tpo -c -o libmodem_helpers_la-mm-modem-helpers-qmi.lo `test -f 'mm-modem-helpers-qmi.c' || echo '$(srcdir)/'`mm-modem-helpers-qmi.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmodem_helpers_la-mm-modem-helpers-qmi.Tpo $(DEPDIR)/libmodem_helpers_la-mm-modem-helpers-qmi.Plo
@@ -1207,20 +1240,6 @@ ModemManager-mm-base-modem.obj: mm-base-modem.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ModemManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ModemManager-mm-base-modem.obj `if test -f 'mm-base-modem.c'; then $(CYGPATH_W) 'mm-base-modem.c'; else $(CYGPATH_W) '$(srcdir)/mm-base-modem.c'; fi`
-ModemManager-mm-sms-part.o: mm-sms-part.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ModemManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ModemManager-mm-sms-part.o -MD -MP -MF $(DEPDIR)/ModemManager-mm-sms-part.Tpo -c -o ModemManager-mm-sms-part.o `test -f 'mm-sms-part.c' || echo '$(srcdir)/'`mm-sms-part.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ModemManager-mm-sms-part.Tpo $(DEPDIR)/ModemManager-mm-sms-part.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-sms-part.c' object='ModemManager-mm-sms-part.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ModemManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ModemManager-mm-sms-part.o `test -f 'mm-sms-part.c' || echo '$(srcdir)/'`mm-sms-part.c
-
-ModemManager-mm-sms-part.obj: mm-sms-part.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ModemManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ModemManager-mm-sms-part.obj -MD -MP -MF $(DEPDIR)/ModemManager-mm-sms-part.Tpo -c -o ModemManager-mm-sms-part.obj `if test -f 'mm-sms-part.c'; then $(CYGPATH_W) 'mm-sms-part.c'; else $(CYGPATH_W) '$(srcdir)/mm-sms-part.c'; fi`
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ModemManager-mm-sms-part.Tpo $(DEPDIR)/ModemManager-mm-sms-part.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-sms-part.c' object='ModemManager-mm-sms-part.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ModemManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ModemManager-mm-sms-part.obj `if test -f 'mm-sms-part.c'; then $(CYGPATH_W) 'mm-sms-part.c'; else $(CYGPATH_W) '$(srcdir)/mm-sms-part.c'; fi`
-
ModemManager-mm-sms.o: mm-sms.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ModemManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ModemManager-mm-sms.o -MD -MP -MF $(DEPDIR)/ModemManager-mm-sms.Tpo -c -o ModemManager-mm-sms.o `test -f 'mm-sms.c' || echo '$(srcdir)/'`mm-sms.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ModemManager-mm-sms.Tpo $(DEPDIR)/ModemManager-mm-sms.Po
@@ -1375,6 +1394,34 @@ ModemManager-mm-iface-modem-firmware.obj: mm-iface-modem-firmware.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ModemManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ModemManager-mm-iface-modem-firmware.obj `if test -f 'mm-iface-modem-firmware.c'; then $(CYGPATH_W) 'mm-iface-modem-firmware.c'; else $(CYGPATH_W) '$(srcdir)/mm-iface-modem-firmware.c'; fi`
+ModemManager-mm-iface-modem-signal.o: mm-iface-modem-signal.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ModemManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ModemManager-mm-iface-modem-signal.o -MD -MP -MF $(DEPDIR)/ModemManager-mm-iface-modem-signal.Tpo -c -o ModemManager-mm-iface-modem-signal.o `test -f 'mm-iface-modem-signal.c' || echo '$(srcdir)/'`mm-iface-modem-signal.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ModemManager-mm-iface-modem-signal.Tpo $(DEPDIR)/ModemManager-mm-iface-modem-signal.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-iface-modem-signal.c' object='ModemManager-mm-iface-modem-signal.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ModemManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ModemManager-mm-iface-modem-signal.o `test -f 'mm-iface-modem-signal.c' || echo '$(srcdir)/'`mm-iface-modem-signal.c
+
+ModemManager-mm-iface-modem-signal.obj: mm-iface-modem-signal.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ModemManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ModemManager-mm-iface-modem-signal.obj -MD -MP -MF $(DEPDIR)/ModemManager-mm-iface-modem-signal.Tpo -c -o ModemManager-mm-iface-modem-signal.obj `if test -f 'mm-iface-modem-signal.c'; then $(CYGPATH_W) 'mm-iface-modem-signal.c'; else $(CYGPATH_W) '$(srcdir)/mm-iface-modem-signal.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ModemManager-mm-iface-modem-signal.Tpo $(DEPDIR)/ModemManager-mm-iface-modem-signal.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-iface-modem-signal.c' object='ModemManager-mm-iface-modem-signal.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ModemManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ModemManager-mm-iface-modem-signal.obj `if test -f 'mm-iface-modem-signal.c'; then $(CYGPATH_W) 'mm-iface-modem-signal.c'; else $(CYGPATH_W) '$(srcdir)/mm-iface-modem-signal.c'; fi`
+
+ModemManager-mm-iface-modem-oma.o: mm-iface-modem-oma.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ModemManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ModemManager-mm-iface-modem-oma.o -MD -MP -MF $(DEPDIR)/ModemManager-mm-iface-modem-oma.Tpo -c -o ModemManager-mm-iface-modem-oma.o `test -f 'mm-iface-modem-oma.c' || echo '$(srcdir)/'`mm-iface-modem-oma.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ModemManager-mm-iface-modem-oma.Tpo $(DEPDIR)/ModemManager-mm-iface-modem-oma.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-iface-modem-oma.c' object='ModemManager-mm-iface-modem-oma.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ModemManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ModemManager-mm-iface-modem-oma.o `test -f 'mm-iface-modem-oma.c' || echo '$(srcdir)/'`mm-iface-modem-oma.c
+
+ModemManager-mm-iface-modem-oma.obj: mm-iface-modem-oma.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ModemManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ModemManager-mm-iface-modem-oma.obj -MD -MP -MF $(DEPDIR)/ModemManager-mm-iface-modem-oma.Tpo -c -o ModemManager-mm-iface-modem-oma.obj `if test -f 'mm-iface-modem-oma.c'; then $(CYGPATH_W) 'mm-iface-modem-oma.c'; else $(CYGPATH_W) '$(srcdir)/mm-iface-modem-oma.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ModemManager-mm-iface-modem-oma.Tpo $(DEPDIR)/ModemManager-mm-iface-modem-oma.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-iface-modem-oma.c' object='ModemManager-mm-iface-modem-oma.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ModemManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ModemManager-mm-iface-modem-oma.obj `if test -f 'mm-iface-modem-oma.c'; then $(CYGPATH_W) 'mm-iface-modem-oma.c'; else $(CYGPATH_W) '$(srcdir)/mm-iface-modem-oma.c'; fi`
+
ModemManager-mm-broadband-modem.o: mm-broadband-modem.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ModemManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ModemManager-mm-broadband-modem.o -MD -MP -MF $(DEPDIR)/ModemManager-mm-broadband-modem.Tpo -c -o ModemManager-mm-broadband-modem.o `test -f 'mm-broadband-modem.c' || echo '$(srcdir)/'`mm-broadband-modem.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ModemManager-mm-broadband-modem.Tpo $(DEPDIR)/ModemManager-mm-broadband-modem.Po
@@ -1571,20 +1618,6 @@ ModemManager-mm-broadband-modem-mbim.obj: mm-broadband-modem-mbim.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ModemManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ModemManager-mm-broadband-modem-mbim.obj `if test -f 'mm-broadband-modem-mbim.c'; then $(CYGPATH_W) 'mm-broadband-modem-mbim.c'; else $(CYGPATH_W) '$(srcdir)/mm-broadband-modem-mbim.c'; fi`
-ModemManager-mm-marshal.o: mm-marshal.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ModemManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ModemManager-mm-marshal.o -MD -MP -MF $(DEPDIR)/ModemManager-mm-marshal.Tpo -c -o ModemManager-mm-marshal.o `test -f 'mm-marshal.c' || echo '$(srcdir)/'`mm-marshal.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ModemManager-mm-marshal.Tpo $(DEPDIR)/ModemManager-mm-marshal.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-marshal.c' object='ModemManager-mm-marshal.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ModemManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ModemManager-mm-marshal.o `test -f 'mm-marshal.c' || echo '$(srcdir)/'`mm-marshal.c
-
-ModemManager-mm-marshal.obj: mm-marshal.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ModemManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ModemManager-mm-marshal.obj -MD -MP -MF $(DEPDIR)/ModemManager-mm-marshal.Tpo -c -o ModemManager-mm-marshal.obj `if test -f 'mm-marshal.c'; then $(CYGPATH_W) 'mm-marshal.c'; else $(CYGPATH_W) '$(srcdir)/mm-marshal.c'; fi`
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ModemManager-mm-marshal.Tpo $(DEPDIR)/ModemManager-mm-marshal.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mm-marshal.c' object='ModemManager-mm-marshal.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ModemManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ModemManager-mm-marshal.obj `if test -f 'mm-marshal.c'; then $(CYGPATH_W) 'mm-marshal.c'; else $(CYGPATH_W) '$(srcdir)/mm-marshal.c'; fi`
-
ModemManager-mm-daemon-enums-types.o: mm-daemon-enums-types.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ModemManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ModemManager-mm-daemon-enums-types.o -MD -MP -MF $(DEPDIR)/ModemManager-mm-daemon-enums-types.Tpo -c -o ModemManager-mm-daemon-enums-types.o `test -f 'mm-daemon-enums-types.c' || echo '$(srcdir)/'`mm-daemon-enums-types.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ModemManager-mm-daemon-enums-types.Tpo $(DEPDIR)/ModemManager-mm-daemon-enums-types.Po
@@ -1935,19 +1968,8 @@ mm-daemon-enums-types.c: Makefile.am $(top_srcdir)/build-aux/mm-enums-template.c
--template $(top_srcdir)/build-aux/mm-enums-template.c \
$(DAEMON_ENUMS) > $@
-# Marshallers
-
-mm-marshal.h: mm-marshal.list
- $(AM_V_GEN) $(GLIB_GENMARSHAL) $< --prefix=mm_marshal --header > $@
-
-mm-marshal.c: mm-marshal.list mm-marshal.h
- $(AM_V_GEN) echo "#include \"mm-marshal.h\"" > $@ && \
- $(GLIB_GENMARSHAL) $< --prefix=mm_marshal --body >> $@
-
# Additional dependency rules
mm-bearer.c: mm-daemon-enums-types.h
-mm-sms-list.c: mm-marshal.h
-mm-sim.c: mm-marshal.h
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/src/mm-at-serial-port.c b/src/mm-at-serial-port.c
index 346221a..1c8e355 100644
--- a/src/mm-at-serial-port.c
+++ b/src/mm-at-serial-port.c
@@ -176,6 +176,7 @@ handle_response (MMSerialPort *port,
typedef struct {
GRegex *regex;
MMAtSerialUnsolicitedMsgFn callback;
+ gboolean enable;
gpointer user_data;
GDestroyNotify notify;
} MMAtUnsolicitedMsgHandler;
@@ -219,10 +220,34 @@ mm_at_serial_port_add_unsolicited_msg_handler (MMAtSerialPort *self,
}
handler->callback = callback;
+ handler->enable = TRUE;
handler->user_data = user_data;
handler->notify = notify;
}
+void
+mm_at_serial_port_enable_unsolicited_msg_handler (MMAtSerialPort *self,
+ GRegex *regex,
+ gboolean enable)
+{
+ GSList *existing;
+ MMAtUnsolicitedMsgHandler *handler;
+ MMAtSerialPortPrivate *priv;
+
+ g_return_if_fail (MM_IS_AT_SERIAL_PORT (self));
+ g_return_if_fail (regex != NULL);
+
+ priv = MM_AT_SERIAL_PORT_GET_PRIVATE (self);
+
+ existing = g_slist_find_custom (priv->unsolicited_msg_handlers,
+ regex,
+ (GCompareFunc)unsolicited_msg_handler_cmp);
+ if (existing) {
+ handler = existing->data;
+ handler->enable = enable;
+ }
+}
+
static gboolean
remove_eval_cb (const GMatchInfo *match_info,
GString *result,
@@ -254,6 +279,9 @@ parse_unsolicited (MMSerialPort *port, GByteArray *response)
GMatchInfo *match_info;
gboolean matches;
+ if (!handler->enable)
+ continue;
+
matches = g_regex_match_full (handler->regex,
(const char *) response->data,
response->len,
diff --git a/src/mm-at-serial-port.h b/src/mm-at-serial-port.h
index cf960a0..cdd3b9c 100644
--- a/src/mm-at-serial-port.h
+++ b/src/mm-at-serial-port.h
@@ -89,6 +89,10 @@ void mm_at_serial_port_add_unsolicited_msg_handler (MMAtSerialPort *self,
gpointer user_data,
GDestroyNotify notify);
+void mm_at_serial_port_enable_unsolicited_msg_handler (MMAtSerialPort *self,
+ GRegex *regex,
+ gboolean enable);
+
void mm_at_serial_port_set_response_parser (MMAtSerialPort *self,
MMAtSerialResponseParserFn fn,
gpointer user_data,
diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c
index b348aba..f6f448f 100644
--- a/src/mm-base-modem.c
+++ b/src/mm-base-modem.c
@@ -295,7 +295,8 @@ mm_base_modem_release_port (MMBaseModem *self,
g_return_if_fail (subsys != NULL);
if (!g_str_equal (subsys, "tty") &&
- !g_str_equal (subsys, "net"))
+ !g_str_equal (subsys, "net") &&
+ !(g_str_has_prefix (subsys, "usb") && g_str_has_prefix (name, "cdc-wdm")))
return;
key = get_hash_key (subsys, name);
@@ -674,7 +675,7 @@ mm_base_modem_peek_port_qmi_for_data (MMBaseModem *self,
qmi_device_parent = g_udev_device_get_parent (qmi_device);
g_object_unref (qmi_device);
- if (!data_device_parent) {
+ if (!qmi_device_parent) {
mm_warn ("Couldn't get udev device parent for QMI port '%s'",
mm_port_get_device (MM_PORT (l->data)));
continue;
@@ -825,7 +826,7 @@ mm_base_modem_peek_port_mbim_for_data (MMBaseModem *self,
mbim_device_parent = g_udev_device_get_parent (mbim_device);
g_object_unref (mbim_device);
- if (!data_device_parent) {
+ if (!mbim_device_parent) {
mm_warn ("Couldn't get udev device parent for MBIM port '%s'",
mm_port_get_device (MM_PORT (l->data)));
continue;
diff --git a/src/mm-bearer-list.c b/src/mm-bearer-list.c
index 43ccf8f..278ceba 100644
--- a/src/mm-bearer-list.c
+++ b/src/mm-bearer-list.c
@@ -33,6 +33,7 @@ G_DEFINE_TYPE (MMBearerList, mm_bearer_list, G_TYPE_OBJECT);
enum {
PROP_0,
+ PROP_NUM_BEARERS,
PROP_MAX_BEARERS,
PROP_MAX_ACTIVE_BEARERS,
PROP_LAST
@@ -91,8 +92,9 @@ mm_bearer_list_add_bearer (MMBearerList *self,
}
/* Keep our own reference */
- self->priv->bearers = g_list_prepend (self->priv->bearers,
- g_object_ref (bearer));
+ self->priv->bearers = g_list_prepend (self->priv->bearers, g_object_ref (bearer));
+ g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_NUM_BEARERS]);
+
return TRUE;
}
@@ -115,8 +117,8 @@ mm_bearer_list_delete_bearer (MMBearerList *self,
for (l = self->priv->bearers; l; l = g_list_next (l)) {
if (g_str_equal (path, mm_bearer_get_path (MM_BEARER (l->data)))) {
g_object_unref (l->data);
- self->priv->bearers =
- g_list_delete_link (self->priv->bearers, l);
+ self->priv->bearers = g_list_delete_link (self->priv->bearers, l);
+ g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_NUM_BEARERS]);
return TRUE;
}
}
@@ -137,6 +139,7 @@ mm_bearer_list_delete_all_bearers (MMBearerList *self)
g_list_free_full (self->priv->bearers, (GDestroyNotify) g_object_unref);
self->priv->bearers = NULL;
+ g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_NUM_BEARERS]);
}
GStrv
@@ -288,6 +291,9 @@ set_property (GObject *object,
MMBearerList *self = MM_BEARER_LIST (object);
switch (prop_id) {
+ case PROP_NUM_BEARERS:
+ g_assert_not_reached ();
+ break;
case PROP_MAX_BEARERS:
self->priv->max_bearers = g_value_get_uint (value);
break;
@@ -309,6 +315,9 @@ get_property (GObject *object,
MMBearerList *self = MM_BEARER_LIST (object);
switch (prop_id) {
+ case PROP_NUM_BEARERS:
+ g_value_set_uint (value, g_list_length (self->priv->bearers));
+ break;
case PROP_MAX_BEARERS:
g_value_set_uint (value, self->priv->max_bearers);
break;
@@ -352,6 +361,16 @@ mm_bearer_list_class_init (MMBearerListClass *klass)
object_class->set_property = set_property;
object_class->dispose = dispose;
+ properties[PROP_NUM_BEARERS] =
+ g_param_spec_uint (MM_BEARER_LIST_NUM_BEARERS,
+ "Number of bearers",
+ "Current number of bearers in the list",
+ 0,
+ G_MAXUINT,
+ 0,
+ G_PARAM_READABLE);
+ g_object_class_install_property (object_class, PROP_NUM_BEARERS, properties[PROP_NUM_BEARERS]);
+
properties[PROP_MAX_BEARERS] =
g_param_spec_uint (MM_BEARER_LIST_MAX_BEARERS,
"Max bearers",
diff --git a/src/mm-bearer-list.h b/src/mm-bearer-list.h
index 7cd0394..292e3d5 100644
--- a/src/mm-bearer-list.h
+++ b/src/mm-bearer-list.h
@@ -30,6 +30,7 @@
#define MM_IS_BEARER_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MM_TYPE_BEARER_LIST))
#define MM_BEARER_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MM_TYPE_BEARER_LIST, MMBearerListClass))
+#define MM_BEARER_LIST_NUM_BEARERS "num-bearers"
#define MM_BEARER_LIST_MAX_BEARERS "max-bearers"
#define MM_BEARER_LIST_MAX_ACTIVE_BEARERS "max-active-bearers"
diff --git a/src/mm-bearer-mbim.c b/src/mm-bearer-mbim.c
index 2cfd1cf..ff5c6a0 100644
--- a/src/mm-bearer-mbim.c
+++ b/src/mm-bearer-mbim.c
@@ -139,6 +139,7 @@ connect_context_complete_and_free (ConnectContext *ctx)
mm_bearer_connect_result_unref (ctx->connect_result);
g_object_unref (ctx->data);
g_object_unref (ctx->cancellable);
+ g_object_unref (ctx->properties);
g_object_unref (ctx->device);
g_object_unref (ctx->self);
g_slice_free (ConnectContext, ctx);
@@ -398,12 +399,19 @@ ip_configuration_query_ready (MbimDevice *device,
ipv4_config,
ipv6_config);
+ if (ipv4_config)
+ g_object_unref (ipv4_config);
+ if (ipv6_config)
+ g_object_unref (ipv6_config);
mbim_ipv4_element_array_free (ipv4address);
mbim_ipv6_element_array_free (ipv6address);
g_free (ipv4dnsserver);
g_free (ipv6dnsserver);
}
+ if (response)
+ mbim_message_unref (response);
+
if (error) {
g_simple_async_result_take_error (ctx->result, error);
connect_context_complete_and_free (ctx);
@@ -429,27 +437,42 @@ connect_set_ready (MbimDevice *device,
response = mbim_device_command_finish (device, res, &error);
if (response &&
- mbim_message_command_done_get_result (response, &error) &&
- mbim_message_connect_response_parse (
- response,
- &session_id,
- &activation_state,
- NULL, /* voice_call_state */
- &ip_type,
- NULL, /* context_type */
- &nw_error,
- &error)) {
- if (nw_error)
- error = mm_mobile_equipment_error_from_mbim_nw_error (nw_error);
- else {
- ctx->ip_type = ip_type;
- mm_dbg ("Session ID '%u': %s (IP type: %s)",
- session_id,
- mbim_activation_state_get_string (activation_state),
- mbim_context_ip_type_get_string (ip_type));
+ (mbim_message_command_done_get_result (response, &error) ||
+ error->code == MBIM_STATUS_ERROR_FAILURE)) {
+ GError *inner_error = NULL;
+
+ if (mbim_message_connect_response_parse (
+ response,
+ &session_id,
+ &activation_state,
+ NULL, /* voice_call_state */
+ &ip_type,
+ NULL, /* context_type */
+ &nw_error,
+ &inner_error)) {
+ if (nw_error) {
+ if (error)
+ g_error_free (error);
+ error = mm_mobile_equipment_error_from_mbim_nw_error (nw_error);
+ } else {
+ ctx->ip_type = ip_type;
+ mm_dbg ("Session ID '%u': %s (IP type: %s)",
+ session_id,
+ mbim_activation_state_get_string (activation_state),
+ mbim_context_ip_type_get_string (ip_type));
+ }
+ } else {
+ /* Prefer the error from the result to the parsing error */
+ if (!error)
+ error = inner_error;
+ else
+ g_error_free (inner_error);
}
}
+ if (response)
+ mbim_message_unref (response);
+
if (error) {
g_simple_async_result_take_error (ctx->result, error);
connect_context_complete_and_free (ctx);
@@ -503,6 +526,9 @@ provisioned_contexts_query_ready (MbimDevice *device,
g_error_free (error);
}
+ if (response)
+ mbim_message_unref (response);
+
/* Keep on */
ctx->step++;
connect_context_step (ctx);
@@ -523,30 +549,45 @@ packet_service_set_ready (MbimDevice *device,
response = mbim_device_command_finish (device, res, &error);
if (response &&
- mbim_message_command_done_get_result (response, &error) &&
- mbim_message_packet_service_response_parse (
- response,
- &nw_error,
- &packet_service_state,
- &highest_available_data_class,
- &uplink_speed,
- &downlink_speed,
- &error)) {
- if (nw_error)
- error = mm_mobile_equipment_error_from_mbim_nw_error (nw_error);
- else {
- gchar *str;
-
- str = mbim_data_class_build_string_from_mask (highest_available_data_class);
- mm_dbg ("Packet service update:");
- mm_dbg (" state: '%s'", mbim_packet_service_state_get_string (packet_service_state));
- mm_dbg (" data class: '%s'", str);
- mm_dbg (" uplink: '%" G_GUINT64_FORMAT "' bps", uplink_speed);
- mm_dbg (" downlink: '%" G_GUINT64_FORMAT "' bps", downlink_speed);
- g_free (str);
+ (mbim_message_command_done_get_result (response, &error) ||
+ error->code == MBIM_STATUS_ERROR_FAILURE)) {
+ GError *inner_error = NULL;
+
+ if (mbim_message_packet_service_response_parse (
+ response,
+ &nw_error,
+ &packet_service_state,
+ &highest_available_data_class,
+ &uplink_speed,
+ &downlink_speed,
+ &error)) {
+ if (nw_error) {
+ if (error)
+ g_error_free (error);
+ error = mm_mobile_equipment_error_from_mbim_nw_error (nw_error);
+ } else {
+ gchar *str;
+
+ str = mbim_data_class_build_string_from_mask (highest_available_data_class);
+ mm_dbg ("Packet service update:");
+ mm_dbg (" state: '%s'", mbim_packet_service_state_get_string (packet_service_state));
+ mm_dbg (" data class: '%s'", str);
+ mm_dbg (" uplink: '%" G_GUINT64_FORMAT "' bps", uplink_speed);
+ mm_dbg (" downlink: '%" G_GUINT64_FORMAT "' bps", downlink_speed);
+ g_free (str);
+ }
+ } else {
+ /* Prefer the error from the result to the parsing error */
+ if (!error)
+ error = inner_error;
+ else
+ g_error_free (inner_error);
}
}
+ if (response)
+ mbim_message_unref (response);
+
if (error) {
/* Don't make NoDeviceSupport errors fatal; just try to keep on the
* connection sequence even with this error. */
@@ -902,24 +943,39 @@ disconnect_set_ready (MbimDevice *device,
response = mbim_device_command_finish (device, res, &error);
if (response &&
- mbim_message_command_done_get_result (response, &error) &&
- mbim_message_connect_response_parse (
- response,
- &session_id,
- &activation_state,
- NULL, /* voice_call_state */
- NULL, /* ip_type */
- NULL, /* context_type */
- &nw_error,
- &error)) {
- if (nw_error)
- error = mm_mobile_equipment_error_from_mbim_nw_error (nw_error);
- else
- mm_dbg ("Session ID '%u': %s",
- session_id,
- mbim_activation_state_get_string (activation_state));
+ (mbim_message_command_done_get_result (response, &error) ||
+ error->code == MBIM_STATUS_ERROR_FAILURE)) {
+ GError *inner_error = NULL;
+
+ if (mbim_message_connect_response_parse (
+ response,
+ &session_id,
+ &activation_state,
+ NULL, /* voice_call_state */
+ NULL, /* ip_type */
+ NULL, /* context_type */
+ &nw_error,
+ &error)) {
+ if (nw_error) {
+ if (error)
+ g_error_free (error);
+ error = mm_mobile_equipment_error_from_mbim_nw_error (nw_error);
+ } else
+ mm_dbg ("Session ID '%u': %s",
+ session_id,
+ mbim_activation_state_get_string (activation_state));
+ } else {
+ /* Prefer the error from the result to the parsing error */
+ if (!error)
+ error = inner_error;
+ else
+ g_error_free (inner_error);
+ }
}
+ if (response)
+ mbim_message_unref (response);
+
if (error) {
g_simple_async_result_take_error (ctx->result, error);
disconnect_context_complete_and_free (ctx);
diff --git a/src/mm-bearer-qmi.c b/src/mm-bearer-qmi.c
index 00d17c5..a8341db 100644
--- a/src/mm-bearer-qmi.c
+++ b/src/mm-bearer-qmi.c
@@ -344,6 +344,9 @@ get_current_settings_ready (QmiClientWds *client,
success = qmi_message_wds_get_current_settings_output_get_secondary_ipv4_dns_address (output, &addr, &error);
print_address4 (success, " DNS #2", addr, error);
g_clear_error (&error);
+ } else {
+ /* no IPv4 configuration */
+ g_clear_error (&error);
}
/* If the message has an IPv6 address, print IPv6 settings */
@@ -368,6 +371,9 @@ get_current_settings_ready (QmiClientWds *client,
success = qmi_message_wds_get_current_settings_output_get_ipv6_secondary_dns_address (output, &array, &error);
print_address6 (success, " DNS #2", array, 0, error);
g_clear_error (&error);
+ } else {
+ /* no IPv6 configuration */
+ g_clear_error (&error);
}
/* Domain names */
@@ -1186,13 +1192,15 @@ disconnect (MMBearer *_self,
/*****************************************************************************/
static void
-report_disconnection (MMBearer *self)
+report_connection_status (MMBearer *self,
+ MMBearerConnectionStatus status)
{
- /* Cleanup all connection related data */
- reset_bearer_connection (MM_BEARER_QMI (self), TRUE, TRUE);
+ if (status == MM_BEARER_CONNECTION_STATUS_DISCONNECTED)
+ /* Cleanup all connection related data */
+ reset_bearer_connection (MM_BEARER_QMI (self), TRUE, TRUE);
- /* Chain up parent's report_disconection() */
- MM_BEARER_CLASS (mm_bearer_qmi_parent_class)->report_disconnection (self);
+ /* Chain up parent's report_connection_status() */
+ MM_BEARER_CLASS (mm_bearer_qmi_parent_class)->report_connection_status (self, status);
}
/*****************************************************************************/
@@ -1253,5 +1261,5 @@ mm_bearer_qmi_class_init (MMBearerQmiClass *klass)
bearer_class->connect_finish = connect_finish;
bearer_class->disconnect = disconnect;
bearer_class->disconnect_finish = disconnect_finish;
- bearer_class->report_disconnection = report_disconnection;
+ bearer_class->report_connection_status = report_connection_status;
}
diff --git a/src/mm-bearer.c b/src/mm-bearer.c
index 8c9a93c..6592619 100644
--- a/src/mm-bearer.c
+++ b/src/mm-bearer.c
@@ -441,7 +441,12 @@ disconnect_after_cancel_ready (MMBearer *self,
else
mm_dbg ("Disconnected bearer '%s'", self->priv->path);
- bearer_update_status (self, MM_BEARER_STATUS_DISCONNECTED);
+ /* Report disconnection to the bearer object using class method
+ * mm_bearer_report_connection_status. This gives subclass implementations a
+ * chance to correctly update their own connection state, in case this base
+ * class ignores a failed disconnection attempt.
+ */
+ mm_bearer_report_connection_status (self, MM_BEARER_CONNECTION_STATUS_DISCONNECTED);
}
static void
@@ -945,7 +950,12 @@ disconnect_force_ready (MMBearer *self,
else
mm_dbg ("Disconnected bearer '%s'", self->priv->path);
- bearer_update_status (self, MM_BEARER_STATUS_DISCONNECTED);
+ /* Report disconnection to the bearer object using class method
+ * mm_bearer_report_connection_status. This gives subclass implementations a
+ * chance to correctly update their own connection state, in case this base
+ * class ignores a failed disconnection attempt.
+ */
+ mm_bearer_report_connection_status (self, MM_BEARER_CONNECTION_STATUS_DISCONNECTED);
}
void
@@ -974,17 +984,25 @@ mm_bearer_disconnect_force (MMBearer *self)
/*****************************************************************************/
static void
-report_disconnection (MMBearer *self)
+report_connection_status (MMBearer *self,
+ MMBearerConnectionStatus status)
{
+ /* The only status expected at this point is DISCONNECTED.
+ * No other status should have been given to the generic implementation
+ * of report_connection_status (it would be an error).
+ */
+ g_assert (status == MM_BEARER_CONNECTION_STATUS_DISCONNECTED);
+
/* In the generic bearer implementation we just need to reset the
* interface status */
bearer_update_status (self, MM_BEARER_STATUS_DISCONNECTED);
}
void
-mm_bearer_report_disconnection (MMBearer *self)
+mm_bearer_report_connection_status (MMBearer *self,
+ MMBearerConnectionStatus status)
{
- return MM_BEARER_GET_CLASS (self)->report_disconnection (self);
+ return MM_BEARER_GET_CLASS (self)->report_connection_status (self, status);
}
static void
@@ -1160,7 +1178,7 @@ mm_bearer_class_init (MMBearerClass *klass)
object_class->finalize = finalize;
object_class->dispose = dispose;
- klass->report_disconnection = report_disconnection;
+ klass->report_connection_status = report_connection_status;
properties[PROP_CONNECTION] =
g_param_spec_object (MM_BEARER_CONNECTION,
diff --git a/src/mm-bearer.h b/src/mm-bearer.h
index cc71bfd..c1bcaee 100644
--- a/src/mm-bearer.h
+++ b/src/mm-bearer.h
@@ -67,6 +67,14 @@ typedef enum { /*< underscore_name=mm_bearer_status >*/
MM_BEARER_STATUS_CONNECTED,
} MMBearerStatus;
+typedef enum { /*< underscore_name=mm_bearer_connection_status >*/
+ MM_BEARER_CONNECTION_STATUS_UNKNOWN,
+ MM_BEARER_CONNECTION_STATUS_DISCONNECTED,
+ MM_BEARER_CONNECTION_STATUS_DISCONNECTING,
+ MM_BEARER_CONNECTION_STATUS_CONNECTED,
+ MM_BEARER_CONNECTION_STATUS_CONNECTION_FAILED,
+} MMBearerConnectionStatus;
+
struct _MMBearer {
MmGdbusBearerSkeleton parent;
MMBearerPrivate *priv;
@@ -92,8 +100,9 @@ struct _MMBearerClass {
GAsyncResult *res,
GError **error);
- /* Report disconnection */
- void (* report_disconnection) (MMBearer *bearer);
+ /* Report connection status of this bearer */
+ void (* report_connection_status) (MMBearer *bearer,
+ MMBearerConnectionStatus status);
};
GType mm_bearer_get_type (void);
@@ -123,6 +132,7 @@ gboolean mm_bearer_disconnect_finish (MMBearer *self,
void mm_bearer_disconnect_force (MMBearer *self);
-void mm_bearer_report_disconnection (MMBearer *self);
+void mm_bearer_report_connection_status (MMBearer *self,
+ MMBearerConnectionStatus status);
#endif /* MM_BEARER_H */
diff --git a/src/mm-broadband-bearer.c b/src/mm-broadband-bearer.c
index f8f449d..33b4ca7 100644
--- a/src/mm-broadband-bearer.c
+++ b/src/mm-broadband-bearer.c
@@ -1785,13 +1785,17 @@ disconnect (MMBearer *self,
/*****************************************************************************/
static void
-report_disconnection (MMBearer *self)
+report_connection_status (MMBearer *self,
+ MMBearerConnectionStatus status)
{
- /* Cleanup all connection related data */
- reset_bearer_connection (MM_BROADBAND_BEARER (self));
+ if (status == MM_BEARER_CONNECTION_STATUS_DISCONNECTED)
+ /* Cleanup all connection related data */
+ reset_bearer_connection (MM_BROADBAND_BEARER (self));
- /* Chain up parent's report_disconection() */
- MM_BEARER_CLASS (mm_broadband_bearer_parent_class)->report_disconnection (self);
+ /* Chain up parent's report_connection_status() */
+ MM_BEARER_CLASS (mm_broadband_bearer_parent_class)->report_connection_status (
+ self,
+ status);
}
/*****************************************************************************/
@@ -2052,7 +2056,7 @@ mm_broadband_bearer_class_init (MMBroadbandBearerClass *klass)
bearer_class->connect_finish = connect_finish;
bearer_class->disconnect = disconnect;
bearer_class->disconnect_finish = disconnect_finish;
- bearer_class->report_disconnection = report_disconnection;
+ bearer_class->report_connection_status = report_connection_status;
klass->connect_3gpp = connect_3gpp;
klass->connect_3gpp_finish = detailed_connect_finish;
diff --git a/src/mm-broadband-modem-mbim.c b/src/mm-broadband-modem-mbim.c
index f7dbd9b..774209e 100644
--- a/src/mm-broadband-modem-mbim.c
+++ b/src/mm-broadband-modem-mbim.c
@@ -36,6 +36,7 @@
#include "mm-iface-modem.h"
#include "mm-iface-modem-3gpp.h"
#include "mm-iface-modem-messaging.h"
+#include "mm-sms-part-3gpp.h"
static void iface_modem_init (MMIfaceModem *iface);
static void iface_modem_3gpp_init (MMIfaceModem3gpp *iface);
@@ -260,7 +261,7 @@ modem_load_model (MMIfaceModem *self,
result = g_simple_async_result_new (G_OBJECT (self),
callback,
user_data,
- modem_load_manufacturer);
+ modem_load_model);
g_simple_async_result_complete_in_idle (result);
g_object_unref (result);
}
@@ -1486,7 +1487,7 @@ modem_3gpp_load_enabled_facility_locks (MMIfaceModem3gpp *self,
result = g_simple_async_result_new (G_OBJECT (self),
callback,
user_data,
- modem_load_unlock_retries);
+ modem_3gpp_load_enabled_facility_locks);
message = mbim_message_pin_list_query_new (NULL);
mbim_device_command (device,
@@ -2276,7 +2277,7 @@ modem_3gpp_register_in_network (MMIfaceModem3gpp *self,
result = g_simple_async_result_new (G_OBJECT (self),
callback,
user_data,
- modem_3gpp_run_registration_checks);
+ modem_3gpp_register_in_network);
if (operator_id && operator_id[0])
message = (mbim_message_register_state_set_new (
@@ -2300,6 +2301,81 @@ modem_3gpp_register_in_network (MMIfaceModem3gpp *self,
}
/*****************************************************************************/
+/* Scan networks (3GPP interface) */
+
+static GList *
+modem_3gpp_scan_networks_finish (MMIfaceModem3gpp *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ MbimMessage *response;
+ MbimProvider **providers;
+ guint n_providers;
+ GList *info_list = NULL;
+
+ if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error))
+ return NULL;
+
+ response = (MbimMessage *)g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (res));
+ if (mbim_message_command_done_get_result (response, error) &&
+ mbim_message_visible_providers_response_parse (response,
+ &n_providers,
+ &providers,
+ error)) {
+ info_list = mm_3gpp_network_info_list_from_mbim_providers ((const MbimProvider *const *)providers,
+ n_providers);
+ mbim_provider_array_free (providers);
+ }
+ return info_list;
+}
+
+static void
+visible_providers_query_ready (MbimDevice *device,
+ GAsyncResult *res,
+ GSimpleAsyncResult *simple)
+{
+ MbimMessage *response;
+ GError *error = NULL;
+
+ response = mbim_device_command_finish (device, res, &error);
+ if (response)
+ g_simple_async_result_set_op_res_gpointer (simple, response, (GDestroyNotify)mbim_message_unref);
+ else
+ g_simple_async_result_take_error (simple, error);
+
+ g_simple_async_result_complete (simple);
+ g_object_unref (simple);
+}
+
+static void
+modem_3gpp_scan_networks (MMIfaceModem3gpp *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ GSimpleAsyncResult *result;
+ MbimDevice *device;
+ MbimMessage *message;
+
+ if (!peek_device (self, &device, callback, user_data))
+ return;
+
+ result = g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ modem_3gpp_scan_networks);
+
+ mm_dbg ("scanning networks...");
+ message = mbim_message_visible_providers_query_new (MBIM_VISIBLE_PROVIDERS_ACTION_FULL_SCAN, NULL);
+ mbim_device_command (device,
+ message,
+ 120,
+ NULL,
+ (GAsyncReadyCallback)visible_providers_query_ready,
+ result);
+ mbim_message_unref (message);
+}
+
+/*****************************************************************************/
/* Check support (Messaging interface) */
static gboolean
@@ -2407,10 +2483,10 @@ add_sms_part (MMBroadbandModemMbim *self,
MMSmsPart *part;
GError *error = NULL;
- part = mm_sms_part_new_from_binary_pdu (pdu->message_index,
- pdu->pdu_data,
- pdu->pdu_data_size,
- &error);
+ part = mm_sms_part_3gpp_new_from_binary_pdu (pdu->message_index,
+ pdu->pdu_data,
+ pdu->pdu_data_size,
+ &error);
if (part) {
mm_dbg ("Correctly parsed PDU (%d)", pdu->message_index);
mm_iface_modem_messaging_take_part (MM_IFACE_MODEM_MESSAGING (self),
@@ -2697,10 +2773,8 @@ iface_modem_3gpp_init (MMIfaceModem3gpp *iface)
iface->run_registration_checks_finish = modem_3gpp_run_registration_checks_finish;
iface->register_in_network = modem_3gpp_register_in_network;
iface->register_in_network_finish = modem_3gpp_register_in_network_finish;
-
- /* TODO: use MBIM_CID_VISIBLE_PROVIDERS */
- iface->scan_networks = NULL;
- iface->scan_networks_finish = NULL;
+ iface->scan_networks = modem_3gpp_scan_networks;
+ iface->scan_networks_finish = modem_3gpp_scan_networks_finish;
}
static void
diff --git a/src/mm-broadband-modem-qmi.c b/src/mm-broadband-modem-qmi.c
index e7969ef..a396a96 100644
--- a/src/mm-broadband-modem-qmi.c
+++ b/src/mm-broadband-modem-qmi.c
@@ -35,9 +35,13 @@
#include "mm-iface-modem-messaging.h"
#include "mm-iface-modem-location.h"
#include "mm-iface-modem-firmware.h"
+#include "mm-iface-modem-signal.h"
+#include "mm-iface-modem-oma.h"
#include "mm-sim-qmi.h"
#include "mm-bearer-qmi.h"
#include "mm-sms-qmi.h"
+#include "mm-sms-part-3gpp.h"
+#include "mm-sms-part-cdma.h"
static void iface_modem_init (MMIfaceModem *iface);
static void iface_modem_3gpp_init (MMIfaceModem3gpp *iface);
@@ -45,7 +49,9 @@ static void iface_modem_3gpp_ussd_init (MMIfaceModem3gppUssd *iface);
static void iface_modem_cdma_init (MMIfaceModemCdma *iface);
static void iface_modem_messaging_init (MMIfaceModemMessaging *iface);
static void iface_modem_location_init (MMIfaceModemLocation *iface);
+static void iface_modem_oma_init (MMIfaceModemOma *iface);
static void iface_modem_firmware_init (MMIfaceModemFirmware *iface);
+static void iface_modem_signal_init (MMIfaceModemSignal *iface);
static MMIfaceModemMessaging *iface_modem_messaging_parent;
static MMIfaceModemLocation *iface_modem_location_parent;
@@ -57,6 +63,8 @@ G_DEFINE_TYPE_EXTENDED (MMBroadbandModemQmi, mm_broadband_modem_qmi, MM_TYPE_BRO
G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_CDMA, iface_modem_cdma_init)
G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_MESSAGING, iface_modem_messaging_init)
G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_LOCATION, iface_modem_location_init)
+ G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_SIGNAL, iface_modem_signal_init)
+ G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_OMA, iface_modem_oma_init)
G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_FIRMWARE, iface_modem_firmware_init))
struct _MMBroadbandModemQmiPrivate {
@@ -105,6 +113,11 @@ struct _MMBroadbandModemQmiPrivate {
MMModemLocationSource enabled_sources;
guint location_event_report_indication_id;
+ /* Oma helpers */
+ gboolean oma_unsolicited_events_enabled;
+ gboolean oma_unsolicited_events_setup;
+ guint oma_event_report_indication_id;
+
/* Firmware helpers */
GList *firmware_list;
MMFirmwareProperties *current_firmware;
@@ -1431,21 +1444,31 @@ dms_uim_get_pin_status_ready (QmiClientDms *client,
g_prefix_error (&error, "QMI operation failed: ");
g_simple_async_result_take_error (simple, error);
} else if (!qmi_message_dms_uim_get_pin_status_output_get_result (output, &error)) {
- /* When no SIM inserted, an internal error when checking PIN status
- * needs to be fatal so that we mark the modem unusable. */
+ /* Fatal, so that we mark the modem unusable.*/
if (g_error_matches (error,
QMI_PROTOCOL_ERROR,
- QMI_PROTOCOL_ERROR_INTERNAL) ||
- g_error_matches (error,
- QMI_PROTOCOL_ERROR,
QMI_PROTOCOL_ERROR_UIM_UNINITIALIZED)) {
+ /* This error won't force a pin check retry */
g_simple_async_result_set_error (simple,
MM_MOBILE_EQUIPMENT_ERROR,
MM_MOBILE_EQUIPMENT_ERROR_SIM_FAILURE,
- "Couldn't get PIN status: %s",
+ "SIM failure: %s",
error->message);
g_error_free (error);
- } else {
+ }
+ /* Internal errors are retry-able before being fatal */
+ else if (g_error_matches (error,
+ QMI_PROTOCOL_ERROR,
+ QMI_PROTOCOL_ERROR_INTERNAL)) {
+ g_simple_async_result_set_error (simple,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_RETRY,
+ "Couldn't get PIN status (retry): %s",
+ error->message);
+ g_error_free (error);
+ }
+ /* Other errors, just propagate them */
+ else {
g_prefix_error (&error, "Couldn't get PIN status: ");
g_simple_async_result_take_error (simple, error);
}
@@ -1855,7 +1878,7 @@ modem_load_current_bands (MMIfaceModem *self,
#if defined WITH_NEWEST_QMI_COMMANDS
/* Introduced in NAS 1.19 */
- if (qmi_client_check_version (ctx->client, 1, 19)) {
+ if (qmi_client_check_version (client, 1, 19)) {
qmi_client_nas_get_rf_band_information (QMI_CLIENT_NAS (client),
NULL,
5,
@@ -2267,7 +2290,7 @@ get_signal_info_ready (QmiClientNas *client,
{
QmiMessageNasGetSignalInfoOutput *output;
GError *error = NULL;
- guint quality = 0;
+ gint8 quality = 0;
output = qmi_client_nas_get_signal_info_finish (client, res, &error);
if (!output) {
@@ -4156,7 +4179,7 @@ process_gsm_info (QmiMessageNasGetSystemInfoOutput *response_output,
&cid_valid, &cid,
NULL, NULL, NULL, /* registration_reject_info */
&network_id_valid, &mcc, &mnc,
- &egprs_support_valid, &egprs_support,
+ NULL, NULL, /* egprs support */
NULL, NULL, /* dtm_support */
NULL)) {
mm_dbg ("No GSM service reported");
@@ -4180,7 +4203,7 @@ process_gsm_info (QmiMessageNasGetSystemInfoOutput *response_output,
&cid_valid, &cid,
NULL, NULL, NULL, /* registration_reject_info */
&network_id_valid, &mcc, &mnc,
- &egprs_support_valid, &egprs_support,
+ NULL, NULL, /* egprs support */
NULL, NULL, /* dtm_support */
NULL)) {
mm_dbg ("No GSM service reported");
@@ -5113,7 +5136,9 @@ modem_cdma_load_activation_state (MMIfaceModemCdma *self,
}
/*****************************************************************************/
-/* OTA activation (CDMA interface) */
+/* Manual and OTA Activation (CDMA interface) */
+
+#define MAX_MDN_CHECK_RETRIES 10
typedef enum {
CDMA_ACTIVATION_STEP_FIRST,
@@ -5129,7 +5154,15 @@ typedef struct {
QmiClientDms *client;
GSimpleAsyncResult *result;
CdmaActivationStep step;
- gchar *carrier_code;
+ /* OTA activation... */
+ QmiMessageDmsActivateAutomaticInput *input_automatic;
+ /* Manual activation... */
+ QmiMessageDmsActivateManualInput *input_manual;
+ guint total_segments_size;
+ guint segment_i;
+ guint n_segments;
+ GArray **segments;
+ guint n_mdn_check_retries;
} CdmaActivationContext;
static void
@@ -5138,11 +5171,18 @@ cdma_activation_context_complete_and_free (CdmaActivationContext *ctx)
/* Cleanup the activation context from the private info */
ctx->self->priv->activation_ctx = NULL;
+ for (ctx->segment_i = 0; ctx->segment_i < ctx->n_segments; ctx->segment_i++)
+ g_array_unref (ctx->segments[ctx->segment_i]);
+ g_free (ctx->segments);
+
+ if (ctx->input_automatic)
+ qmi_message_dms_activate_automatic_input_unref (ctx->input_automatic);
+ if (ctx->input_manual)
+ qmi_message_dms_activate_manual_input_unref (ctx->input_manual);
g_simple_async_result_complete (ctx->result);
g_object_unref (ctx->result);
g_object_unref (ctx->client);
g_object_unref (ctx->self);
- g_free (ctx->carrier_code);
g_slice_free (CdmaActivationContext, ctx);
}
@@ -5154,6 +5194,14 @@ modem_cdma_activate_finish (MMIfaceModemCdma *self,
return !g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error);
}
+static gboolean
+modem_cdma_activate_manual_finish (MMIfaceModemCdma *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ return !g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error);
+}
+
static void cdma_activation_context_step (CdmaActivationContext *ctx);
static void
@@ -5191,6 +5239,61 @@ activation_power_cycle_ready (MMBroadbandModemQmi *self,
cdma_activation_context_step (ctx);
}
+static gboolean
+retry_msisdn_check_cb (CdmaActivationContext *ctx)
+{
+ cdma_activation_context_step (ctx);
+ return FALSE;
+}
+
+static void
+activate_manual_get_msisdn_ready (QmiClientDms *client,
+ GAsyncResult *res,
+ CdmaActivationContext *ctx)
+{
+ QmiMessageDmsGetMsisdnOutput *output = NULL;
+ GError *error = NULL;
+ const gchar *current_mdn = NULL;
+ const gchar *expected_mdn = NULL;
+
+ qmi_message_dms_activate_manual_input_get_info (ctx->input_manual,
+ NULL, /* spc */
+ NULL, /* sid */
+ &expected_mdn,
+ NULL, /* min */
+ NULL);
+
+ output = qmi_client_dms_get_msisdn_finish (client, res, &error);
+ if (output &&
+ qmi_message_dms_get_msisdn_output_get_result (output, NULL) &&
+ qmi_message_dms_get_msisdn_output_get_msisdn (output, &current_mdn, NULL) &&
+ g_str_equal (current_mdn, expected_mdn)) {
+ mm_dbg ("MDN successfully updated to '%s'", expected_mdn);
+ qmi_message_dms_get_msisdn_output_unref (output);
+ /* And go on to next step */
+ ctx->step++;
+ cdma_activation_context_step (ctx);
+ return;
+ }
+
+ if (output)
+ qmi_message_dms_get_msisdn_output_unref (output);
+
+ if (ctx->n_mdn_check_retries < MAX_MDN_CHECK_RETRIES) {
+ /* Retry after some time */
+ mm_dbg ("MDN not yet updated, retrying...");
+ g_timeout_add (1, (GSourceFunc) retry_msisdn_check_cb, ctx);
+ return;
+ }
+
+ /* Well, all retries consumed already, return error */
+ g_simple_async_result_set_error (ctx->result,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "MDN was not correctly set during manual activation");
+ cdma_activation_context_complete_and_free (ctx);
+}
+
static void
activation_event_report_indication_cb (QmiClientDms *client,
QmiIndicationDmsEventReportOutput *output,
@@ -5287,6 +5390,47 @@ activate_automatic_ready (QmiClientDms *client,
}
static void
+activate_manual_ready (QmiClientDms *client,
+ GAsyncResult *res,
+ CdmaActivationContext *ctx)
+{
+ QmiMessageDmsActivateManualOutput *output;
+ GError *error = NULL;
+
+ output = qmi_client_dms_activate_manual_finish (client, res, &error);
+ if (!output) {
+ g_prefix_error (&error, "QMI operation failed: ");
+ g_simple_async_result_take_error (ctx->result, error);
+ cdma_activation_context_complete_and_free (ctx);
+ return;
+ }
+
+ if (!qmi_message_dms_activate_manual_output_get_result (output, &error)) {
+ g_prefix_error (&error, "Couldn't request manual activation: ");
+ g_simple_async_result_take_error (ctx->result, error);
+ qmi_message_dms_activate_manual_output_unref (output);
+ cdma_activation_context_complete_and_free (ctx);
+ return;
+ }
+
+ qmi_message_dms_activate_manual_output_unref (output);
+
+ /* If pending segments to send, re-run same step */
+ if (ctx->n_segments) {
+ ctx->segment_i++;
+ if (ctx->segment_i < ctx->n_segments) {
+ /* There's a pending segment */
+ cdma_activation_context_step (ctx);
+ return;
+ }
+ }
+
+ /* No more segments to send, go on */
+ ctx->step++;
+ cdma_activation_context_step (ctx);
+}
+
+static void
ser_activation_state_ready (QmiClientDms *client,
GAsyncResult *res,
CdmaActivationContext *ctx)
@@ -5336,54 +5480,98 @@ cdma_activation_context_step (CdmaActivationContext *ctx)
ctx->step++;
/* Fall down to next step */
- case CDMA_ACTIVATION_STEP_ENABLE_INDICATIONS: {
- QmiMessageDmsSetEventReportInput *input;
+ case CDMA_ACTIVATION_STEP_ENABLE_INDICATIONS:
+ /* Indications needed in automatic activation */
+ if (ctx->input_automatic) {
+ QmiMessageDmsSetEventReportInput *input;
- mm_info ("Automatic activation step [1/5]: enabling indications");
+ mm_info ("Activation step [1/5]: enabling indications");
- input = qmi_message_dms_set_event_report_input_new ();
- qmi_message_dms_set_event_report_input_set_activation_state_reporting (input, TRUE, NULL);
- qmi_client_dms_set_event_report (
- ctx->client,
- input,
- 5,
- NULL,
- (GAsyncReadyCallback)ser_activation_state_ready,
- ctx);
- qmi_message_dms_set_event_report_input_unref (input);
- return;
- }
+ input = qmi_message_dms_set_event_report_input_new ();
+ qmi_message_dms_set_event_report_input_set_activation_state_reporting (input, TRUE, NULL);
+ qmi_client_dms_set_event_report (
+ ctx->client,
+ input,
+ 5,
+ NULL,
+ (GAsyncReadyCallback)ser_activation_state_ready,
+ ctx);
+ qmi_message_dms_set_event_report_input_unref (input);
+ return;
+ }
- case CDMA_ACTIVATION_STEP_REQUEST_ACTIVATION: {
- QmiMessageDmsActivateAutomaticInput *input;
+ /* Manual activation, no indications needed */
+ g_assert (ctx->input_manual != NULL);
+ mm_info ("Activation step [1/5]: indications not needed in manual activation");
+ ctx->step++;
+ /* Fall down to next step */
- mm_info ("Automatic activation step [2/5]: requesting activation");
+ case CDMA_ACTIVATION_STEP_REQUEST_ACTIVATION:
+ /* Automatic activation */
+ if (ctx->input_automatic) {
+ mm_info ("Activation step [2/5]: requesting automatic (OTA) activation");
+
+ qmi_client_dms_activate_automatic (ctx->client,
+ ctx->input_automatic,
+ 10,
+ NULL,
+ (GAsyncReadyCallback)activate_automatic_ready,
+ ctx);
+ return;
+ }
+
+ /* Manual activation */
+ g_assert (ctx->input_manual != NULL);
+ if (!ctx->segments)
+ mm_info ("Activation step [2/5]: requesting manual activation");
+ else {
+ mm_info ("Activation step [2/5]: requesting manual activation (PRL segment %u/%u)",
+ (ctx->segment_i + 1), ctx->n_segments);
+ qmi_message_dms_activate_manual_input_set_prl (
+ ctx->input_manual,
+ (guint16)ctx->total_segments_size,
+ (guint8)ctx->segment_i,
+ ctx->segments[ctx->segment_i],
+ NULL);
+ }
- input = qmi_message_dms_activate_automatic_input_new ();
- qmi_message_dms_activate_automatic_input_set_activation_code (input, ctx->carrier_code, NULL);
- qmi_client_dms_activate_automatic (ctx->client,
- input,
- 10,
- NULL,
- (GAsyncReadyCallback)activate_automatic_ready,
- ctx);
- qmi_message_dms_activate_automatic_input_unref (input);
+ qmi_client_dms_activate_manual (ctx->client,
+ ctx->input_manual,
+ 10,
+ NULL,
+ (GAsyncReadyCallback)activate_manual_ready,
+ ctx);
return;
- }
case CDMA_ACTIVATION_STEP_WAIT_UNTIL_FINISHED:
- mm_info ("Automatic activation step [3/5]: waiting for activation state updates");
+ /* Automatic activation */
+ if (ctx->input_automatic) {
+ /* State updates via unsolicited messages */
+ mm_info ("Activation step [3/5]: waiting for activation state updates");
+ return;
+ }
+
+ /* Manual activation; needs MSISDN checks */
+ g_assert (ctx->input_manual != NULL);
+ ctx->n_mdn_check_retries++;
+ mm_info ("Activation step [3/5]: checking MDN update (retry %u)", ctx->n_mdn_check_retries);
+ qmi_client_dms_get_msisdn (ctx->client,
+ NULL,
+ 5,
+ NULL,
+ (GAsyncReadyCallback)activate_manual_get_msisdn_ready,
+ ctx);
return;
case CDMA_ACTIVATION_STEP_POWER_CYCLE:
- mm_info ("Automatic activation step [4/5]: power-cycling...");
+ mm_info ("Activation step [4/5]: power-cycling...");
power_cycle (ctx->self,
(GAsyncReadyCallback)activation_power_cycle_ready,
ctx);
return;
case CDMA_ACTIVATION_STEP_LAST:
- mm_info ("Automatic activation step [5/5]: finished");
+ mm_info ("Activation step [5/5]: finished");
g_simple_async_result_set_op_res_gboolean (ctx->result, TRUE);
cdma_activation_context_complete_and_free (ctx);
return;
@@ -5431,12 +5619,126 @@ modem_cdma_activate (MMIfaceModemCdma *_self,
ctx->self = g_object_ref (self);
ctx->client = g_object_ref (client);
ctx->result = result;
- ctx->carrier_code = g_strdup (carrier_code);
ctx->step = CDMA_ACTIVATION_STEP_FIRST;
+ /* Build base input bundle for the Automatic activation */
+ ctx->input_automatic = qmi_message_dms_activate_automatic_input_new ();
+ qmi_message_dms_activate_automatic_input_set_activation_code (ctx->input_automatic, carrier_code, NULL);
+
+ /* We keep the activation context in the private data, so that we don't
+ * allow multiple activation requests at the same time. */
+ self->priv->activation_ctx = ctx;
+ cdma_activation_context_step (ctx);
+}
+
+static void
+modem_cdma_activate_manual (MMIfaceModemCdma *_self,
+ MMCdmaManualActivationProperties *properties,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ MMBroadbandModemQmi *self = MM_BROADBAND_MODEM_QMI (_self);
+ GSimpleAsyncResult *result;
+ CdmaActivationContext *ctx;
+ QmiClient *client = NULL;
+
+ if (!ensure_qmi_client (MM_BROADBAND_MODEM_QMI (self),
+ QMI_SERVICE_DMS, &client,
+ callback, user_data))
+ return;
+
+ result = g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ modem_cdma_activate_manual);
+
+ /* Fail if we have already an activation ongoing */
+ if (self->priv->activation_ctx) {
+ g_simple_async_result_set_error (
+ result,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_IN_PROGRESS,
+ "An activation operation is already in progress");
+ g_simple_async_result_complete_in_idle (result);
+ g_object_unref (result);
+ return;
+ }
+
+ /* Setup context */
+ ctx = g_slice_new0 (CdmaActivationContext);
+ ctx->self = g_object_ref (self);
+ ctx->client = g_object_ref (client);
+ ctx->result = result;
+
/* We keep the activation context in the private data, so that we don't
* allow multiple activation requests at the same time. */
self->priv->activation_ctx = ctx;
+
+ /* Build base input bundle for the Manual activation */
+ ctx->input_manual = qmi_message_dms_activate_manual_input_new ();
+ qmi_message_dms_activate_manual_input_set_info (
+ ctx->input_manual,
+ mm_cdma_manual_activation_properties_get_spc (properties),
+ mm_cdma_manual_activation_properties_get_sid (properties),
+ mm_cdma_manual_activation_properties_get_mdn (properties),
+ mm_cdma_manual_activation_properties_get_min (properties),
+ NULL);
+
+ if (mm_cdma_manual_activation_properties_get_mn_ha_key (properties))
+ qmi_message_dms_activate_manual_input_set_mn_ha_key (
+ ctx->input_manual,
+ mm_cdma_manual_activation_properties_get_mn_ha_key (properties),
+ NULL);
+
+ if (mm_cdma_manual_activation_properties_get_mn_aaa_key (properties))
+ qmi_message_dms_activate_manual_input_set_mn_aaa_key (
+ ctx->input_manual,
+ mm_cdma_manual_activation_properties_get_mn_aaa_key (properties),
+ NULL);
+
+ if (mm_cdma_manual_activation_properties_peek_prl_bytearray (properties)) {
+ GByteArray *full_prl;
+ guint i;
+ guint adding;
+ guint remaining;
+
+ /* Just assume 512 is the max segment size...
+ * TODO: probably need to read max segment size from the usb descriptor
+ * WARN! Never ever use a MAX_PRL_SEGMENT_SIZE less than 64, or the sequence number
+ * won't fit in a single byte!!! (16384/256=64) */
+#define MAX_PRL_SEGMENT_SIZE 512
+
+ full_prl = mm_cdma_manual_activation_properties_peek_prl_bytearray (properties);
+
+ /* NOTE: max PRL size should already be checked when reading from DBus,
+ * so assert if longer */
+ ctx->total_segments_size = full_prl->len;
+ g_assert (ctx->total_segments_size <= 16384);
+
+ ctx->n_segments = (guint) (full_prl->len / MAX_PRL_SEGMENT_SIZE);
+ if (full_prl->len % MAX_PRL_SEGMENT_SIZE != 0)
+ ctx->n_segments++;
+ g_assert (ctx->n_segments <= 256);
+
+ ctx->segments = g_new0 (GArray *, (ctx->n_segments + 1));
+
+ adding = 0;
+ remaining = full_prl->len;
+ for (i = 0; i < ctx->n_segments; i++) {
+ guint current_add;
+
+ g_assert (remaining > 0);
+ current_add = remaining > MAX_PRL_SEGMENT_SIZE ? MAX_PRL_SEGMENT_SIZE : remaining;
+ ctx->segments[i] = g_array_sized_new (FALSE, FALSE, sizeof (guint8), current_add);
+ g_array_append_vals (ctx->segments[i], &(full_prl->data[adding]), current_add);
+ adding += current_add;
+ g_assert (remaining >= current_add);
+ remaining -= current_add;
+ }
+
+#undef MAX_PRL_SEGMENT_SIZE
+ }
+
cdma_activation_context_step (ctx);
}
@@ -6273,17 +6575,8 @@ messaging_check_support (MMIfaceModemMessaging *self,
return;
}
- /* We only handle 3GPP messaging (PDU based) currently, so just ignore
- * CDMA-only QMI modems */
- if (mm_iface_modem_is_cdma_only (MM_IFACE_MODEM (self))) {
- mm_dbg ("Messaging capabilities supported by this modem, "
- "but 3GPP2 messaging not supported yet by ModemManager");
- g_simple_async_result_set_op_res_gboolean (result, FALSE);
- } else {
- mm_dbg ("Messaging capabilities supported");
- g_simple_async_result_set_op_res_gboolean (result, TRUE);
- }
-
+ mm_dbg ("Messaging capabilities supported");
+ g_simple_async_result_set_op_res_gboolean (result, TRUE);
g_simple_async_result_complete_in_idle (result);
g_object_unref (result);
}
@@ -6308,8 +6601,11 @@ messaging_load_supported_storages_finish (MMIfaceModemMessaging *_self,
}
*mem1 = g_array_sized_new (FALSE, FALSE, sizeof (MMSmsStorage), 2);
- supported = MM_SMS_STORAGE_SM;
- g_array_append_val (*mem1, supported);
+ /* Add SM storage only if not CDMA-only */
+ if (!mm_iface_modem_is_cdma_only (MM_IFACE_MODEM (self))) {
+ supported = MM_SMS_STORAGE_SM;
+ g_array_append_val (*mem1, supported);
+ }
supported = MM_SMS_STORAGE_ME;
g_array_append_val (*mem1, supported);
*mem2 = g_array_ref (*mem1);
@@ -6484,11 +6780,20 @@ messaging_set_default_storage (MMIfaceModemMessaging *_self,
typedef enum {
LOAD_INITIAL_SMS_PARTS_STEP_FIRST,
- LOAD_INITIAL_SMS_PARTS_STEP_LIST_ALL,
- LOAD_INITIAL_SMS_PARTS_STEP_LIST_MT_READ,
- LOAD_INITIAL_SMS_PARTS_STEP_LIST_MT_NOT_READ,
- LOAD_INITIAL_SMS_PARTS_STEP_LIST_MO_SENT,
- LOAD_INITIAL_SMS_PARTS_STEP_LIST_MO_NOT_SENT,
+ LOAD_INITIAL_SMS_PARTS_STEP_3GPP_FIRST,
+ LOAD_INITIAL_SMS_PARTS_STEP_3GPP_LIST_ALL,
+ LOAD_INITIAL_SMS_PARTS_STEP_3GPP_LIST_MT_READ,
+ LOAD_INITIAL_SMS_PARTS_STEP_3GPP_LIST_MT_NOT_READ,
+ LOAD_INITIAL_SMS_PARTS_STEP_3GPP_LIST_MO_SENT,
+ LOAD_INITIAL_SMS_PARTS_STEP_3GPP_LIST_MO_NOT_SENT,
+ LOAD_INITIAL_SMS_PARTS_STEP_3GPP_LAST,
+ LOAD_INITIAL_SMS_PARTS_STEP_CDMA_FIRST,
+ LOAD_INITIAL_SMS_PARTS_STEP_CDMA_LIST_ALL,
+ LOAD_INITIAL_SMS_PARTS_STEP_CDMA_LIST_MT_READ,
+ LOAD_INITIAL_SMS_PARTS_STEP_CDMA_LIST_MT_NOT_READ,
+ LOAD_INITIAL_SMS_PARTS_STEP_CDMA_LIST_MO_SENT,
+ LOAD_INITIAL_SMS_PARTS_STEP_CDMA_LIST_MO_NOT_SENT,
+ LOAD_INITIAL_SMS_PARTS_STEP_CDMA_LAST,
LOAD_INITIAL_SMS_PARTS_STEP_LAST
} LoadInitialSmsPartsStep;
@@ -6543,43 +6848,43 @@ add_new_read_sms_part (MMIfaceModemMessaging *self,
QmiWmsMessageFormat format,
GArray *data)
{
+ MMSmsPart *part = NULL;
+ GError *error = NULL;
+
switch (format) {
case QMI_WMS_MESSAGE_FORMAT_CDMA:
- mm_dbg ("Skipping CDMA messages for now...");
+ part = mm_sms_part_cdma_new_from_binary_pdu (index,
+ (guint8 *)data->data,
+ data->len,
+ &error);
+
+ break;
+ case QMI_WMS_MESSAGE_FORMAT_GSM_WCDMA_POINT_TO_POINT:
+ case QMI_WMS_MESSAGE_FORMAT_GSM_WCDMA_BROADCAST:
+ part = mm_sms_part_3gpp_new_from_binary_pdu (index,
+ (guint8 *)data->data,
+ data->len,
+ &error);
break;
case QMI_WMS_MESSAGE_FORMAT_MWI:
mm_dbg ("Don't know how to process 'message waiting indicator' messages");
break;
- case QMI_WMS_MESSAGE_FORMAT_GSM_WCDMA_POINT_TO_POINT:
- case QMI_WMS_MESSAGE_FORMAT_GSM_WCDMA_BROADCAST: {
- MMSmsPart *part;
- GError *error = NULL;
-
- part = mm_sms_part_new_from_binary_pdu (index,
- (guint8 *)data->data,
- data->len,
- &error);
- if (part) {
- mm_dbg ("Correctly parsed PDU (%d)",
- index);
- mm_iface_modem_messaging_take_part (self,
- part,
- mm_sms_state_from_qmi_message_tag (tag),
- mm_sms_storage_from_qmi_storage_type (storage));
- } else {
- /* Don't treat the error as critical */
- mm_dbg ("Error parsing PDU (%d): %s",
- index,
- error->message);
- g_error_free (error);
- }
-
- break;
- }
default:
mm_dbg ("Unhandled message format '%u'", format);
break;
}
+
+ if (part) {
+ mm_dbg ("Correctly parsed PDU (%d)", index);
+ mm_iface_modem_messaging_take_part (self,
+ part,
+ mm_sms_state_from_qmi_message_tag (tag),
+ mm_sms_storage_from_qmi_storage_type (storage));
+ } else if (error) {
+ /* Don't treat the error as critical */
+ mm_dbg ("Error parsing PDU (%d): %s", index, error->message);
+ g_error_free (error);
+ }
}
static void
@@ -6642,8 +6947,10 @@ read_next_sms_part (LoadInitialSmsPartsContext *ctx)
if (ctx->i >= ctx->message_array->len ||
!ctx->message_array) {
/* If we just listed all SMS, we're done. Otherwise go to next tag. */
- if (ctx->step == LOAD_INITIAL_SMS_PARTS_STEP_LIST_ALL)
- ctx->step = LOAD_INITIAL_SMS_PARTS_STEP_LAST;
+ if (ctx->step == LOAD_INITIAL_SMS_PARTS_STEP_3GPP_LIST_ALL)
+ ctx->step = LOAD_INITIAL_SMS_PARTS_STEP_3GPP_LAST;
+ else if (ctx->step == LOAD_INITIAL_SMS_PARTS_STEP_CDMA_LIST_ALL)
+ ctx->step = LOAD_INITIAL_SMS_PARTS_STEP_CDMA_LAST;
else
ctx->step++;
load_initial_sms_parts_step (ctx);
@@ -6660,11 +6967,21 @@ read_next_sms_part (LoadInitialSmsPartsContext *ctx)
mm_sms_storage_to_qmi_storage_type (ctx->storage),
message->memory_index,
NULL);
- /* Only reading 3GPP SMS for now */
- qmi_message_wms_raw_read_input_set_message_mode (
- input,
- QMI_WMS_MESSAGE_MODE_GSM_WCDMA,
- NULL);
+
+ /* set message mode */
+ if (ctx->step < LOAD_INITIAL_SMS_PARTS_STEP_3GPP_LAST)
+ qmi_message_wms_raw_read_input_set_message_mode (
+ input,
+ QMI_WMS_MESSAGE_MODE_GSM_WCDMA,
+ NULL);
+ else if (ctx->step < LOAD_INITIAL_SMS_PARTS_STEP_CDMA_LAST)
+ qmi_message_wms_raw_read_input_set_message_mode (
+ input,
+ QMI_WMS_MESSAGE_MODE_CDMA,
+ NULL);
+ else
+ g_assert_not_reached ();
+
qmi_client_wms_raw_read (QMI_CLIENT_WMS (ctx->client),
input,
3,
@@ -6719,36 +7036,95 @@ static void
load_initial_sms_parts_step (LoadInitialSmsPartsContext *ctx)
{
QmiMessageWmsListMessagesInput *input;
+ gint mode = -1;
gint tag_type = -1;
switch (ctx->step) {
case LOAD_INITIAL_SMS_PARTS_STEP_FIRST:
ctx->step++;
/* Fall down */
- case LOAD_INITIAL_SMS_PARTS_STEP_LIST_ALL:
- mm_dbg ("loading all messages from storage '%s'...",
+ case LOAD_INITIAL_SMS_PARTS_STEP_3GPP_FIRST:
+ /* If modem doesn't have 3GPP caps, skip 3GPP SMS */
+ if (!mm_iface_modem_is_3gpp (MM_IFACE_MODEM (ctx->self))) {
+ ctx->step = LOAD_INITIAL_SMS_PARTS_STEP_3GPP_LAST;
+ load_initial_sms_parts_step (ctx);
+ return;
+ }
+ ctx->step++;
+ /* Fall down */
+ case LOAD_INITIAL_SMS_PARTS_STEP_3GPP_LIST_ALL:
+ mm_dbg ("loading all 3GPP messages from storage '%s'...",
+ mm_sms_storage_get_string (ctx->storage));
+ mode = QMI_WMS_MESSAGE_MODE_GSM_WCDMA;
+ break;
+ case LOAD_INITIAL_SMS_PARTS_STEP_3GPP_LIST_MT_READ:
+ mm_dbg ("loading 3GPP MT-read messages from storage '%s'...",
+ mm_sms_storage_get_string (ctx->storage));
+ tag_type = QMI_WMS_MESSAGE_TAG_TYPE_MT_READ;
+ mode = QMI_WMS_MESSAGE_MODE_GSM_WCDMA;
+ break;
+ case LOAD_INITIAL_SMS_PARTS_STEP_3GPP_LIST_MT_NOT_READ:
+ mm_dbg ("loading 3GPP MT-not-read messages from storage '%s'...",
+ mm_sms_storage_get_string (ctx->storage));
+ tag_type = QMI_WMS_MESSAGE_TAG_TYPE_MT_NOT_READ;
+ mode = QMI_WMS_MESSAGE_MODE_GSM_WCDMA;
+ break;
+ case LOAD_INITIAL_SMS_PARTS_STEP_3GPP_LIST_MO_SENT:
+ mm_dbg ("loading 3GPP MO-sent messages from storage '%s'...",
+ mm_sms_storage_get_string (ctx->storage));
+ tag_type = QMI_WMS_MESSAGE_TAG_TYPE_MO_SENT;
+ mode = QMI_WMS_MESSAGE_MODE_GSM_WCDMA;
+ break;
+ case LOAD_INITIAL_SMS_PARTS_STEP_3GPP_LIST_MO_NOT_SENT:
+ mm_dbg ("loading 3GPP MO-not-sent messages from storage '%s'...",
+ mm_sms_storage_get_string (ctx->storage));
+ tag_type = QMI_WMS_MESSAGE_TAG_TYPE_MO_NOT_SENT;
+ mode = QMI_WMS_MESSAGE_MODE_GSM_WCDMA;
+ break;
+ case LOAD_INITIAL_SMS_PARTS_STEP_3GPP_LAST:
+ ctx->step++;
+ /* Fall down */
+ case LOAD_INITIAL_SMS_PARTS_STEP_CDMA_FIRST:
+ /* If modem doesn't have CDMA caps, skip CDMA SMS */
+ if (!mm_iface_modem_is_cdma (MM_IFACE_MODEM (ctx->self))) {
+ ctx->step = LOAD_INITIAL_SMS_PARTS_STEP_CDMA_LAST;
+ load_initial_sms_parts_step (ctx);
+ return;
+ }
+ ctx->step++;
+ /* Fall down */
+ case LOAD_INITIAL_SMS_PARTS_STEP_CDMA_LIST_ALL:
+ mm_dbg ("loading all CDMA messages from storage '%s'...",
mm_sms_storage_get_string (ctx->storage));
+ mode = QMI_WMS_MESSAGE_MODE_CDMA;
break;
- case LOAD_INITIAL_SMS_PARTS_STEP_LIST_MT_READ:
- mm_dbg ("loading MT-read messages from storage '%s'...",
+ case LOAD_INITIAL_SMS_PARTS_STEP_CDMA_LIST_MT_READ:
+ mm_dbg ("loading CDMA MT-read messages from storage '%s'...",
mm_sms_storage_get_string (ctx->storage));
tag_type = QMI_WMS_MESSAGE_TAG_TYPE_MT_READ;
+ mode = QMI_WMS_MESSAGE_MODE_CDMA;
break;
- case LOAD_INITIAL_SMS_PARTS_STEP_LIST_MT_NOT_READ:
- mm_dbg ("loading MT-not-read messages from storage '%s'...",
+ case LOAD_INITIAL_SMS_PARTS_STEP_CDMA_LIST_MT_NOT_READ:
+ mm_dbg ("loading CDMA MT-not-read messages from storage '%s'...",
mm_sms_storage_get_string (ctx->storage));
tag_type = QMI_WMS_MESSAGE_TAG_TYPE_MT_NOT_READ;
+ mode = QMI_WMS_MESSAGE_MODE_CDMA;
break;
- case LOAD_INITIAL_SMS_PARTS_STEP_LIST_MO_SENT:
- mm_dbg ("loading MO-sent messages from storage '%s'...",
+ case LOAD_INITIAL_SMS_PARTS_STEP_CDMA_LIST_MO_SENT:
+ mm_dbg ("loading CDMA MO-sent messages from storage '%s'...",
mm_sms_storage_get_string (ctx->storage));
tag_type = QMI_WMS_MESSAGE_TAG_TYPE_MO_SENT;
+ mode = QMI_WMS_MESSAGE_MODE_CDMA;
break;
- case LOAD_INITIAL_SMS_PARTS_STEP_LIST_MO_NOT_SENT:
- mm_dbg ("loading MO-not-sent messages from storage '%s'...",
+ case LOAD_INITIAL_SMS_PARTS_STEP_CDMA_LIST_MO_NOT_SENT:
+ mm_dbg ("loading CDMA MO-not-sent messages from storage '%s'...",
mm_sms_storage_get_string (ctx->storage));
tag_type = QMI_WMS_MESSAGE_TAG_TYPE_MO_NOT_SENT;
+ mode = QMI_WMS_MESSAGE_MODE_CDMA;
break;
+ case LOAD_INITIAL_SMS_PARTS_STEP_CDMA_LAST:
+ ctx->step++;
+ /* Fall down */
case LOAD_INITIAL_SMS_PARTS_STEP_LAST:
/* All steps done */
g_simple_async_result_set_op_res_gboolean (ctx->result, TRUE);
@@ -6756,7 +7132,7 @@ load_initial_sms_parts_step (LoadInitialSmsPartsContext *ctx)
return;
}
- /* Request to list messages in a given storage */
+ g_assert (mode != -1);
input = qmi_message_wms_list_messages_input_new ();
qmi_message_wms_list_messages_input_set_storage_type (
input,
@@ -6764,7 +7140,7 @@ load_initial_sms_parts_step (LoadInitialSmsPartsContext *ctx)
NULL);
qmi_message_wms_list_messages_input_set_message_mode (
input,
- QMI_WMS_MESSAGE_MODE_GSM_WCDMA,
+ (QmiWmsMessageMode)mode,
NULL);
if (tag_type != -1)
qmi_message_wms_list_messages_input_set_message_tag (
@@ -7071,7 +7447,7 @@ messaging_disable_unsolicited_events_finish (MMIfaceModemMessaging *_self,
MMBroadbandModemQmi *self = MM_BROADBAND_MODEM_QMI (_self);
/* Handle fallback */
- if (self->priv->messaging_fallback_at) {
+ if (self->priv->messaging_fallback_at && iface_modem_messaging_parent->disable_unsolicited_events_finish) {
return iface_modem_messaging_parent->disable_unsolicited_events_finish (_self, res, error);
}
@@ -7180,6 +7556,21 @@ messaging_disable_unsolicited_events (MMIfaceModemMessaging *_self,
/* Handle fallback */
if (self->priv->messaging_fallback_at) {
+ /* Generic implementation doesn't actually have a method to disable
+ * unsolicited messaging events */
+ if (!iface_modem_messaging_parent->disable_unsolicited_events) {
+ GSimpleAsyncResult *result;
+
+ result = g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ messaging_disable_unsolicited_events);
+ g_simple_async_result_set_op_res_gboolean (result, TRUE);
+ g_simple_async_result_complete_in_idle (result);
+ g_object_unref (result);
+ return;
+ }
+
return iface_modem_messaging_parent->disable_unsolicited_events (_self, callback, user_data);
}
@@ -7708,6 +8099,659 @@ enable_location_gathering (MMIfaceModemLocation *self,
}
/*****************************************************************************/
+/* Check support (OMA interface) */
+
+static gboolean
+oma_check_support_finish (MMIfaceModemOma *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ /* no error expected here */
+ return g_simple_async_result_get_op_res_gboolean (G_SIMPLE_ASYNC_RESULT (res));
+}
+
+static void
+oma_check_support (MMIfaceModemOma *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ GSimpleAsyncResult *result;
+ MMQmiPort *port;
+
+ result = g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ oma_check_support);
+
+ port = mm_base_modem_peek_port_qmi (MM_BASE_MODEM (self));
+ /* If we have support for the OMA client, OMA is supported */
+ if (!port || !mm_qmi_port_peek_client (port, QMI_SERVICE_OMA, MM_QMI_PORT_FLAG_DEFAULT)) {
+ mm_dbg ("OMA capabilities not supported");
+ g_simple_async_result_set_op_res_gboolean (result, FALSE);
+ } else {
+ mm_dbg ("OMA capabilities supported");
+ g_simple_async_result_set_op_res_gboolean (result, TRUE);
+ }
+
+ g_simple_async_result_complete_in_idle (result);
+ g_object_unref (result);
+}
+
+/*****************************************************************************/
+/* Load features (OMA interface) */
+
+static MMOmaFeature
+oma_load_features_finish (MMIfaceModemOma *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error))
+ return MM_OMA_FEATURE_NONE;
+
+ return (MMOmaFeature) GPOINTER_TO_UINT (g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (res)));
+}
+
+static void
+oma_get_feature_setting_ready (QmiClientOma *client,
+ GAsyncResult *res,
+ GSimpleAsyncResult *simple)
+{
+ QmiMessageOmaGetFeatureSettingOutput *output = NULL;
+ GError *error = NULL;
+
+ output = qmi_client_oma_get_feature_setting_finish (client, res, &error);
+ if (!output || !qmi_message_oma_get_feature_setting_output_get_result (output, &error))
+ g_simple_async_result_take_error (simple, error);
+ else {
+ MMOmaFeature features = MM_OMA_FEATURE_NONE;
+ gboolean enabled;
+
+ if (qmi_message_oma_get_feature_setting_output_get_device_provisioning_service_update_config (
+ output,
+ &enabled,
+ NULL) &&
+ enabled)
+ features |= MM_OMA_FEATURE_DEVICE_PROVISIONING;
+
+ if (qmi_message_oma_get_feature_setting_output_get_prl_update_service_config (
+ output,
+ &enabled,
+ NULL) &&
+ enabled)
+ features |= MM_OMA_FEATURE_PRL_UPDATE;
+
+ if (qmi_message_oma_get_feature_setting_output_get_hfa_feature_config (
+ output,
+ &enabled,
+ NULL) &&
+ enabled)
+ features |= MM_OMA_FEATURE_HANDS_FREE_ACTIVATION;
+
+ g_simple_async_result_set_op_res_gpointer (simple, GUINT_TO_POINTER ((guint)features), NULL);
+ }
+
+ if (output)
+ qmi_message_oma_get_feature_setting_output_unref (output);
+
+ g_simple_async_result_complete (simple);
+ g_object_unref (simple);
+}
+
+static void
+oma_load_features (MMIfaceModemOma *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ QmiClient *client = NULL;
+
+ if (!ensure_qmi_client (MM_BROADBAND_MODEM_QMI (self),
+ QMI_SERVICE_OMA, &client,
+ callback, user_data))
+ return;
+
+ qmi_client_oma_get_feature_setting (
+ QMI_CLIENT_OMA (client),
+ NULL,
+ 5,
+ NULL,
+ (GAsyncReadyCallback)oma_get_feature_setting_ready,
+ g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ oma_load_features));
+}
+
+/*****************************************************************************/
+/* Setup (OMA interface) */
+
+static gboolean
+oma_setup_finish (MMIfaceModemOma *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ return !g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error);
+}
+
+static void
+oma_set_feature_setting_ready (QmiClientOma *client,
+ GAsyncResult *res,
+ GSimpleAsyncResult *simple)
+{
+ QmiMessageOmaSetFeatureSettingOutput *output;
+ GError *error = NULL;
+
+ output = qmi_client_oma_set_feature_setting_finish (client, res, &error);
+ if (!output || !qmi_message_oma_set_feature_setting_output_get_result (output, &error))
+ g_simple_async_result_take_error (simple, error);
+ else
+ g_simple_async_result_set_op_res_gboolean (simple, TRUE);
+
+ if (output)
+ qmi_message_oma_set_feature_setting_output_unref (output);
+
+ g_simple_async_result_complete (simple);
+ g_object_unref (simple);
+}
+
+static void
+oma_setup (MMIfaceModemOma *self,
+ MMOmaFeature features,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ QmiClient *client = NULL;
+ QmiMessageOmaSetFeatureSettingInput *input;
+
+ if (!ensure_qmi_client (MM_BROADBAND_MODEM_QMI (self),
+ QMI_SERVICE_OMA, &client,
+ callback, user_data))
+ return;
+
+ input = qmi_message_oma_set_feature_setting_input_new ();
+ qmi_message_oma_set_feature_setting_input_set_device_provisioning_service_update_config (
+ input,
+ !!(features & MM_OMA_FEATURE_DEVICE_PROVISIONING),
+ NULL);
+ qmi_message_oma_set_feature_setting_input_set_prl_update_service_config (
+ input,
+ !!(features & MM_OMA_FEATURE_PRL_UPDATE),
+ NULL);
+ qmi_message_oma_set_feature_setting_input_set_hfa_feature_config (
+ input,
+ !!(features & MM_OMA_FEATURE_HANDS_FREE_ACTIVATION),
+ NULL);
+
+ qmi_client_oma_set_feature_setting (
+ QMI_CLIENT_OMA (client),
+ input,
+ 5,
+ NULL,
+ (GAsyncReadyCallback)oma_set_feature_setting_ready,
+ g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ oma_setup));
+
+ qmi_message_oma_set_feature_setting_input_unref (input);
+}
+
+/*****************************************************************************/
+/* Start client initiated session (OMA interface) */
+
+static gboolean
+oma_start_client_initiated_session_finish (MMIfaceModemOma *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ return !g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error);
+}
+
+static void
+oma_start_session_ready (QmiClientOma *client,
+ GAsyncResult *res,
+ GSimpleAsyncResult *simple)
+{
+ QmiMessageOmaStartSessionOutput *output;
+ GError *error = NULL;
+
+ output = qmi_client_oma_start_session_finish (client, res, &error);
+ if (!output || !qmi_message_oma_start_session_output_get_result (output, &error))
+ g_simple_async_result_take_error (simple, error);
+ else
+ g_simple_async_result_set_op_res_gboolean (simple, TRUE);
+
+ if (output)
+ qmi_message_oma_start_session_output_unref (output);
+
+ g_simple_async_result_complete (simple);
+ g_object_unref (simple);
+}
+
+static void
+oma_start_client_initiated_session (MMIfaceModemOma *self,
+ MMOmaSessionType session_type,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ QmiClient *client = NULL;
+ QmiMessageOmaStartSessionInput *input;
+
+ if (!ensure_qmi_client (MM_BROADBAND_MODEM_QMI (self),
+ QMI_SERVICE_OMA, &client,
+ callback, user_data))
+ return;
+
+ /* It's already checked in mm-iface-modem-oma; so just assert if this is not ok */
+ g_assert (session_type == MM_OMA_SESSION_TYPE_CLIENT_INITIATED_DEVICE_CONFIGURE ||
+ session_type == MM_OMA_SESSION_TYPE_CLIENT_INITIATED_PRL_UPDATE ||
+ session_type == MM_OMA_SESSION_TYPE_CLIENT_INITIATED_HANDS_FREE_ACTIVATION);
+
+ input = qmi_message_oma_start_session_input_new ();
+ qmi_message_oma_start_session_input_set_session_type (
+ input,
+ mm_oma_session_type_to_qmi_oma_session_type (session_type),
+ NULL);
+
+ qmi_client_oma_start_session (
+ QMI_CLIENT_OMA (client),
+ input,
+ 5,
+ NULL,
+ (GAsyncReadyCallback)oma_start_session_ready,
+ g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ oma_start_client_initiated_session));
+
+ qmi_message_oma_start_session_input_unref (input);
+}
+
+/*****************************************************************************/
+/* Accept network initiated session (OMA interface) */
+
+static gboolean
+oma_accept_network_initiated_session_finish (MMIfaceModemOma *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ return !g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error);
+}
+
+static void
+oma_send_selection_ready (QmiClientOma *client,
+ GAsyncResult *res,
+ GSimpleAsyncResult *simple)
+{
+ QmiMessageOmaSendSelectionOutput *output;
+ GError *error = NULL;
+
+ output = qmi_client_oma_send_selection_finish (client, res, &error);
+ if (!output || !qmi_message_oma_send_selection_output_get_result (output, &error))
+ g_simple_async_result_take_error (simple, error);
+ else
+ g_simple_async_result_set_op_res_gboolean (simple, TRUE);
+
+ if (output)
+ qmi_message_oma_send_selection_output_unref (output);
+
+ g_simple_async_result_complete (simple);
+ g_object_unref (simple);
+}
+
+static void
+oma_accept_network_initiated_session (MMIfaceModemOma *self,
+ guint session_id,
+ gboolean accept,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ QmiClient *client = NULL;
+ QmiMessageOmaSendSelectionInput *input;
+
+ if (!ensure_qmi_client (MM_BROADBAND_MODEM_QMI (self),
+ QMI_SERVICE_OMA, &client,
+ callback, user_data))
+ return;
+
+ input = qmi_message_oma_send_selection_input_new ();
+ qmi_message_oma_send_selection_input_set_network_initiated_alert_selection (
+ input,
+ accept,
+ (guint16)session_id,
+ NULL);
+
+ qmi_client_oma_send_selection (
+ QMI_CLIENT_OMA (client),
+ input,
+ 5,
+ NULL,
+ (GAsyncReadyCallback)oma_send_selection_ready,
+ g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ oma_accept_network_initiated_session));
+
+ qmi_message_oma_send_selection_input_unref (input);
+}
+
+/*****************************************************************************/
+/* Cancel session (OMA interface) */
+
+static gboolean
+oma_cancel_session_finish (MMIfaceModemOma *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ return !g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error);
+}
+
+static void
+oma_cancel_session_ready (QmiClientOma *client,
+ GAsyncResult *res,
+ GSimpleAsyncResult *simple)
+{
+ QmiMessageOmaCancelSessionOutput *output;
+ GError *error = NULL;
+
+ output = qmi_client_oma_cancel_session_finish (client, res, &error);
+ if (!output || !qmi_message_oma_cancel_session_output_get_result (output, &error))
+ g_simple_async_result_take_error (simple, error);
+ else
+ g_simple_async_result_set_op_res_gboolean (simple, TRUE);
+
+ if (output)
+ qmi_message_oma_cancel_session_output_unref (output);
+
+ g_simple_async_result_complete (simple);
+ g_object_unref (simple);
+}
+
+static void
+oma_cancel_session (MMIfaceModemOma *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ QmiClient *client = NULL;
+
+ if (!ensure_qmi_client (MM_BROADBAND_MODEM_QMI (self),
+ QMI_SERVICE_OMA, &client,
+ callback, user_data))
+ return;
+
+ qmi_client_oma_cancel_session (
+ QMI_CLIENT_OMA (client),
+ NULL,
+ 5,
+ NULL,
+ (GAsyncReadyCallback)oma_cancel_session_ready,
+ g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ oma_cancel_session));
+}
+
+/*****************************************************************************/
+/* Setup/Cleanup unsolicited event handlers (OMA interface) */
+
+static void
+oma_event_report_indication_cb (QmiClientNas *client,
+ QmiIndicationOmaEventReportOutput *output,
+ MMBroadbandModemQmi *self)
+{
+ QmiOmaSessionState qmi_session_state;
+ QmiOmaSessionType network_initiated_alert_session_type;
+ guint16 network_initiated_alert_session_id;
+
+ /* Update session state? */
+ if (qmi_indication_oma_event_report_output_get_session_state (
+ output,
+ &qmi_session_state,
+ NULL)) {
+ QmiOmaSessionFailedReason qmi_oma_session_failed_reason = QMI_OMA_SESSION_FAILED_REASON_UNKNOWN;
+
+ if (qmi_session_state == QMI_OMA_SESSION_STATE_FAILED)
+ qmi_indication_oma_event_report_output_get_session_fail_reason (
+ output,
+ &qmi_oma_session_failed_reason,
+ NULL);
+
+ mm_iface_modem_oma_update_session_state (
+ MM_IFACE_MODEM_OMA (self),
+ mm_oma_session_state_from_qmi_oma_session_state (qmi_session_state),
+ mm_oma_session_state_failed_reason_from_qmi_oma_session_failed_reason (qmi_oma_session_failed_reason));
+ }
+
+ /* New network initiated session? */
+ if (qmi_indication_oma_event_report_output_get_network_initiated_alert (
+ output,
+ &network_initiated_alert_session_type,
+ &network_initiated_alert_session_id,
+ NULL)) {
+ MMOmaSessionType session_type;
+
+ session_type = mm_oma_session_type_from_qmi_oma_session_type (network_initiated_alert_session_type);
+ if (session_type == MM_OMA_SESSION_TYPE_UNKNOWN)
+ g_warning ("Unknown QMI OMA session type '%u'", network_initiated_alert_session_type);
+ else
+ mm_iface_modem_oma_add_pending_network_initiated_session (
+ MM_IFACE_MODEM_OMA (self),
+ session_type,
+ (guint)network_initiated_alert_session_id);
+ }
+}
+
+static gboolean
+common_oma_setup_cleanup_unsolicited_events_finish (MMIfaceModemOma *_self,
+ GAsyncResult *res,
+ GError **error)
+{
+ return !g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error);
+}
+
+static void
+common_setup_cleanup_oma_unsolicited_events (MMBroadbandModemQmi *self,
+ gboolean enable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ GSimpleAsyncResult *result;
+ QmiClient *client = NULL;
+
+ if (!ensure_qmi_client (MM_BROADBAND_MODEM_QMI (self),
+ QMI_SERVICE_OMA, &client,
+ callback, user_data))
+ return;
+
+ result = g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ common_setup_cleanup_oma_unsolicited_events);
+
+ if (enable == self->priv->oma_unsolicited_events_setup) {
+ mm_dbg ("OMA unsolicited events already %s; skipping",
+ enable ? "setup" : "cleanup");
+ g_simple_async_result_set_op_res_gboolean (result, TRUE);
+ g_simple_async_result_complete_in_idle (result);
+ g_object_unref (result);
+ return;
+ }
+
+ /* Store new state */
+ self->priv->oma_unsolicited_events_setup = enable;
+
+ /* Connect/Disconnect "Event Report" indications */
+ if (enable) {
+ g_assert (self->priv->oma_event_report_indication_id == 0);
+ self->priv->oma_event_report_indication_id =
+ g_signal_connect (client,
+ "event-report",
+ G_CALLBACK (oma_event_report_indication_cb),
+ self);
+ } else {
+ g_assert (self->priv->oma_event_report_indication_id != 0);
+ g_signal_handler_disconnect (client, self->priv->oma_event_report_indication_id);
+ self->priv->oma_event_report_indication_id = 0;
+ }
+
+ g_simple_async_result_set_op_res_gboolean (result, TRUE);
+ g_simple_async_result_complete_in_idle (result);
+ g_object_unref (result);
+}
+
+static void
+oma_cleanup_unsolicited_events (MMIfaceModemOma *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ common_setup_cleanup_oma_unsolicited_events (MM_BROADBAND_MODEM_QMI (self),
+ FALSE,
+ callback,
+ user_data);
+}
+
+static void
+oma_setup_unsolicited_events (MMIfaceModemOma *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ common_setup_cleanup_oma_unsolicited_events (MM_BROADBAND_MODEM_QMI (self),
+ TRUE,
+ callback,
+ user_data);
+}
+
+/*****************************************************************************/
+/* Enable/Disable unsolicited events (OMA interface) */
+
+typedef struct {
+ MMBroadbandModemQmi *self;
+ GSimpleAsyncResult *result;
+ QmiClientOma *client;
+ gboolean enable;
+} EnableOmaUnsolicitedEventsContext;
+
+static void
+enable_oma_unsolicited_events_context_complete_and_free (EnableOmaUnsolicitedEventsContext *ctx)
+{
+ g_simple_async_result_complete (ctx->result);
+ g_object_unref (ctx->result);
+ g_object_unref (ctx->client);
+ g_object_unref (ctx->self);
+ g_slice_free (EnableOmaUnsolicitedEventsContext, ctx);
+}
+
+static gboolean
+common_oma_enable_disable_unsolicited_events_finish (MMIfaceModemOma *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ return !g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error);
+}
+
+static void
+ser_oma_indicator_ready (QmiClientOma *client,
+ GAsyncResult *res,
+ EnableOmaUnsolicitedEventsContext *ctx)
+{
+ QmiMessageOmaSetEventReportOutput *output = NULL;
+ GError *error = NULL;
+
+ output = qmi_client_oma_set_event_report_finish (client, res, &error);
+ if (!output) {
+ mm_dbg ("QMI operation failed: '%s'", error->message);
+ g_error_free (error);
+ } else if (!qmi_message_oma_set_event_report_output_get_result (output, &error)) {
+ mm_dbg ("Couldn't set event report: '%s'", error->message);
+ g_error_free (error);
+ }
+
+ if (output)
+ qmi_message_oma_set_event_report_output_unref (output);
+
+ /* Just ignore errors for now */
+ ctx->self->priv->oma_unsolicited_events_enabled = ctx->enable;
+ g_simple_async_result_set_op_res_gboolean (ctx->result, TRUE);
+ enable_oma_unsolicited_events_context_complete_and_free (ctx);
+}
+
+static void
+common_enable_disable_oma_unsolicited_events (MMBroadbandModemQmi *self,
+ gboolean enable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ EnableOmaUnsolicitedEventsContext *ctx;
+ GSimpleAsyncResult *result;
+ QmiClient *client = NULL;
+ QmiMessageOmaSetEventReportInput *input;
+
+ if (!ensure_qmi_client (MM_BROADBAND_MODEM_QMI (self),
+ QMI_SERVICE_OMA, &client,
+ callback, user_data))
+ return;
+
+ result = g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ common_enable_disable_oma_unsolicited_events);
+
+ if (enable == self->priv->oma_unsolicited_events_enabled) {
+ mm_dbg ("OMA unsolicited events already %s; skipping",
+ enable ? "enabled" : "disabled");
+ g_simple_async_result_set_op_res_gboolean (result, TRUE);
+ g_simple_async_result_complete_in_idle (result);
+ g_object_unref (result);
+ return;
+ }
+
+ ctx = g_slice_new0 (EnableOmaUnsolicitedEventsContext);
+ ctx->self = g_object_ref (self);
+ ctx->client = g_object_ref (client);
+ ctx->enable = enable;
+ ctx->result = result;
+
+ input = qmi_message_oma_set_event_report_input_new ();
+ qmi_message_oma_set_event_report_input_set_session_state_reporting (
+ input,
+ ctx->enable,
+ NULL);
+ qmi_message_oma_set_event_report_input_set_network_initiated_alert_reporting (
+ input,
+ ctx->enable,
+ NULL);
+ qmi_client_oma_set_event_report (
+ ctx->client,
+ input,
+ 5,
+ NULL,
+ (GAsyncReadyCallback)ser_oma_indicator_ready,
+ ctx);
+ qmi_message_oma_set_event_report_input_unref (input);
+}
+
+static void
+oma_disable_unsolicited_events (MMIfaceModemOma *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ common_enable_disable_oma_unsolicited_events (MM_BROADBAND_MODEM_QMI (self),
+ FALSE,
+ callback,
+ user_data);
+}
+
+static void
+oma_enable_unsolicited_events (MMIfaceModemOma *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ common_enable_disable_oma_unsolicited_events (MM_BROADBAND_MODEM_QMI (self),
+ TRUE,
+ callback,
+ user_data);
+}
+
+/*****************************************************************************/
/* Check firmware support (Firmware interface) */
typedef struct {
@@ -8337,6 +9381,481 @@ firmware_change_current (MMIfaceModemFirmware *self,
}
/*****************************************************************************/
+/* Check support (Signal interface) */
+
+static gboolean
+signal_check_support_finish (MMIfaceModemSignal *self,
+ GAsyncResult *res,
+ GError **error)
+{
+
+ return g_simple_async_result_get_op_res_gboolean (G_SIMPLE_ASYNC_RESULT (res));
+}
+
+static void
+signal_check_support (MMIfaceModemSignal *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ GSimpleAsyncResult *result;
+ MMQmiPort *port;
+ gboolean supported = FALSE;
+
+ result = g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ signal_check_support);
+
+ port = mm_base_modem_peek_port_qmi (MM_BASE_MODEM (self));
+
+ /* If NAS service is available, assume either signal info or signal strength are supported */
+ if (port)
+ supported = !!mm_qmi_port_peek_client (port, QMI_SERVICE_NAS, MM_QMI_PORT_FLAG_DEFAULT);
+
+ mm_dbg ("Extended signal capabilities %ssupported", supported ? "" : "not ");
+ g_simple_async_result_set_op_res_gboolean (result, supported);
+ g_simple_async_result_complete_in_idle (result);
+ g_object_unref (result);
+}
+
+/*****************************************************************************/
+/* Load extended signal information */
+
+typedef enum {
+ SIGNAL_LOAD_VALUES_STEP_SIGNAL_FIRST,
+ SIGNAL_LOAD_VALUES_STEP_SIGNAL_INFO,
+ SIGNAL_LOAD_VALUES_STEP_SIGNAL_STRENGTH,
+ SIGNAL_LOAD_VALUES_STEP_SIGNAL_LAST
+} SignalLoadValuesStep;
+
+typedef struct {
+ MMSignal *cdma;
+ MMSignal *evdo;
+ MMSignal *gsm;
+ MMSignal *umts;
+ MMSignal *lte;
+} SignalLoadValuesResult;
+
+typedef struct {
+ MMBroadbandModemQmi *self;
+ QmiClientNas *client;
+ GSimpleAsyncResult *result;
+ SignalLoadValuesStep step;
+ SignalLoadValuesResult *values_result;
+} SignalLoadValuesContext;
+
+static void
+signal_load_values_result_free (SignalLoadValuesResult *result)
+{
+ if (result->cdma)
+ g_object_unref (result->cdma);
+ if (result->evdo)
+ g_object_unref (result->evdo);
+ if (result->gsm)
+ g_object_unref (result->gsm);
+ if (result->umts)
+ g_object_unref (result->umts);
+ if (result->lte)
+ g_object_unref (result->lte);
+ g_slice_free (SignalLoadValuesResult, result);
+}
+
+static void
+signal_load_values_context_complete_and_free (SignalLoadValuesContext *ctx)
+{
+ g_simple_async_result_complete (ctx->result);
+ if (ctx->values_result)
+ signal_load_values_result_free (ctx->values_result);
+ g_object_unref (ctx->result);
+ g_object_unref (ctx->self);
+ g_slice_free (SignalLoadValuesContext, ctx);
+}
+
+static gdouble
+get_db_from_sinr_level (QmiNasEvdoSinrLevel level)
+{
+ switch (level) {
+ case QMI_NAS_EVDO_SINR_LEVEL_0: return -9.0;
+ case QMI_NAS_EVDO_SINR_LEVEL_1: return -6;
+ case QMI_NAS_EVDO_SINR_LEVEL_2: return -4.5;
+ case QMI_NAS_EVDO_SINR_LEVEL_3: return -3;
+ case QMI_NAS_EVDO_SINR_LEVEL_4: return -2;
+ case QMI_NAS_EVDO_SINR_LEVEL_5: return 1;
+ case QMI_NAS_EVDO_SINR_LEVEL_6: return 3;
+ case QMI_NAS_EVDO_SINR_LEVEL_7: return 6;
+ case QMI_NAS_EVDO_SINR_LEVEL_8: return +9;
+ default:
+ mm_warn ("Invalid SINR level '%u'", level);
+ return -G_MAXDOUBLE;
+ }
+}
+
+static gboolean
+signal_load_values_finish (MMIfaceModemSignal *self,
+ GAsyncResult *res,
+ MMSignal **cdma,
+ MMSignal **evdo,
+ MMSignal **gsm,
+ MMSignal **umts,
+ MMSignal **lte,
+ GError **error)
+{
+ SignalLoadValuesResult *values_result;
+
+ if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error))
+ return FALSE;
+
+ values_result = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (res));
+ *cdma = values_result->cdma ? g_object_ref (values_result->cdma) : NULL;
+ *evdo = values_result->evdo ? g_object_ref (values_result->evdo) : NULL;
+ *gsm = values_result->gsm ? g_object_ref (values_result->gsm) : NULL;
+ *umts = values_result->umts ? g_object_ref (values_result->umts) : NULL;
+ *lte = values_result->lte ? g_object_ref (values_result->lte) : NULL;
+
+ return TRUE;
+}
+
+static void signal_load_values_context_step (SignalLoadValuesContext *ctx);
+
+static void
+signal_load_values_get_signal_strength_ready (QmiClientNas *client,
+ GAsyncResult *res,
+ SignalLoadValuesContext *ctx)
+{
+ QmiMessageNasGetSignalStrengthOutput *output;
+ GArray *array;
+ gint32 aux_int32;
+ gint16 aux_int16;
+ gint8 aux_int8;
+ QmiNasRadioInterface radio_interface;
+ QmiNasEvdoSinrLevel sinr;
+
+ output = qmi_client_nas_get_signal_strength_finish (client, res, NULL);
+ if (!output || !qmi_message_nas_get_signal_strength_output_get_result (output, NULL)) {
+ /* No hard errors, go on to next step */
+ ctx->step++;
+ signal_load_values_context_step (ctx);
+ if (output)
+ qmi_message_nas_get_signal_strength_output_unref (output);
+ return;
+ }
+
+ /* Good, we have results */
+ ctx->values_result = g_slice_new0 (SignalLoadValuesResult);
+
+ /* RSSI
+ *
+ * We will assume that valid access technologies reported in this output
+ * are the ones which are listed in the RSSI output. If a given access tech
+ * is not given in this list, it will not be considered afterwards (e.g. if
+ * no EV-DO is given in the RSSI list, the SINR level won't be processed,
+ * even if the TLV is available.
+ */
+ if (qmi_message_nas_get_signal_strength_output_get_rssi_list (output, &array, NULL)) {
+ guint i;
+
+ for (i = 0; i < array->len; i++) {
+ QmiMessageNasGetSignalStrengthOutputRssiListElement *element;
+
+ element = &g_array_index (array, QmiMessageNasGetSignalStrengthOutputRssiListElement, i);
+
+ switch (element->radio_interface) {
+ case QMI_NAS_RADIO_INTERFACE_CDMA_1X:
+ if (!ctx->values_result->cdma)
+ ctx->values_result->cdma = mm_signal_new ();
+ mm_signal_set_rssi (ctx->values_result->cdma, (gdouble)element->rssi);
+ break;
+ case QMI_NAS_RADIO_INTERFACE_CDMA_1XEVDO:
+ if (!ctx->values_result->evdo)
+ ctx->values_result->evdo = mm_signal_new ();
+ mm_signal_set_rssi (ctx->values_result->evdo, (gdouble)element->rssi);
+ break;
+ case QMI_NAS_RADIO_INTERFACE_GSM:
+ if (!ctx->values_result->gsm)
+ ctx->values_result->gsm = mm_signal_new ();
+ mm_signal_set_rssi (ctx->values_result->gsm, (gdouble)element->rssi);
+ break;
+ case QMI_NAS_RADIO_INTERFACE_UMTS:
+ if (!ctx->values_result->umts)
+ ctx->values_result->umts = mm_signal_new ();
+ mm_signal_set_rssi (ctx->values_result->umts, (gdouble)element->rssi);
+ break;
+ case QMI_NAS_RADIO_INTERFACE_LTE:
+ if (!ctx->values_result->lte)
+ ctx->values_result->lte = mm_signal_new ();
+ mm_signal_set_rssi (ctx->values_result->lte, (gdouble)element->rssi);
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
+ /* ECIO (CDMA, EV-DO and UMTS) */
+ if (qmi_message_nas_get_signal_strength_output_get_ecio_list (output, &array, NULL)) {
+ guint i;
+
+ for (i = 0; i < array->len; i++) {
+ QmiMessageNasGetSignalStrengthOutputEcioListElement *element;
+
+ element = &g_array_index (array, QmiMessageNasGetSignalStrengthOutputEcioListElement, i);
+
+ switch (element->radio_interface) {
+ case QMI_NAS_RADIO_INTERFACE_CDMA_1X:
+ if (ctx->values_result->cdma)
+ mm_signal_set_ecio (ctx->values_result->cdma, ((gdouble)element->ecio) * (-0.5));
+ break;
+ case QMI_NAS_RADIO_INTERFACE_CDMA_1XEVDO:
+ if (ctx->values_result->evdo)
+ mm_signal_set_ecio (ctx->values_result->evdo, ((gdouble)element->ecio) * (-0.5));
+ break;
+ case QMI_NAS_RADIO_INTERFACE_UMTS:
+ if (ctx->values_result->umts)
+ mm_signal_set_ecio (ctx->values_result->umts, ((gdouble)element->ecio) * (-0.5));
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
+ /* IO (EV-DO) */
+ if (qmi_message_nas_get_signal_strength_output_get_io (output, &aux_int32, NULL)) {
+ if (ctx->values_result->evdo)
+ mm_signal_set_io (ctx->values_result->evdo, (gdouble)aux_int32);
+ }
+
+ /* RSRP (LTE) */
+ if (qmi_message_nas_get_signal_strength_output_get_lte_rsrp (output, &aux_int16, NULL)) {
+ if (ctx->values_result->lte)
+ mm_signal_set_rsrp (ctx->values_result->lte, (gdouble)aux_int16);
+ }
+
+ /* RSRQ (LTE) */
+ if (qmi_message_nas_get_signal_strength_output_get_rsrq (output, &aux_int8, &radio_interface, NULL) &&
+ radio_interface == QMI_NAS_RADIO_INTERFACE_LTE) {
+ if (ctx->values_result->lte)
+ mm_signal_set_rsrq (ctx->values_result->lte, (gdouble)aux_int8);
+ }
+
+ /* SNR (LTE) */
+ if (qmi_message_nas_get_signal_strength_output_get_lte_snr (output, &aux_int16, NULL)) {
+ if (ctx->values_result->lte)
+ mm_signal_set_snr (ctx->values_result->lte, (0.1) * ((gdouble)aux_int16));
+ }
+
+ /* SINR (EV-DO) */
+ if (qmi_message_nas_get_signal_strength_output_get_sinr (output, &sinr, NULL)) {
+ if (ctx->values_result->evdo)
+ mm_signal_set_sinr (ctx->values_result->evdo, get_db_from_sinr_level (sinr));
+ }
+
+ qmi_message_nas_get_signal_strength_output_unref (output);
+
+ /* Go on */
+ ctx->step++;
+ signal_load_values_context_step (ctx);
+}
+
+static void
+signal_load_values_get_signal_info_ready (QmiClientNas *client,
+ GAsyncResult *res,
+ SignalLoadValuesContext *ctx)
+{
+ QmiMessageNasGetSignalInfoOutput *output;
+ gint8 rssi;
+ gint16 ecio;
+ QmiNasEvdoSinrLevel sinr_level;
+ gint32 io;
+ gint8 rsrq;
+ gint16 rsrp;
+ gint16 snr;
+
+ output = qmi_client_nas_get_signal_info_finish (client, res, NULL);
+ if (!output || !qmi_message_nas_get_signal_info_output_get_result (output, NULL)) {
+ /* No hard errors, go on to next step */
+ ctx->step++;
+ signal_load_values_context_step (ctx);
+ if (output)
+ qmi_message_nas_get_signal_info_output_unref (output);
+ return;
+ }
+
+ /* Good, we have results */
+ ctx->values_result = g_slice_new0 (SignalLoadValuesResult);
+
+ /* CDMA */
+ if (qmi_message_nas_get_signal_info_output_get_cdma_signal_strength (output,
+ &rssi,
+ &ecio,
+ NULL)) {
+ ctx->values_result->cdma = mm_signal_new ();
+ mm_signal_set_rssi (ctx->values_result->cdma, (gdouble)rssi);
+ mm_signal_set_ecio (ctx->values_result->cdma, ((gdouble)ecio) * (-0.5));
+ }
+
+ /* HDR... */
+ if (qmi_message_nas_get_signal_info_output_get_hdr_signal_strength (output,
+ &rssi,
+ &ecio,
+ &sinr_level,
+ &io,
+ NULL)) {
+ ctx->values_result->evdo = mm_signal_new ();
+ mm_signal_set_rssi (ctx->values_result->evdo, (gdouble)rssi);
+ mm_signal_set_ecio (ctx->values_result->evdo, ((gdouble)ecio) * (-0.5));
+ mm_signal_set_sinr (ctx->values_result->evdo, get_db_from_sinr_level (sinr_level));
+ mm_signal_set_io (ctx->values_result->evdo, (gdouble)io);
+ }
+
+ /* GSM */
+ if (qmi_message_nas_get_signal_info_output_get_gsm_signal_strength (output,
+ &rssi,
+ NULL)) {
+ ctx->values_result->gsm = mm_signal_new ();
+ mm_signal_set_rssi (ctx->values_result->gsm, (gdouble)rssi);
+ }
+
+ /* WCDMA... */
+ if (qmi_message_nas_get_signal_info_output_get_wcdma_signal_strength (output,
+ &rssi,
+ &ecio,
+ NULL)) {
+ ctx->values_result->umts = mm_signal_new ();
+ mm_signal_set_rssi (ctx->values_result->umts, (gdouble)rssi);
+ mm_signal_set_ecio (ctx->values_result->umts, ((gdouble)ecio) * (-0.5));
+ }
+
+ /* LTE... */
+ if (qmi_message_nas_get_signal_info_output_get_lte_signal_strength (output,
+ &rssi,
+ &rsrq,
+ &rsrp,
+ &snr,
+ NULL)) {
+ ctx->values_result->lte = mm_signal_new ();
+ mm_signal_set_rssi (ctx->values_result->lte, (gdouble)rssi);
+ mm_signal_set_rsrq (ctx->values_result->lte, (gdouble)rsrq);
+ mm_signal_set_rsrp (ctx->values_result->lte, (gdouble)rsrp);
+ mm_signal_set_snr (ctx->values_result->lte, (0.1) * ((gdouble)snr));
+ }
+
+ qmi_message_nas_get_signal_info_output_unref (output);
+
+ /* Keep on */
+ ctx->step++;
+ signal_load_values_context_step (ctx);
+}
+
+static void
+signal_load_values_context_step (SignalLoadValuesContext *ctx)
+{
+
+#define VALUES_RESULT_LOADED(ctx) \
+ (ctx->values_result && \
+ (ctx->values_result->cdma || \
+ ctx->values_result->evdo || \
+ ctx->values_result->gsm || \
+ ctx->values_result->umts || \
+ ctx->values_result->lte))
+
+ switch (ctx->step) {
+ case SIGNAL_LOAD_VALUES_STEP_SIGNAL_FIRST:
+ ctx->step++;
+ /* Fall down */
+
+ case SIGNAL_LOAD_VALUES_STEP_SIGNAL_INFO:
+ if (qmi_client_check_version (QMI_CLIENT (ctx->client), 1, 8)) {
+ qmi_client_nas_get_signal_info (ctx->client,
+ NULL,
+ 5,
+ NULL,
+ (GAsyncReadyCallback)signal_load_values_get_signal_info_ready,
+ ctx);
+ return;
+ }
+ ctx->step++;
+ /* Fall down */
+
+ case SIGNAL_LOAD_VALUES_STEP_SIGNAL_STRENGTH:
+ /* If already loaded with signal info, don't try signal strength */
+ if (!VALUES_RESULT_LOADED (ctx)) {
+ QmiMessageNasGetSignalStrengthInput *input;
+
+ input = qmi_message_nas_get_signal_strength_input_new ();
+ qmi_message_nas_get_signal_strength_input_set_request_mask (
+ input,
+ (QMI_NAS_SIGNAL_STRENGTH_REQUEST_RSSI |
+ QMI_NAS_SIGNAL_STRENGTH_REQUEST_ECIO |
+ QMI_NAS_SIGNAL_STRENGTH_REQUEST_IO |
+ QMI_NAS_SIGNAL_STRENGTH_REQUEST_SINR |
+ QMI_NAS_SIGNAL_STRENGTH_REQUEST_RSRQ |
+ QMI_NAS_SIGNAL_STRENGTH_REQUEST_LTE_SNR |
+ QMI_NAS_SIGNAL_STRENGTH_REQUEST_LTE_RSRP),
+ NULL);
+ qmi_client_nas_get_signal_strength (ctx->client,
+ input,
+ 5,
+ NULL,
+ (GAsyncReadyCallback)signal_load_values_get_signal_strength_ready,
+ ctx);
+ qmi_message_nas_get_signal_strength_input_unref (input);
+ return;
+ }
+ ctx->step++;
+ /* Fall down */
+
+ case SIGNAL_LOAD_VALUES_STEP_SIGNAL_LAST:
+ /* If any result is set, succeed */
+ if (VALUES_RESULT_LOADED (ctx)) {
+ g_simple_async_result_set_op_res_gpointer (ctx->result,
+ ctx->values_result,
+ (GDestroyNotify)signal_load_values_result_free);
+ ctx->values_result = NULL;
+ } else {
+ g_simple_async_result_set_error (ctx->result,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "No way to load extended signal information");
+ }
+ signal_load_values_context_complete_and_free (ctx);
+ return;
+ }
+
+ g_assert_not_reached ();
+
+#undef VALUES_RESULT_LOADED
+}
+
+static void
+signal_load_values (MMIfaceModemSignal *self,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ SignalLoadValuesContext *ctx;
+ QmiClient *client = NULL;
+
+ mm_dbg ("loading extended signal information...");
+
+ if (!ensure_qmi_client (MM_BROADBAND_MODEM_QMI (self),
+ QMI_SERVICE_NAS, &client,
+ callback, user_data))
+ return;
+
+ ctx = g_slice_new0 (SignalLoadValuesContext);
+ ctx->self = g_object_ref (self);
+ ctx->client = g_object_ref (client);
+ ctx->result = g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ signal_load_values);
+ ctx->step = SIGNAL_LOAD_VALUES_STEP_SIGNAL_FIRST;
+
+ signal_load_values_context_step (ctx);
+}
+
+/*****************************************************************************/
/* First enabling step */
static gboolean
@@ -8567,7 +10086,8 @@ initialization_started (MMBroadbandModem *self,
ctx->services[1] = QMI_SERVICE_NAS;
ctx->services[2] = QMI_SERVICE_WMS;
ctx->services[3] = QMI_SERVICE_PDS;
- ctx->services[4] = QMI_SERVICE_UNKNOWN;
+ ctx->services[4] = QMI_SERVICE_OMA;
+ ctx->services[5] = QMI_SERVICE_UNKNOWN;
/* Now open our QMI port */
mm_qmi_port_open (ctx->qmi,
@@ -8794,6 +10314,8 @@ iface_modem_cdma_init (MMIfaceModemCdma *iface)
iface->load_activation_state_finish = modem_cdma_load_activation_state_finish;
iface->activate = modem_cdma_activate;
iface->activate_finish = modem_cdma_activate_finish;
+ iface->activate_manual = modem_cdma_activate_manual;
+ iface->activate_manual_finish = modem_cdma_activate_manual_finish;
}
static void
@@ -8836,6 +10358,40 @@ iface_modem_location_init (MMIfaceModemLocation *iface)
}
static void
+iface_modem_signal_init (MMIfaceModemSignal *iface)
+{
+ iface->check_support = signal_check_support;
+ iface->check_support_finish = signal_check_support_finish;
+ iface->load_values = signal_load_values;
+ iface->load_values_finish = signal_load_values_finish;
+}
+
+static void
+iface_modem_oma_init (MMIfaceModemOma *iface)
+{
+ iface->check_support = oma_check_support;
+ iface->check_support_finish = oma_check_support_finish;
+ iface->load_features = oma_load_features;
+ iface->load_features_finish = oma_load_features_finish;
+ iface->setup = oma_setup;
+ iface->setup_finish = oma_setup_finish;
+ iface->start_client_initiated_session = oma_start_client_initiated_session;
+ iface->start_client_initiated_session_finish = oma_start_client_initiated_session_finish;
+ iface->accept_network_initiated_session = oma_accept_network_initiated_session;
+ iface->accept_network_initiated_session_finish = oma_accept_network_initiated_session_finish;
+ iface->cancel_session = oma_cancel_session;
+ iface->cancel_session_finish = oma_cancel_session_finish;
+ iface->setup_unsolicited_events = oma_setup_unsolicited_events;
+ iface->setup_unsolicited_events_finish = common_oma_setup_cleanup_unsolicited_events_finish;
+ iface->cleanup_unsolicited_events = oma_cleanup_unsolicited_events;
+ iface->cleanup_unsolicited_events_finish = common_oma_setup_cleanup_unsolicited_events_finish;
+ iface->enable_unsolicited_events = oma_enable_unsolicited_events;
+ iface->enable_unsolicited_events_finish = common_oma_enable_disable_unsolicited_events_finish;
+ iface->disable_unsolicited_events = oma_disable_unsolicited_events;
+ iface->disable_unsolicited_events_finish = common_oma_enable_disable_unsolicited_events_finish;
+}
+
+static void
iface_modem_firmware_init (MMIfaceModemFirmware *iface)
{
iface->check_support = firmware_check_support;
diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c
index 13fc377..8e111c9 100644
--- a/src/mm-broadband-modem.c
+++ b/src/mm-broadband-modem.c
@@ -37,9 +37,12 @@
#include "mm-iface-modem-messaging.h"
#include "mm-iface-modem-time.h"
#include "mm-iface-modem-firmware.h"
+#include "mm-iface-modem-signal.h"
+#include "mm-iface-modem-oma.h"
#include "mm-broadband-bearer.h"
#include "mm-bearer-list.h"
#include "mm-sms-list.h"
+#include "mm-sms-part-3gpp.h"
#include "mm-sim.h"
#include "mm-log.h"
#include "mm-modem-helpers.h"
@@ -56,6 +59,8 @@ static void iface_modem_simple_init (MMIfaceModemSimple *iface);
static void iface_modem_location_init (MMIfaceModemLocation *iface);
static void iface_modem_messaging_init (MMIfaceModemMessaging *iface);
static void iface_modem_time_init (MMIfaceModemTime *iface);
+static void iface_modem_signal_init (MMIfaceModemSignal *iface);
+static void iface_modem_oma_init (MMIfaceModemOma *iface);
static void iface_modem_firmware_init (MMIfaceModemFirmware *iface);
G_DEFINE_TYPE_EXTENDED (MMBroadbandModem, mm_broadband_modem, MM_TYPE_BASE_MODEM, 0,
@@ -67,6 +72,8 @@ G_DEFINE_TYPE_EXTENDED (MMBroadbandModem, mm_broadband_modem, MM_TYPE_BASE_MODEM
G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_LOCATION, iface_modem_location_init)
G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_MESSAGING, iface_modem_messaging_init)
G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_TIME, iface_modem_time_init)
+ G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_SIGNAL, iface_modem_signal_init)
+ G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_OMA, iface_modem_oma_init)
G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_FIRMWARE, iface_modem_firmware_init))
enum {
@@ -79,6 +86,8 @@ enum {
PROP_MODEM_LOCATION_DBUS_SKELETON,
PROP_MODEM_MESSAGING_DBUS_SKELETON,
PROP_MODEM_TIME_DBUS_SKELETON,
+ PROP_MODEM_SIGNAL_DBUS_SKELETON,
+ PROP_MODEM_OMA_DBUS_SKELETON,
PROP_MODEM_FIRMWARE_DBUS_SKELETON,
PROP_MODEM_SIM,
PROP_MODEM_BEARER_LIST,
@@ -184,6 +193,14 @@ struct _MMBroadbandModemPrivate {
/* Properties */
GObject *modem_time_dbus_skeleton;
+ /*<--- Modem Signal interface --->*/
+ /* Properties */
+ GObject *modem_signal_dbus_skeleton;
+
+ /*<--- Modem OMA interface --->*/
+ /* Properties */
+ GObject *modem_oma_dbus_skeleton;
+
/*<--- Modem Firmware interface --->*/
/* Properties */
GObject *modem_firmware_dbus_skeleton;
@@ -275,7 +292,7 @@ modem_create_bearer (MMIfaceModem *self,
}
/*****************************************************************************/
-/* Create SIM (Modem inteface) */
+/* Create SIM (Modem interface) */
static MMSim *
modem_create_sim_finish (MMIfaceModem *self,
@@ -590,9 +607,12 @@ mode_pref_qcdm_ready (MMQcdmSerialPort *port,
err = qcdm_result_get_u8 (result, QCDM_CMD_NV_GET_MODE_PREF_ITEM_MODE_PREF, &pref);
if (err) {
mm_dbg ("Failed to read NV ModePref: %d", err);
+ qcdm_result_unref (result);
goto at_caps;
}
+ qcdm_result_unref (result);
+
/* Only parse explicit modes; for 'auto' just fall back to whatever
* the AT current capabilities probing figures out.
*/
@@ -1727,19 +1747,16 @@ signal_quality_csq_ready (MMBroadbandModem *self,
result_str = mm_strip_tag (result_str, "+CSQ:");
if (sscanf (result_str, "%d, %d", &quality, &ber)) {
- /* 99 means unknown */
if (quality == 99) {
- g_simple_async_result_take_error (
- ctx->result,
- mm_mobile_equipment_error_for_code (MM_MOBILE_EQUIPMENT_ERROR_NO_NETWORK));
+ /* 99 means unknown, no service, etc */
+ quality = 0;
} else {
/* Normalize the quality */
quality = CLAMP (quality, 0, 31) * 100 / 31;
- g_simple_async_result_set_op_res_gpointer (ctx->result,
- GUINT_TO_POINTER (quality),
- NULL);
}
-
+ g_simple_async_result_set_op_res_gpointer (ctx->result,
+ GUINT_TO_POINTER (quality),
+ NULL);
signal_quality_context_complete_and_free (ctx);
return;
}
@@ -1971,7 +1988,8 @@ modem_load_signal_quality (MMIfaceModem *self,
/* Check whether we can get a non-connected AT port */
ctx->port = (MMSerialPort *)mm_base_modem_get_best_at_port (MM_BASE_MODEM (self), &error);
if (ctx->port) {
- if (MM_BROADBAND_MODEM (self)->priv->modem_cind_supported)
+ if (MM_BROADBAND_MODEM (self)->priv->modem_cind_supported &&
+ CIND_INDICATOR_IS_VALID (MM_BROADBAND_MODEM (self)->priv->modem_cind_indicator_signal_quality))
signal_quality_cind (ctx);
else
signal_quality_csq (ctx);
@@ -3423,6 +3441,49 @@ modem_3gpp_load_operator_name (MMIfaceModem3gpp *self,
}
/*****************************************************************************/
+/* Subscription State Loading (3GPP interface) */
+
+static MMModem3gppSubscriptionState
+modem_3gpp_load_subscription_state_finish (MMIfaceModem3gpp *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error))
+ return MM_MODEM_3GPP_SUBSCRIPTION_STATE_UNKNOWN;
+
+ return (MMModem3gppSubscriptionState) GPOINTER_TO_UINT (
+ g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (res)));
+}
+
+static void
+modem_3gpp_load_subscription_state (MMIfaceModem3gpp *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ GSimpleAsyncResult *result;
+
+ result = g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ modem_3gpp_load_subscription_state);
+
+ /* Reloading subscription state only occurs on a successfully registered
+ * modem. (Although the 3GPP interface does not reflect this until after
+ * loading operator information completes.)
+ * By default, we can assume that successful registration implies a
+ * provisioned SIM.
+ */
+ mm_dbg ("Load subscription state: Marking the SIM as provisioned.");
+ g_simple_async_result_set_op_res_gpointer (
+ result,
+ GUINT_TO_POINTER (MM_MODEM_3GPP_SUBSCRIPTION_STATE_PROVISIONED),
+ NULL);
+
+ g_simple_async_result_complete_in_idle (result);
+ g_object_unref (result);
+}
+
+/*****************************************************************************/
/* Unsolicited registration messages handling (3GPP interface) */
static gboolean
@@ -4230,7 +4291,7 @@ unsolicited_registration_events_context_step (UnsolicitedRegistrationEventsConte
/* All done!
* If we have any error reported, we'll propagate it. EPS errors take
- * precendence over PS errors and PS errors take precendence over CS errors. */
+ * precedence over PS errors and PS errors take precedence over CS errors. */
if (ctx->eps_error) {
g_simple_async_result_take_error (ctx->result, ctx->eps_error);
ctx->eps_error = NULL;
@@ -5518,7 +5579,7 @@ sms_part_ready (MMBroadbandModem *self,
{
MMSmsPart *part;
gint rv, status, tpdu_len;
- gchar pdu[SMS_MAX_PDU_LEN + 1];
+ gchar pdu[MM_SMS_PART_3GPP_MAX_PDU_LEN + 1];
const gchar *response;
GError *error = NULL;
@@ -5536,7 +5597,7 @@ sms_part_ready (MMBroadbandModem *self,
return;
}
- rv = sscanf (response, "+CMGR: %d,,%d %" G_STRINGIFY (SMS_MAX_PDU_LEN) "s",
+ rv = sscanf (response, "+CMGR: %d,,%d %" G_STRINGIFY (MM_SMS_PART_3GPP_MAX_PDU_LEN) "s",
&status, &tpdu_len, pdu);
if (rv != 3) {
error = g_error_new (MM_CORE_ERROR,
@@ -5548,7 +5609,7 @@ sms_part_ready (MMBroadbandModem *self,
return;
}
- part = mm_sms_part_new_from_pdu (ctx->idx, pdu, &error);
+ part = mm_sms_part_3gpp_new_from_pdu (ctx->idx, pdu, &error);
if (part) {
mm_dbg ("Correctly parsed PDU (%d)", ctx->idx);
mm_iface_modem_messaging_take_part (MM_IFACE_MODEM_MESSAGING (self),
@@ -5658,7 +5719,7 @@ cds_received (MMAtSerialPort *port,
if (!pdu)
return;
- part = mm_sms_part_new_from_pdu (SMS_PART_INVALID_INDEX, pdu, &error);
+ part = mm_sms_part_3gpp_new_from_pdu (SMS_PART_INVALID_INDEX, pdu, &error);
if (part) {
mm_dbg ("Correctly parsed non-stored PDU");
mm_iface_modem_messaging_take_part (MM_IFACE_MODEM_MESSAGING (self),
@@ -6025,7 +6086,7 @@ sms_pdu_part_list_ready (MMBroadbandModem *self,
MM3gppPduInfo *info = l->data;
MMSmsPart *part;
- part = mm_sms_part_new_from_pdu (info->index, info->pdu, &error);
+ part = mm_sms_part_3gpp_new_from_pdu (info->index, info->pdu, &error);
if (part) {
mm_dbg ("Correctly parsed PDU (%d)", info->index);
mm_iface_modem_messaging_take_part (MM_IFACE_MODEM_MESSAGING (self),
@@ -7395,10 +7456,10 @@ enable_location_gathering (MMIfaceModemLocation *self,
mm_iface_modem_is_3gpp (MM_IFACE_MODEM (self))) {
/* Reload registration to get LAC/CI */
mm_iface_modem_3gpp_run_registration_checks (MM_IFACE_MODEM_3GPP (self), NULL, NULL);
- /* Reload operator to get MCC/MNC */
+ /* Reload registration information to get MCC/MNC */
if (MM_BROADBAND_MODEM (self)->priv->modem_3gpp_registration_state == MM_MODEM_3GPP_REGISTRATION_STATE_HOME ||
MM_BROADBAND_MODEM (self)->priv->modem_3gpp_registration_state == MM_MODEM_3GPP_REGISTRATION_STATE_ROAMING)
- mm_iface_modem_3gpp_reload_current_operator (MM_IFACE_MODEM_3GPP (self), NULL, NULL);
+ mm_iface_modem_3gpp_reload_current_registration_info (MM_IFACE_MODEM_3GPP (self), NULL, NULL);
}
/* Done we are */
@@ -7925,6 +7986,8 @@ typedef enum {
DISABLING_STEP_DISCONNECT_BEARERS,
DISABLING_STEP_IFACE_SIMPLE,
DISABLING_STEP_IFACE_FIRMWARE,
+ DISABLING_STEP_IFACE_SIGNAL,
+ DISABLING_STEP_IFACE_OMA,
DISABLING_STEP_IFACE_TIME,
DISABLING_STEP_IFACE_MESSAGING,
DISABLING_STEP_IFACE_LOCATION,
@@ -8013,7 +8076,7 @@ disable_finish (MMBaseModem *self,
result, \
&error)) { \
if (FATAL_ERRORS) { \
- g_simple_async_result_take_error (G_SIMPLE_ASYNC_RESULT (ctx->result), error); \
+ g_simple_async_result_take_error (ctx->result, error); \
disabling_context_complete_and_free (ctx); \
return; \
} \
@@ -8035,7 +8098,9 @@ INTERFACE_DISABLE_READY_FN (iface_modem_3gpp_ussd, MM_IFACE_MODEM_3GPP_USSD, TRU
INTERFACE_DISABLE_READY_FN (iface_modem_cdma, MM_IFACE_MODEM_CDMA, TRUE)
INTERFACE_DISABLE_READY_FN (iface_modem_location, MM_IFACE_MODEM_LOCATION, FALSE)
INTERFACE_DISABLE_READY_FN (iface_modem_messaging, MM_IFACE_MODEM_MESSAGING, FALSE)
+INTERFACE_DISABLE_READY_FN (iface_modem_signal, MM_IFACE_MODEM_SIGNAL, FALSE)
INTERFACE_DISABLE_READY_FN (iface_modem_time, MM_IFACE_MODEM_TIME, FALSE)
+INTERFACE_DISABLE_READY_FN (iface_modem_oma, MM_IFACE_MODEM_OMA, FALSE)
static void
bearer_list_disconnect_all_bearers_ready (MMBearerList *list,
@@ -8045,7 +8110,7 @@ bearer_list_disconnect_all_bearers_ready (MMBearerList *list,
GError *error = NULL;
if (!mm_bearer_list_disconnect_all_bearers_finish (list, res, &error)) {
- g_simple_async_result_take_error (G_SIMPLE_ASYNC_RESULT (ctx->result), error);
+ g_simple_async_result_take_error (ctx->result, error);
disabling_context_complete_and_free (ctx);
return;
}
@@ -8064,7 +8129,7 @@ disabling_wait_for_final_state_ready (MMIfaceModem *self,
ctx->previous_state = mm_iface_modem_wait_for_final_state_finish (self, res, &error);
if (error) {
- g_simple_async_result_take_error (G_SIMPLE_ASYNC_RESULT (ctx->result), error);
+ g_simple_async_result_take_error (ctx->result, error);
disabling_context_complete_and_free (ctx);
return;
}
@@ -8133,6 +8198,30 @@ disabling_step (DisablingContext *ctx)
/* Fall down to next step */
ctx->step++;
+ case DISABLING_STEP_IFACE_SIGNAL:
+ if (ctx->self->priv->modem_signal_dbus_skeleton) {
+ mm_dbg ("Modem has extended signal reporting capabilities, disabling the Signal interface...");
+ /* Disabling the Modem Signal interface */
+ mm_iface_modem_signal_disable (MM_IFACE_MODEM_SIGNAL (ctx->self),
+ (GAsyncReadyCallback)iface_modem_signal_disable_ready,
+ ctx);
+ return;
+ }
+ /* Fall down to next step */
+ ctx->step++;
+
+ case DISABLING_STEP_IFACE_OMA:
+ if (ctx->self->priv->modem_oma_dbus_skeleton) {
+ mm_dbg ("Modem has OMA capabilities, disabling the OMA interface...");
+ /* Disabling the Modem Oma interface */
+ mm_iface_modem_oma_disable (MM_IFACE_MODEM_OMA (ctx->self),
+ (GAsyncReadyCallback)iface_modem_oma_disable_ready,
+ ctx);
+ return;
+ }
+ /* Fall down to next step */
+ ctx->step++;
+
case DISABLING_STEP_IFACE_TIME:
if (ctx->self->priv->modem_time_dbus_skeleton) {
mm_dbg ("Modem has time capabilities, disabling the Time interface...");
@@ -8225,7 +8314,7 @@ disabling_step (DisablingContext *ctx)
case DISABLING_STEP_LAST:
ctx->disabled = TRUE;
/* All disabled without errors! */
- g_simple_async_result_set_op_res_gboolean (G_SIMPLE_ASYNC_RESULT (ctx->result), TRUE);
+ g_simple_async_result_set_op_res_gboolean (ctx->result, TRUE);
disabling_context_complete_and_free (ctx);
return;
}
@@ -8264,6 +8353,8 @@ typedef enum {
ENABLING_STEP_IFACE_LOCATION,
ENABLING_STEP_IFACE_MESSAGING,
ENABLING_STEP_IFACE_TIME,
+ ENABLING_STEP_IFACE_SIGNAL,
+ ENABLING_STEP_IFACE_OMA,
ENABLING_STEP_IFACE_FIRMWARE,
ENABLING_STEP_IFACE_SIMPLE,
ENABLING_STEP_LAST,
@@ -8340,7 +8431,7 @@ enable_finish (MMBaseModem *self,
result, \
&error)) { \
if (FATAL_ERRORS) { \
- g_simple_async_result_take_error (G_SIMPLE_ASYNC_RESULT (ctx->result), error); \
+ g_simple_async_result_take_error (ctx->result, error); \
enabling_context_complete_and_free (ctx); \
return; \
} \
@@ -8361,7 +8452,9 @@ INTERFACE_ENABLE_READY_FN (iface_modem_3gpp_ussd, MM_IFACE_MODEM_3GPP_USSD, TRUE
INTERFACE_ENABLE_READY_FN (iface_modem_cdma, MM_IFACE_MODEM_CDMA, TRUE)
INTERFACE_ENABLE_READY_FN (iface_modem_location, MM_IFACE_MODEM_LOCATION, FALSE)
INTERFACE_ENABLE_READY_FN (iface_modem_messaging, MM_IFACE_MODEM_MESSAGING, FALSE)
+INTERFACE_ENABLE_READY_FN (iface_modem_signal, MM_IFACE_MODEM_SIGNAL, FALSE)
INTERFACE_ENABLE_READY_FN (iface_modem_time, MM_IFACE_MODEM_TIME, FALSE)
+INTERFACE_ENABLE_READY_FN (iface_modem_oma, MM_IFACE_MODEM_OMA, FALSE)
static void
enabling_started_ready (MMBroadbandModem *self,
@@ -8371,7 +8464,7 @@ enabling_started_ready (MMBroadbandModem *self,
GError *error = NULL;
if (!MM_BROADBAND_MODEM_GET_CLASS (self)->enabling_started_finish (self, result, &error)) {
- g_simple_async_result_take_error (G_SIMPLE_ASYNC_RESULT (ctx->result), error);
+ g_simple_async_result_take_error (ctx->result, error);
enabling_context_complete_and_free (ctx);
return;
}
@@ -8390,7 +8483,7 @@ enabling_wait_for_final_state_ready (MMIfaceModem *self,
ctx->previous_state = mm_iface_modem_wait_for_final_state_finish (self, res, &error);
if (error) {
- g_simple_async_result_take_error (G_SIMPLE_ASYNC_RESULT (ctx->result), error);
+ g_simple_async_result_take_error (ctx->result, error);
enabling_context_complete_and_free (ctx);
return;
}
@@ -8531,6 +8624,32 @@ enabling_step (EnablingContext *ctx)
/* Fall down to next step */
ctx->step++;
+ case ENABLING_STEP_IFACE_SIGNAL:
+ if (ctx->self->priv->modem_signal_dbus_skeleton) {
+ mm_dbg ("Modem has extended signal reporting capabilities, enabling the Signal interface...");
+ /* Enabling the Modem Signal interface */
+ mm_iface_modem_signal_enable (MM_IFACE_MODEM_SIGNAL (ctx->self),
+ ctx->cancellable,
+ (GAsyncReadyCallback)iface_modem_signal_enable_ready,
+ ctx);
+ return;
+ }
+ /* Fall down to next step */
+ ctx->step++;
+
+ case ENABLING_STEP_IFACE_OMA:
+ if (ctx->self->priv->modem_oma_dbus_skeleton) {
+ mm_dbg ("Modem has OMA capabilities, enabling the OMA interface...");
+ /* Enabling the Modem Oma interface */
+ mm_iface_modem_oma_enable (MM_IFACE_MODEM_OMA (ctx->self),
+ ctx->cancellable,
+ (GAsyncReadyCallback)iface_modem_oma_enable_ready,
+ ctx);
+ return;
+ }
+ /* Fall down to next step */
+ ctx->step++;
+
case ENABLING_STEP_IFACE_FIRMWARE:
/* Fall down to next step */
ctx->step++;
@@ -8542,7 +8661,7 @@ enabling_step (EnablingContext *ctx)
case ENABLING_STEP_LAST:
ctx->enabled = TRUE;
/* All enabled without errors! */
- g_simple_async_result_set_op_res_gboolean (G_SIMPLE_ASYNC_RESULT (ctx->result), TRUE);
+ g_simple_async_result_set_op_res_gboolean (ctx->result, TRUE);
enabling_context_complete_and_free (ctx);
return;
}
@@ -8606,7 +8725,7 @@ enable (MMBaseModem *self,
case MM_MODEM_STATE_ENABLING:
g_simple_async_result_set_error (result,
MM_CORE_ERROR,
- MM_CORE_ERROR_WRONG_STATE,
+ MM_CORE_ERROR_IN_PROGRESS,
"Cannot enable modem: "
"already being enabled");
break;
@@ -8641,6 +8760,8 @@ typedef enum {
INITIALIZE_STEP_IFACE_LOCATION,
INITIALIZE_STEP_IFACE_MESSAGING,
INITIALIZE_STEP_IFACE_TIME,
+ INITIALIZE_STEP_IFACE_SIGNAL,
+ INITIALIZE_STEP_IFACE_OMA,
INITIALIZE_STEP_IFACE_FIRMWARE,
INITIALIZE_STEP_IFACE_SIMPLE,
INITIALIZE_STEP_LAST,
@@ -8836,6 +8957,8 @@ INTERFACE_INIT_READY_FN (iface_modem_cdma, MM_IFACE_MODEM_CDMA, TRUE)
INTERFACE_INIT_READY_FN (iface_modem_location, MM_IFACE_MODEM_LOCATION, FALSE)
INTERFACE_INIT_READY_FN (iface_modem_messaging, MM_IFACE_MODEM_MESSAGING, FALSE)
INTERFACE_INIT_READY_FN (iface_modem_time, MM_IFACE_MODEM_TIME, FALSE)
+INTERFACE_INIT_READY_FN (iface_modem_signal, MM_IFACE_MODEM_SIGNAL, FALSE)
+INTERFACE_INIT_READY_FN (iface_modem_oma, MM_IFACE_MODEM_OMA, FALSE)
INTERFACE_INIT_READY_FN (iface_modem_firmware, MM_IFACE_MODEM_FIRMWARE, FALSE)
static void
@@ -8948,6 +9071,22 @@ initialize_step (InitializeContext *ctx)
ctx);
return;
+ case INITIALIZE_STEP_IFACE_SIGNAL:
+ /* Initialize the Signal interface */
+ mm_iface_modem_signal_initialize (MM_IFACE_MODEM_SIGNAL (ctx->self),
+ ctx->cancellable,
+ (GAsyncReadyCallback)iface_modem_signal_initialize_ready,
+ ctx);
+ return;
+
+ case INITIALIZE_STEP_IFACE_OMA:
+ /* Initialize the Oma interface */
+ mm_iface_modem_oma_initialize (MM_IFACE_MODEM_OMA (ctx->self),
+ ctx->cancellable,
+ (GAsyncReadyCallback)iface_modem_oma_initialize_ready,
+ ctx);
+ return;
+
case INITIALIZE_STEP_IFACE_FIRMWARE:
/* Initialize the Firmware interface */
mm_iface_modem_firmware_initialize (MM_IFACE_MODEM_FIRMWARE (ctx->self),
@@ -9011,7 +9150,7 @@ initialize_step (InitializeContext *ctx)
MM_MODEM_STATE_DISABLED,
MM_MODEM_STATE_CHANGE_REASON_UNKNOWN);
- g_simple_async_result_set_op_res_gboolean (G_SIMPLE_ASYNC_RESULT (ctx->result), TRUE);
+ g_simple_async_result_set_op_res_gboolean (ctx->result, TRUE);
initialize_context_complete_and_free (ctx);
return;
}
@@ -9062,7 +9201,7 @@ initialize (MMBaseModem *self,
case MM_MODEM_STATE_INITIALIZING:
g_simple_async_result_set_error (result,
MM_CORE_ERROR,
- MM_CORE_ERROR_WRONG_STATE,
+ MM_CORE_ERROR_IN_PROGRESS,
"Cannot initialize modem: "
"already being initialized");
break;
@@ -9189,6 +9328,14 @@ set_property (GObject *object,
g_clear_object (&self->priv->modem_time_dbus_skeleton);
self->priv->modem_time_dbus_skeleton = g_value_dup_object (value);
break;
+ case PROP_MODEM_SIGNAL_DBUS_SKELETON:
+ g_clear_object (&self->priv->modem_signal_dbus_skeleton);
+ self->priv->modem_signal_dbus_skeleton = g_value_dup_object (value);
+ break;
+ case PROP_MODEM_OMA_DBUS_SKELETON:
+ g_clear_object (&self->priv->modem_oma_dbus_skeleton);
+ self->priv->modem_oma_dbus_skeleton = g_value_dup_object (value);
+ break;
case PROP_MODEM_FIRMWARE_DBUS_SKELETON:
g_clear_object (&self->priv->modem_firmware_dbus_skeleton);
self->priv->modem_firmware_dbus_skeleton = g_value_dup_object (value);
@@ -9284,6 +9431,12 @@ get_property (GObject *object,
case PROP_MODEM_TIME_DBUS_SKELETON:
g_value_set_object (value, self->priv->modem_time_dbus_skeleton);
break;
+ case PROP_MODEM_SIGNAL_DBUS_SKELETON:
+ g_value_set_object (value, self->priv->modem_signal_dbus_skeleton);
+ break;
+ case PROP_MODEM_OMA_DBUS_SKELETON:
+ g_value_set_object (value, self->priv->modem_oma_dbus_skeleton);
+ break;
case PROP_MODEM_FIRMWARE_DBUS_SKELETON:
g_value_set_object (value, self->priv->modem_firmware_dbus_skeleton);
break;
@@ -9517,6 +9670,8 @@ iface_modem_3gpp_init (MMIfaceModem3gpp *iface)
iface->load_operator_code_finish = modem_3gpp_load_operator_code_finish;
iface->load_operator_name = modem_3gpp_load_operator_name;
iface->load_operator_name_finish = modem_3gpp_load_operator_name_finish;
+ iface->load_subscription_state = modem_3gpp_load_subscription_state;
+ iface->load_subscription_state_finish = modem_3gpp_load_subscription_state_finish;
iface->run_registration_checks = modem_3gpp_run_registration_checks;
iface->run_registration_checks_finish = modem_3gpp_run_registration_checks_finish;
iface->register_in_network = modem_3gpp_register_in_network;
@@ -9623,6 +9778,16 @@ iface_modem_time_init (MMIfaceModemTime *iface)
}
static void
+iface_modem_signal_init (MMIfaceModemSignal *iface)
+{
+}
+
+static void
+iface_modem_oma_init (MMIfaceModemOma *iface)
+{
+}
+
+static void
iface_modem_firmware_init (MMIfaceModemFirmware *iface)
{
}
@@ -9691,6 +9856,14 @@ mm_broadband_modem_class_init (MMBroadbandModemClass *klass)
MM_IFACE_MODEM_TIME_DBUS_SKELETON);
g_object_class_override_property (object_class,
+ PROP_MODEM_SIGNAL_DBUS_SKELETON,
+ MM_IFACE_MODEM_SIGNAL_DBUS_SKELETON);
+
+ g_object_class_override_property (object_class,
+ PROP_MODEM_OMA_DBUS_SKELETON,
+ MM_IFACE_MODEM_OMA_DBUS_SKELETON);
+
+ g_object_class_override_property (object_class,
PROP_MODEM_FIRMWARE_DBUS_SKELETON,
MM_IFACE_MODEM_FIRMWARE_DBUS_SKELETON);
diff --git a/src/mm-error-helpers.c b/src/mm-error-helpers.c
index 6e63b1b..e922cbb 100644
--- a/src/mm-error-helpers.c
+++ b/src/mm-error-helpers.c
@@ -50,7 +50,7 @@ mm_connection_error_for_code (MMConnectionError code)
break;
default:
- g_warning ("Invalid connection error code: %u", code);
+ g_debug ("Invalid connection error code: %u", code);
/* uhm... make something up (yes, ok, lie!). */
code = MM_CONNECTION_ERROR_NO_CARRIER;
msg = "No carrier";
@@ -127,7 +127,7 @@ mm_mobile_equipment_error_for_code (MMMobileEquipmentError code)
}
/* Not found? Then, default */
- g_warning ("Invalid mobile equipment error code: %u", (guint)code);
+ g_debug ("Invalid mobile equipment error code: %u", (guint)code);
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
MM_MOBILE_EQUIPMENT_ERROR_UNKNOWN,
"Unknown error");
@@ -163,8 +163,8 @@ mm_mobile_equipment_error_for_string (const gchar *str)
/* Not found? Then, default */
if (!msg) {
- g_warning ("Invalid mobile equipment error string: '%s' (%s)",
- str, buf);
+ g_debug ("Invalid mobile equipment error string: '%s' (%s)",
+ str, buf);
code = MM_MOBILE_EQUIPMENT_ERROR_UNKNOWN;
msg = "Unknown error";
}
@@ -215,7 +215,7 @@ mm_message_error_for_code (MMMessageError code)
}
/* Not found? Then, default */
- g_warning ("Invalid message error code: %u", (guint)code);
+ g_debug ("Invalid message error code: %u", (guint)code);
return g_error_new (MM_MESSAGE_ERROR,
MM_MESSAGE_ERROR_UNKNOWN,
"Unknown error");
@@ -251,8 +251,8 @@ mm_message_error_for_string (const gchar *str)
/* Not found? Then, default */
if (!msg) {
- g_warning ("Invalid message error string: '%s' (%s)",
- str, buf);
+ g_debug ("Invalid message error string: '%s' (%s)",
+ str, buf);
code = MM_MESSAGE_ERROR_UNKNOWN;
msg = "Unknown error";
}
diff --git a/src/mm-iface-modem-3gpp.c b/src/mm-iface-modem-3gpp.c
index 53399d5..d6c149a 100644
--- a/src/mm-iface-modem-3gpp.c
+++ b/src/mm-iface-modem-3gpp.c
@@ -64,6 +64,10 @@ mm_iface_modem_3gpp_bind_simple_status (MMIfaceModem3gpp *self,
status, MM_SIMPLE_PROPERTY_3GPP_OPERATOR_NAME,
G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
+ g_object_bind_property (skeleton, "subscription-state",
+ status, MM_SIMPLE_PROPERTY_3GPP_SUBSCRIPTION_STATE,
+ G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
+
g_object_unref (skeleton);
}
@@ -75,7 +79,7 @@ typedef struct {
MMModem3gppRegistrationState eps;
gboolean manual_registration;
GCancellable *pending_registration_cancellable;
- gboolean reloading_operator;
+ gboolean reloading_registration_info;
} RegistrationStateContext;
static void
@@ -760,33 +764,34 @@ typedef struct {
GSimpleAsyncResult *result;
gboolean operator_code_loaded;
gboolean operator_name_loaded;
-} ReloadCurrentOperatorContext;
+ gboolean subscription_state_loaded;
+} ReloadCurrentRegistrationInfoContext;
static void
-reload_current_operator_context_complete_and_free (ReloadCurrentOperatorContext *ctx)
+reload_current_registration_info_context_complete_and_free (ReloadCurrentRegistrationInfoContext *ctx)
{
g_simple_async_result_complete_in_idle (ctx->result);
g_object_unref (ctx->result);
if (ctx->skeleton)
g_object_unref (ctx->skeleton);
g_object_unref (ctx->self);
- g_slice_free (ReloadCurrentOperatorContext, ctx);
+ g_slice_free (ReloadCurrentRegistrationInfoContext, ctx);
}
gboolean
-mm_iface_modem_3gpp_reload_current_operator_finish (MMIfaceModem3gpp *self,
- GAsyncResult *res,
- GError **error)
+mm_iface_modem_3gpp_reload_current_registration_info_finish (MMIfaceModem3gpp *self,
+ GAsyncResult *res,
+ GError **error)
{
return !g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error);
}
-static void reload_current_operator_context_step (ReloadCurrentOperatorContext *ctx);
+static void reload_current_registration_info_context_step (ReloadCurrentRegistrationInfoContext *ctx);
static void
load_operator_name_ready (MMIfaceModem3gpp *self,
GAsyncResult *res,
- ReloadCurrentOperatorContext *ctx)
+ ReloadCurrentRegistrationInfoContext *ctx)
{
GError *error = NULL;
gchar *str;
@@ -802,7 +807,7 @@ load_operator_name_ready (MMIfaceModem3gpp *self,
g_free (str);
ctx->operator_name_loaded = TRUE;
- reload_current_operator_context_step (ctx);
+ reload_current_registration_info_context_step (ctx);
}
static gboolean
@@ -836,7 +841,7 @@ parse_mcc_mnc (const gchar *mccmnc,
static void
load_operator_code_ready (MMIfaceModem3gpp *self,
GAsyncResult *res,
- ReloadCurrentOperatorContext *ctx)
+ ReloadCurrentRegistrationInfoContext *ctx)
{
GError *error = NULL;
gchar *str;
@@ -861,11 +866,33 @@ load_operator_code_ready (MMIfaceModem3gpp *self,
g_free (str);
ctx->operator_code_loaded = TRUE;
- reload_current_operator_context_step (ctx);
+ reload_current_registration_info_context_step (ctx);
+}
+
+static void
+load_subscription_state_ready (MMIfaceModem3gpp *self,
+ GAsyncResult *res,
+ ReloadCurrentRegistrationInfoContext *ctx)
+{
+ GError *error = NULL;
+ MMModem3gppSubscriptionState subscription_state = MM_MODEM_3GPP_SUBSCRIPTION_STATE_UNKNOWN;
+
+ subscription_state = MM_IFACE_MODEM_3GPP_GET_INTERFACE (self)->load_subscription_state_finish (self, res, &error);
+ if (error) {
+ mm_warn ("Couldn't load Subscription State: '%s'", error->message);
+ g_error_free (error);
+ }
+
+ if (ctx->skeleton)
+ mm_gdbus_modem3gpp_set_subscription_state (ctx->skeleton, subscription_state);
+
+ ctx->subscription_state_loaded = TRUE;
+ reload_current_registration_info_context_step (ctx);
}
+
static void
-reload_current_operator_context_step (ReloadCurrentOperatorContext *ctx)
+reload_current_registration_info_context_step (ReloadCurrentRegistrationInfoContext *ctx)
{
if (!ctx->operator_code_loaded) {
/* Launch operator code update */
@@ -885,24 +912,33 @@ reload_current_operator_context_step (ReloadCurrentOperatorContext *ctx)
return;
}
- /* If both loaded, all done */
+ if (!ctx->subscription_state_loaded) {
+ /* Launch subscription state update */
+ MM_IFACE_MODEM_3GPP_GET_INTERFACE (ctx->self)->load_subscription_state (
+ ctx->self,
+ (GAsyncReadyCallback)load_subscription_state_ready,
+ ctx);
+ return;
+ }
+
+ /* If all are loaded, all done */
g_simple_async_result_set_op_res_gboolean (ctx->result, TRUE);
- reload_current_operator_context_complete_and_free (ctx);
+ reload_current_registration_info_context_complete_and_free (ctx);
}
void
-mm_iface_modem_3gpp_reload_current_operator (MMIfaceModem3gpp *self,
- GAsyncReadyCallback callback,
- gpointer user_data)
+mm_iface_modem_3gpp_reload_current_registration_info (MMIfaceModem3gpp *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
{
- ReloadCurrentOperatorContext *ctx;
+ ReloadCurrentRegistrationInfoContext *ctx;
- ctx = g_slice_new0 (ReloadCurrentOperatorContext);
+ ctx = g_slice_new0 (ReloadCurrentRegistrationInfoContext);
ctx->self = g_object_ref (self);
ctx->result = g_simple_async_result_new (G_OBJECT (self),
callback,
user_data,
- mm_iface_modem_3gpp_reload_current_operator);
+ mm_iface_modem_3gpp_reload_current_registration_info);
g_object_get (self,
MM_IFACE_MODEM_3GPP_DBUS_SKELETON, &ctx->skeleton,
@@ -912,7 +948,7 @@ mm_iface_modem_3gpp_reload_current_operator (MMIfaceModem3gpp *self,
MM_CORE_ERROR,
MM_CORE_ERROR_FAILED,
"Couldn't get interface skeleton");
- reload_current_operator_context_complete_and_free (ctx);
+ reload_current_registration_info_context_complete_and_free (ctx);
return;
}
@@ -929,7 +965,12 @@ mm_iface_modem_3gpp_reload_current_operator (MMIfaceModem3gpp *self,
if (ctx->operator_name_loaded)
mm_gdbus_modem3gpp_set_operator_name (ctx->skeleton, NULL);
- reload_current_operator_context_step (ctx);
+ ctx->subscription_state_loaded = !(MM_IFACE_MODEM_3GPP_GET_INTERFACE (self)->load_subscription_state &&
+ MM_IFACE_MODEM_3GPP_GET_INTERFACE (self)->load_subscription_state_finish);
+ if (ctx->subscription_state_loaded)
+ mm_gdbus_modem3gpp_set_subscription_state (ctx->skeleton, MM_MODEM_3GPP_SUBSCRIPTION_STATE_UNKNOWN);
+
+ reload_current_registration_info_context_step (ctx);
}
void
@@ -949,6 +990,19 @@ mm_iface_modem_3gpp_clear_current_operator (MMIfaceModem3gpp *self)
mm_iface_modem_location_3gpp_update_mcc_mnc (MM_IFACE_MODEM_LOCATION (self), 0, 0);
}
+static void
+clear_subscription_state (MMIfaceModem3gpp *self)
+{
+ MmGdbusModem3gpp *skeleton = NULL;
+
+ g_object_get (self,
+ MM_IFACE_MODEM_3GPP_DBUS_SKELETON, &skeleton,
+ NULL);
+ if (!skeleton)
+ return;
+ mm_gdbus_modem3gpp_set_subscription_state (skeleton, MM_MODEM_3GPP_SUBSCRIPTION_STATE_UNKNOWN);
+}
+
/*****************************************************************************/
void
@@ -969,7 +1023,7 @@ mm_iface_modem_3gpp_update_access_technologies (MMIfaceModem3gpp *self,
* but only if something valid to report */
if (state == MM_MODEM_3GPP_REGISTRATION_STATE_HOME ||
state == MM_MODEM_3GPP_REGISTRATION_STATE_ROAMING ||
- ctx->reloading_operator) {
+ ctx->reloading_registration_info) {
if (access_tech != MM_MODEM_ACCESS_TECHNOLOGY_UNKNOWN)
mm_iface_modem_update_access_technologies (MM_IFACE_MODEM (self),
access_tech,
@@ -1009,9 +1063,9 @@ mm_iface_modem_3gpp_update_location (MMIfaceModem3gpp *self,
/*****************************************************************************/
static void
-update_registration_reload_current_operator_ready (MMIfaceModem3gpp *self,
- GAsyncResult *res,
- gpointer user_data)
+update_registration_reload_current_registration_info_ready (MMIfaceModem3gpp *self,
+ GAsyncResult *res,
+ gpointer user_data)
{
MMModem3gppRegistrationState new_state;
RegistrationStateContext *ctx;
@@ -1034,7 +1088,7 @@ update_registration_reload_current_operator_ready (MMIfaceModem3gpp *self,
MM_MODEM_STATE_CHANGE_REASON_UNKNOWN);
ctx = get_registration_state_context (self);
- ctx->reloading_operator = FALSE;
+ ctx->reloading_registration_info = FALSE;
}
static void
@@ -1045,6 +1099,14 @@ update_non_registered_state (MMIfaceModem3gpp *self,
/* Not registered neither in home nor roaming network */
mm_iface_modem_3gpp_clear_current_operator (self);
+ /* The subscription state can be computed in two ways: a) via PCO which is
+ * sent by the carrier during registration or b) by looking at the
+ * registration reject error code. If b), we want to make sure we
+ * preserve the subscription state */
+ if (old_state == MM_MODEM_3GPP_REGISTRATION_STATE_HOME ||
+ old_state == MM_MODEM_3GPP_REGISTRATION_STATE_ROAMING)
+ clear_subscription_state (self);
+
/* The property in the interface is bound to the property
* in the skeleton, so just updating here is enough */
g_object_set (self,
@@ -1081,20 +1143,20 @@ update_registration_state (MMIfaceModem3gpp *self,
if (new_state == MM_MODEM_3GPP_REGISTRATION_STATE_HOME ||
new_state == MM_MODEM_3GPP_REGISTRATION_STATE_ROAMING) {
- /* If already reloading operator, skip it */
- if (ctx->reloading_operator)
+ /* If already reloading registration info, skip it */
+ if (ctx->reloading_registration_info)
return;
mm_info ("Modem %s: 3GPP Registration state changed (%s -> registering)",
g_dbus_object_get_object_path (G_DBUS_OBJECT (self)),
mm_modem_3gpp_registration_state_get_string (old_state));
- /* Reload current operator. ONLY update the state to REGISTERED after
- * having loaded operator code/name */
- ctx->reloading_operator = TRUE;
- mm_iface_modem_3gpp_reload_current_operator (
+ /* Reload current registration info. ONLY update the state to REGISTERED
+ * after having loaded operator code/name/subscription state */
+ ctx->reloading_registration_info = TRUE;
+ mm_iface_modem_3gpp_reload_current_registration_info (
self,
- (GAsyncReadyCallback)update_registration_reload_current_operator_ready,
+ (GAsyncReadyCallback)update_registration_reload_current_registration_info_ready,
GUINT_TO_POINTER (new_state));
return;
}
@@ -1164,6 +1226,22 @@ mm_iface_modem_3gpp_update_eps_registration_state (MMIfaceModem3gpp *self,
update_registration_state (self, get_consolidated_reg_state (ctx), TRUE);
}
+void
+mm_iface_modem_3gpp_update_subscription_state (MMIfaceModem3gpp *self,
+ MMModem3gppSubscriptionState state)
+{
+ MmGdbusModem3gpp *skeleton = NULL;
+
+ g_object_get (self,
+ MM_IFACE_MODEM_3GPP_DBUS_SKELETON, &skeleton,
+ NULL);
+ if (skeleton) {
+ mm_dbg ("Setting subscription state to: %s", mm_modem_3gpp_subscription_state_get_string (state));
+ mm_gdbus_modem3gpp_set_subscription_state (skeleton, state);
+ g_object_unref (skeleton);
+ }
+}
+
/*****************************************************************************/
typedef struct {
@@ -1954,6 +2032,7 @@ mm_iface_modem_3gpp_initialize (MMIfaceModem3gpp *self,
mm_gdbus_modem3gpp_set_operator_code (skeleton, NULL);
mm_gdbus_modem3gpp_set_operator_name (skeleton, NULL);
mm_gdbus_modem3gpp_set_enabled_facility_locks (skeleton, MM_MODEM_3GPP_FACILITY_NONE);
+ mm_gdbus_modem3gpp_set_subscription_state (skeleton, MM_MODEM_3GPP_SUBSCRIPTION_STATE_UNKNOWN);
/* Bind our RegistrationState property */
g_object_bind_property (self, MM_IFACE_MODEM_3GPP_REGISTRATION_STATE,
diff --git a/src/mm-iface-modem-3gpp.h b/src/mm-iface-modem-3gpp.h
index f4014c4..8497d20 100644
--- a/src/mm-iface-modem-3gpp.h
+++ b/src/mm-iface-modem-3gpp.h
@@ -176,6 +176,14 @@ struct _MMIfaceModem3gpp {
GAsyncResult *res,
GError **error);
+ /* Loading of the subscription state property */
+ void (*load_subscription_state) (MMIfaceModem3gpp *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+ MMModem3gppSubscriptionState (*load_subscription_state_finish) (MMIfaceModem3gpp *self,
+ GAsyncResult *res,
+ GError **error);
+
/* Scan current networks, expect a GList of MMModem3gppNetworkInfo */
void (* scan_networks) (MMIfaceModem3gpp *self,
GAsyncReadyCallback callback,
@@ -216,7 +224,7 @@ gboolean mm_iface_modem_3gpp_disable_finish (MMIfaceModem3gpp *self,
/* Shutdown Modem 3GPP interface */
void mm_iface_modem_3gpp_shutdown (MMIfaceModem3gpp *self);
-/* Objects implementing this interface can report new registration states,
+/* Objects implementing this interface can report new registration info,
* access technologies and location.
* This may happen when handling unsolicited registration messages, or when
* the interface asks to run registration state checks. */
@@ -226,6 +234,8 @@ void mm_iface_modem_3gpp_update_ps_registration_state (MMIfaceModem3gpp *self,
MMModem3gppRegistrationState state);
void mm_iface_modem_3gpp_update_eps_registration_state (MMIfaceModem3gpp *self,
MMModem3gppRegistrationState state);
+void mm_iface_modem_3gpp_update_subscription_state (MMIfaceModem3gpp *self,
+ MMModem3gppSubscriptionState state);
void mm_iface_modem_3gpp_update_access_technologies (MMIfaceModem3gpp *self,
MMModemAccessTechnology access_tech);
void mm_iface_modem_3gpp_update_location (MMIfaceModem3gpp *self,
@@ -240,14 +250,14 @@ gboolean mm_iface_modem_3gpp_run_registration_checks_finish (MMIfaceModem3gpp *s
GAsyncResult *res,
GError **error);
-/* Request to reload current operator */
-void mm_iface_modem_3gpp_reload_current_operator (MMIfaceModem3gpp *self,
- GAsyncReadyCallback callback,
- gpointer user_data);
-gboolean mm_iface_modem_3gpp_reload_current_operator_finish (MMIfaceModem3gpp *self,
- GAsyncResult *res,
- GError **error);
-void mm_iface_modem_3gpp_clear_current_operator (MMIfaceModem3gpp *self);
+/* Request to reload current registration information */
+void mm_iface_modem_3gpp_reload_current_registration_info (MMIfaceModem3gpp *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+gboolean mm_iface_modem_3gpp_reload_current_registration_info_finish (MMIfaceModem3gpp *self,
+ GAsyncResult *res,
+ GError **error);
+void mm_iface_modem_3gpp_clear_current_operator (MMIfaceModem3gpp *self);
/* Allow registering in the network */
gboolean mm_iface_modem_3gpp_register_in_network_finish (MMIfaceModem3gpp *self,
diff --git a/src/mm-iface-modem-cdma.c b/src/mm-iface-modem-cdma.c
index c53c6b5..853f1db 100644
--- a/src/mm-iface-modem-cdma.c
+++ b/src/mm-iface-modem-cdma.c
@@ -227,7 +227,7 @@ typedef struct {
MmGdbusModemCdma *skeleton;
GDBusMethodInvocation *invocation;
MMIfaceModemCdma *self;
- GVariant *properties;
+ GVariant *dictionary;
} HandleActivateManualContext;
static void
@@ -236,7 +236,7 @@ handle_activate_manual_context_free (HandleActivateManualContext *ctx)
g_object_unref (ctx->skeleton);
g_object_unref (ctx->invocation);
g_object_unref (ctx->self);
- g_variant_unref (ctx->properties);
+ g_variant_unref (ctx->dictionary);
g_free (ctx);
}
@@ -260,6 +260,7 @@ handle_activate_manual_auth_ready (MMBaseModem *self,
GAsyncResult *res,
HandleActivateManualContext *ctx)
{
+ MMCdmaManualActivationProperties *properties;
MMModemState modem_state;
GError *error = NULL;
@@ -277,7 +278,7 @@ handle_activate_manual_auth_ready (MMBaseModem *self,
return;
}
- /* If activating OTA is not implemented, report an error */
+ /* If manual activation is not implemented, report an error */
if (!MM_IFACE_MODEM_CDMA_GET_INTERFACE (self)->activate_manual ||
!MM_IFACE_MODEM_CDMA_GET_INTERFACE (self)->activate_manual_finish) {
g_dbus_method_invocation_return_error (ctx->invocation,
@@ -289,6 +290,14 @@ handle_activate_manual_auth_ready (MMBaseModem *self,
return;
}
+ /* Parse input properties */
+ properties = mm_cdma_manual_activation_properties_new_from_dictionary (ctx->dictionary, &error);
+ if (!properties) {
+ g_dbus_method_invocation_take_error (ctx->invocation, error);
+ handle_activate_manual_context_free (ctx);
+ return;
+ }
+
modem_state = MM_MODEM_STATE_UNKNOWN;
g_object_get (self,
MM_IFACE_MODEM_STATE, &modem_state,
@@ -308,17 +317,17 @@ handle_activate_manual_auth_ready (MMBaseModem *self,
MM_CORE_ERROR_WRONG_STATE,
"Cannot perform manual activation: "
"device not fully initialized yet");
- handle_activate_manual_context_free (ctx);
- return;
+ break;
case MM_MODEM_STATE_ENABLED:
case MM_MODEM_STATE_SEARCHING:
case MM_MODEM_STATE_REGISTERED:
MM_IFACE_MODEM_CDMA_GET_INTERFACE (self)->activate_manual (
MM_IFACE_MODEM_CDMA (self),
- ctx->properties,
+ properties,
(GAsyncReadyCallback)handle_activate_manual_ready,
ctx);
+ g_object_unref (properties);
return;
case MM_MODEM_STATE_DISABLING:
@@ -349,13 +358,14 @@ handle_activate_manual_auth_ready (MMBaseModem *self,
break;
}
+ g_object_unref (properties);
handle_activate_manual_context_free (ctx);
}
static gboolean
handle_activate_manual (MmGdbusModemCdma *skeleton,
GDBusMethodInvocation *invocation,
- GVariant *properties,
+ GVariant *dictionary,
MMIfaceModemCdma *self)
{
HandleActivateManualContext *ctx;
@@ -364,7 +374,7 @@ handle_activate_manual (MmGdbusModemCdma *skeleton,
ctx->skeleton = g_object_ref (skeleton);
ctx->invocation = g_object_ref (invocation);
ctx->self = g_object_ref (self);
- ctx->properties = g_variant_ref (properties);
+ ctx->dictionary = g_variant_ref (dictionary);
mm_base_modem_authorize (MM_BASE_MODEM (self),
invocation,
diff --git a/src/mm-iface-modem-cdma.h b/src/mm-iface-modem-cdma.h
index e6a6cdd..a7efe91 100644
--- a/src/mm-iface-modem-cdma.h
+++ b/src/mm-iface-modem-cdma.h
@@ -120,7 +120,7 @@ struct _MMIfaceModemCdma {
/* Manual activation */
void (* activate_manual) (MMIfaceModemCdma *self,
- GVariant *properties,
+ MMCdmaManualActivationProperties *properties,
GAsyncReadyCallback callback,
gpointer user_data);
gboolean (* activate_manual_finish) (MMIfaceModemCdma *self,
diff --git a/src/mm-iface-modem-messaging.c b/src/mm-iface-modem-messaging.c
index 143d7ef..1101862 100644
--- a/src/mm-iface-modem-messaging.c
+++ b/src/mm-iface-modem-messaging.c
@@ -490,6 +490,17 @@ mm_iface_modem_messaging_is_storage_supported_for_receiving (MMIfaceModemMessagi
/*****************************************************************************/
static void
+update_message_list (MmGdbusModemMessaging *skeleton,
+ MMSmsList *list)
+{
+ gchar **paths;
+
+ paths = mm_sms_list_get_paths (list);
+ mm_gdbus_modem_messaging_set_messages (skeleton, (const gchar *const *)paths);
+ g_strfreev (paths);
+}
+
+static void
sms_added (MMSmsList *list,
const gchar *sms_path,
gboolean received,
@@ -498,6 +509,7 @@ sms_added (MMSmsList *list,
mm_dbg ("Added %s SMS at '%s'",
received ? "received" : "local",
sms_path);
+ update_message_list (skeleton, list);
mm_gdbus_modem_messaging_emit_added (skeleton, sms_path, received);
}
@@ -507,6 +519,7 @@ sms_deleted (MMSmsList *list,
MmGdbusModemMessaging *skeleton)
{
mm_dbg ("Deleted SMS at '%s'", sms_path);
+ update_message_list (skeleton, list);
mm_gdbus_modem_messaging_emit_deleted (skeleton, sms_path);
}
@@ -1079,6 +1092,21 @@ initialization_context_complete_and_free_if_cancelled (InitializationContext *ct
}
static void
+skip_unknown_storages (GArray *mem)
+{
+ guint i = mem->len;
+
+ if (!mem)
+ return;
+
+ /* Remove UNKNOWN from the list of supported storages */
+ while (i-- > 0) {
+ if (g_array_index (mem, MMSmsStorage, i) == MM_SMS_STORAGE_UNKNOWN)
+ g_array_remove_index (mem, i);
+ }
+}
+
+static void
load_supported_storages_ready (MMIfaceModemMessaging *self,
GAsyncResult *res,
InitializationContext *ctx)
@@ -1103,6 +1131,11 @@ load_supported_storages_ready (MMIfaceModemMessaging *self,
GArray *supported_storages;
guint i;
+ /* Never add unknown storages */
+ skip_unknown_storages (storage_ctx->supported_mem1);
+ skip_unknown_storages (storage_ctx->supported_mem2);
+ skip_unknown_storages (storage_ctx->supported_mem3);
+
mem1 = mm_common_build_sms_storages_string ((MMSmsStorage *)storage_ctx->supported_mem1->data,
storage_ctx->supported_mem1->len);
mem2 = mm_common_build_sms_storages_string ((MMSmsStorage *)storage_ctx->supported_mem2->data,
diff --git a/src/mm-iface-modem-oma.c b/src/mm-iface-modem-oma.c
new file mode 100644
index 0000000..b8c4841
--- /dev/null
+++ b/src/mm-iface-modem-oma.c
@@ -0,0 +1,1265 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details:
+ *
+ * Copyright (C) 2013 Google, Inc.
+ */
+
+#include <ModemManager.h>
+#define _LIBMM_INSIDE_MM
+#include <libmm-glib.h>
+
+#include "mm-iface-modem.h"
+#include "mm-iface-modem-oma.h"
+#include "mm-log.h"
+
+#define SUPPORT_CHECKED_TAG "oma-support-checked-tag"
+#define SUPPORTED_TAG "oma-supported-tag"
+
+static GQuark support_checked_quark;
+static GQuark supported_quark;
+
+/*****************************************************************************/
+
+void
+mm_iface_modem_oma_bind_simple_status (MMIfaceModemOma *self,
+ MMSimpleStatus *status)
+{
+}
+
+/*****************************************************************************/
+/* Manage the list of pending network-initiated sessions */
+
+static void
+add_or_remove_pending_network_initiated_session (MMIfaceModemOma *self,
+ gboolean add,
+ MMOmaSessionType session_type,
+ guint session_id)
+{
+ MmGdbusModemOma *skeleton;
+ GVariant *variant;
+ GArray *array;
+ guint i;
+
+ g_assert (session_type != MM_OMA_SESSION_TYPE_UNKNOWN);
+
+ g_object_get (self,
+ MM_IFACE_MODEM_OMA_DBUS_SKELETON, &skeleton,
+ NULL);
+ if (!skeleton)
+ return;
+
+ variant = mm_gdbus_modem_oma_get_pending_network_initiated_sessions (skeleton);
+ array = mm_common_oma_pending_network_initiated_sessions_variant_to_garray (variant);
+
+ for (i = 0; i < array->len; i++) {
+ MMOmaPendingNetworkInitiatedSession *session;
+
+ session = &g_array_index (array, MMOmaPendingNetworkInitiatedSession, i);
+ if (session->session_id == session_id)
+ break;
+ }
+
+ /* If not in the array, and we want to add it, add it */
+ if (add && i == array->len) {
+ MMOmaPendingNetworkInitiatedSession session;
+
+ session.session_type = session_type;
+ session.session_id = session_id;
+ g_array_append_val (array, session);
+
+ mm_gdbus_modem_oma_set_pending_network_initiated_sessions (
+ skeleton,
+ mm_common_oma_pending_network_initiated_sessions_garray_to_variant (array));
+ }
+ /* If found in the array, and we want to remove it, remove it */
+ else if (!add && i < array->len) {
+ g_array_remove_index (array, i);
+ mm_gdbus_modem_oma_set_pending_network_initiated_sessions (
+ skeleton,
+ mm_common_oma_pending_network_initiated_sessions_garray_to_variant (array));
+ }
+
+ g_object_unref (skeleton);
+ g_array_unref (array);
+}
+
+void
+mm_iface_modem_oma_add_pending_network_initiated_session (MMIfaceModemOma *self,
+ MMOmaSessionType session_type,
+ guint session_id)
+{
+ add_or_remove_pending_network_initiated_session (self, TRUE, session_type, session_id);
+}
+
+/*****************************************************************************/
+/* New session state reported */
+
+void
+mm_iface_modem_oma_update_session_state (MMIfaceModemOma *self,
+ MMOmaSessionState new_session_state,
+ MMOmaSessionStateFailedReason session_state_failed_reason)
+{
+ MmGdbusModemOma *skeleton;
+ MMOmaSessionState old_session_state;
+
+ /* Make sure proper state vs failed reasons are given */
+ g_return_if_fail ((new_session_state != MM_OMA_SESSION_STATE_FAILED &&
+ session_state_failed_reason == MM_OMA_SESSION_STATE_FAILED_REASON_UNKNOWN) ||
+ (new_session_state == MM_OMA_SESSION_STATE_FAILED));
+
+ g_object_get (self,
+ MM_IFACE_MODEM_OMA_DBUS_SKELETON, &skeleton,
+ NULL);
+ if (!skeleton)
+ return;
+
+ old_session_state = mm_gdbus_modem_oma_get_session_state (skeleton);
+ if (old_session_state != new_session_state) {
+ mm_info ("Modem %s: OMA session state changed (%s -> %s)",
+ g_dbus_object_get_object_path (G_DBUS_OBJECT (self)),
+ mm_oma_session_state_get_string (old_session_state),
+ mm_oma_session_state_get_string (new_session_state));
+
+ /* Flush current change before signaling the state change,
+ * so that clients get the proper state already in the
+ * state-changed callback */
+ mm_gdbus_modem_oma_set_session_state (skeleton, new_session_state);
+ g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (skeleton));
+ mm_gdbus_modem_oma_emit_session_state_changed (
+ skeleton,
+ old_session_state,
+ new_session_state,
+ session_state_failed_reason);
+ }
+}
+
+/*****************************************************************************/
+/* Handle Setup() */
+
+typedef struct {
+ MmGdbusModemOma *skeleton;
+ GDBusMethodInvocation *invocation;
+ MMIfaceModemOma *self;
+ guint32 features;
+} HandleSetupContext;
+
+static void
+handle_setup_context_free (HandleSetupContext *ctx)
+{
+ g_object_unref (ctx->skeleton);
+ g_object_unref (ctx->invocation);
+ g_object_unref (ctx->self);
+ g_slice_free (HandleSetupContext, ctx);
+}
+
+static void
+setup_ready (MMIfaceModemOma *self,
+ GAsyncResult *res,
+ HandleSetupContext *ctx)
+{
+ GError *error = NULL;
+
+ if (!MM_IFACE_MODEM_OMA_GET_INTERFACE (ctx->self)->setup_finish (self, res, &error))
+ g_dbus_method_invocation_take_error (ctx->invocation, error);
+ else {
+ /* Update current features in the interface */
+ mm_gdbus_modem_oma_set_features (ctx->skeleton, ctx->features);
+ mm_gdbus_modem_oma_complete_setup (ctx->skeleton, ctx->invocation);
+ }
+
+ handle_setup_context_free (ctx);
+}
+
+static void
+handle_setup_auth_ready (MMBaseModem *self,
+ GAsyncResult *res,
+ HandleSetupContext *ctx)
+{
+ GError *error = NULL;
+ MMModemState modem_state;
+ gchar *str;
+
+ if (!mm_base_modem_authorize_finish (self, res, &error)) {
+ g_dbus_method_invocation_take_error (ctx->invocation, error);
+ handle_setup_context_free (ctx);
+ return;
+ }
+
+ modem_state = MM_MODEM_STATE_UNKNOWN;
+ g_object_get (self,
+ MM_IFACE_MODEM_STATE, &modem_state,
+ NULL);
+ if (modem_state < MM_MODEM_STATE_ENABLED) {
+ g_dbus_method_invocation_return_error (ctx->invocation,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_WRONG_STATE,
+ "Cannot setup OMA: "
+ "device not yet enabled");
+ handle_setup_context_free (ctx);
+ return;
+ }
+
+ if (!MM_IFACE_MODEM_OMA_GET_INTERFACE (ctx->self)->setup ||
+ !MM_IFACE_MODEM_OMA_GET_INTERFACE (ctx->self)->setup_finish) {
+ g_dbus_method_invocation_return_error (ctx->invocation,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_UNSUPPORTED,
+ "Cannot setup OMA: "
+ "operation not supported");
+ handle_setup_context_free (ctx);
+ return;
+ }
+
+ str = mm_oma_feature_build_string_from_mask (ctx->features);
+ mm_dbg ("Setting up OMA features: '%s'", str);
+ g_free (str);
+
+ MM_IFACE_MODEM_OMA_GET_INTERFACE (ctx->self)->setup (
+ ctx->self,
+ ctx->features,
+ (GAsyncReadyCallback)setup_ready,
+ ctx);
+}
+
+static gboolean
+handle_setup (MmGdbusModemOma *skeleton,
+ GDBusMethodInvocation *invocation,
+ guint32 features,
+ MMIfaceModemOma *self)
+{
+ HandleSetupContext *ctx;
+
+ ctx = g_slice_new0 (HandleSetupContext);
+ ctx->skeleton = g_object_ref (skeleton);
+ ctx->invocation = g_object_ref (invocation);
+ ctx->self = g_object_ref (self);
+ ctx->features = features;
+
+ mm_base_modem_authorize (MM_BASE_MODEM (self),
+ invocation,
+ MM_AUTHORIZATION_DEVICE_CONTROL,
+ (GAsyncReadyCallback)handle_setup_auth_ready,
+ ctx);
+ return TRUE;
+}
+
+/*****************************************************************************/
+/* Handle StartClientInitiatedSession() */
+
+typedef struct {
+ MmGdbusModemOma *skeleton;
+ GDBusMethodInvocation *invocation;
+ MMIfaceModemOma *self;
+ MMOmaSessionType session_type;
+} HandleStartClientInitiatedSessionContext;
+
+static void
+handle_start_client_initiated_session_context_free (HandleStartClientInitiatedSessionContext *ctx)
+{
+ g_object_unref (ctx->skeleton);
+ g_object_unref (ctx->invocation);
+ g_object_unref (ctx->self);
+ g_slice_free (HandleStartClientInitiatedSessionContext, ctx);
+}
+
+static void
+start_client_initiated_session_ready (MMIfaceModemOma *self,
+ GAsyncResult *res,
+ HandleStartClientInitiatedSessionContext *ctx)
+{
+ GError *error = NULL;
+
+ if (!MM_IFACE_MODEM_OMA_GET_INTERFACE (ctx->self)->start_client_initiated_session_finish (self, res, &error))
+ g_dbus_method_invocation_take_error (ctx->invocation, error);
+ else {
+ /* Update interface info */
+ mm_gdbus_modem_oma_set_session_type (ctx->skeleton, ctx->session_type);
+ mm_iface_modem_oma_update_session_state (self, MM_OMA_SESSION_STATE_STARTED, MM_OMA_SESSION_STATE_FAILED_REASON_UNKNOWN);
+ mm_gdbus_modem_oma_complete_start_client_initiated_session (ctx->skeleton, ctx->invocation);
+ }
+
+ handle_start_client_initiated_session_context_free (ctx);
+}
+
+static void
+handle_start_client_initiated_session_auth_ready (MMBaseModem *self,
+ GAsyncResult *res,
+ HandleStartClientInitiatedSessionContext *ctx)
+{
+ GError *error = NULL;
+ MMModemState modem_state;
+
+ if (!mm_base_modem_authorize_finish (self, res, &error)) {
+ g_dbus_method_invocation_take_error (ctx->invocation, error);
+ handle_start_client_initiated_session_context_free (ctx);
+ return;
+ }
+
+ modem_state = MM_MODEM_STATE_UNKNOWN;
+ g_object_get (self,
+ MM_IFACE_MODEM_STATE, &modem_state,
+ NULL);
+ if (modem_state < MM_MODEM_STATE_ENABLED) {
+ g_dbus_method_invocation_return_error (ctx->invocation,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_WRONG_STATE,
+ "Cannot start client-initiated OMA session: "
+ "device not yet enabled");
+ handle_start_client_initiated_session_context_free (ctx);
+ return;
+ }
+
+ if (!MM_IFACE_MODEM_OMA_GET_INTERFACE (ctx->self)->start_client_initiated_session ||
+ !MM_IFACE_MODEM_OMA_GET_INTERFACE (ctx->self)->start_client_initiated_session_finish) {
+ g_dbus_method_invocation_return_error (ctx->invocation,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_UNSUPPORTED,
+ "Cannot start client-initiated OMA session: "
+ "operation not supported");
+ handle_start_client_initiated_session_context_free (ctx);
+ return;
+ }
+
+ if (ctx->session_type != MM_OMA_SESSION_TYPE_CLIENT_INITIATED_DEVICE_CONFIGURE &&
+ ctx->session_type != MM_OMA_SESSION_TYPE_CLIENT_INITIATED_PRL_UPDATE &&
+ ctx->session_type != MM_OMA_SESSION_TYPE_CLIENT_INITIATED_HANDS_FREE_ACTIVATION) {
+ g_dbus_method_invocation_return_error (ctx->invocation,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_UNSUPPORTED,
+ "Cannot start client-initiated OMA session: "
+ "invalid session type specified (%s)",
+ mm_oma_session_type_get_string (ctx->session_type));
+ handle_start_client_initiated_session_context_free (ctx);
+ return;
+ }
+
+ mm_dbg ("Starting client-initiated OMA session (%s)",
+ mm_oma_session_type_get_string (ctx->session_type));
+ MM_IFACE_MODEM_OMA_GET_INTERFACE (ctx->self)->start_client_initiated_session (
+ ctx->self,
+ ctx->session_type,
+ (GAsyncReadyCallback)start_client_initiated_session_ready,
+ ctx);
+}
+
+static gboolean
+handle_start_client_initiated_session (MmGdbusModemOma *skeleton,
+ GDBusMethodInvocation *invocation,
+ guint32 session_type,
+ MMIfaceModemOma *self)
+{
+ HandleStartClientInitiatedSessionContext *ctx;
+
+ ctx = g_slice_new0 (HandleStartClientInitiatedSessionContext);
+ ctx->skeleton = g_object_ref (skeleton);
+ ctx->invocation = g_object_ref (invocation);
+ ctx->self = g_object_ref (self);
+ ctx->session_type = session_type;
+
+ mm_base_modem_authorize (MM_BASE_MODEM (self),
+ invocation,
+ MM_AUTHORIZATION_DEVICE_CONTROL,
+ (GAsyncReadyCallback)handle_start_client_initiated_session_auth_ready,
+ ctx);
+ return TRUE;
+}
+
+/*****************************************************************************/
+/* Handle AcceptNetworkInitiatedSession() */
+
+typedef struct {
+ MmGdbusModemOma *skeleton;
+ GDBusMethodInvocation *invocation;
+ MMIfaceModemOma *self;
+ MMOmaSessionType session_type;
+ guint session_id;
+ gboolean accept;
+} HandleAcceptNetworkInitiatedSessionContext;
+
+static void
+handle_accept_network_initiated_session_context_free (HandleAcceptNetworkInitiatedSessionContext *ctx)
+{
+ g_object_unref (ctx->skeleton);
+ g_object_unref (ctx->invocation);
+ g_object_unref (ctx->self);
+ g_slice_free (HandleAcceptNetworkInitiatedSessionContext, ctx);
+}
+
+static void
+accept_network_initiated_session_ready (MMIfaceModemOma *self,
+ GAsyncResult *res,
+ HandleAcceptNetworkInitiatedSessionContext *ctx)
+{
+ GError *error = NULL;
+
+ if (!MM_IFACE_MODEM_OMA_GET_INTERFACE (ctx->self)->accept_network_initiated_session_finish (self, res, &error))
+ g_dbus_method_invocation_take_error (ctx->invocation, error);
+ else {
+ /* If accepted or rejected, remove from pending */
+ add_or_remove_pending_network_initiated_session (self, FALSE, ctx->session_type, ctx->session_id);
+
+ /* If accepted, set as current */
+ if (ctx->accept) {
+ mm_gdbus_modem_oma_set_session_type (ctx->skeleton, ctx->session_type);
+ mm_iface_modem_oma_update_session_state (self, MM_OMA_SESSION_STATE_STARTED, MM_OMA_SESSION_STATE_FAILED_REASON_UNKNOWN);
+ }
+
+ mm_gdbus_modem_oma_complete_accept_network_initiated_session (ctx->skeleton, ctx->invocation);
+ }
+
+ handle_accept_network_initiated_session_context_free (ctx);
+}
+
+static MMOmaSessionType
+get_pending_network_initiated_session_type (MMIfaceModemOma *self,
+ guint session_id)
+{
+ MMOmaSessionType session_type = MM_OMA_SESSION_TYPE_UNKNOWN;
+ MmGdbusModemOma *skeleton;
+
+ g_object_get (self,
+ MM_IFACE_MODEM_OMA_DBUS_SKELETON, &skeleton,
+ NULL);
+ if (skeleton) {
+ GArray *array;
+ guint i;
+
+ array = (mm_common_oma_pending_network_initiated_sessions_variant_to_garray (
+ mm_gdbus_modem_oma_get_pending_network_initiated_sessions (skeleton)));
+ for (i = 0; i < array->len && session_type == MM_OMA_SESSION_TYPE_UNKNOWN; i++) {
+ MMOmaPendingNetworkInitiatedSession *session;
+
+ session = &g_array_index (array, MMOmaPendingNetworkInitiatedSession, i);
+ if (session->session_id == session_id)
+ session_type = session->session_type;
+ }
+
+ g_array_unref (array);
+ g_object_unref (skeleton);
+ }
+
+ return session_type;
+}
+
+static void
+handle_accept_network_initiated_session_auth_ready (MMBaseModem *self,
+ GAsyncResult *res,
+ HandleAcceptNetworkInitiatedSessionContext *ctx)
+{
+ GError *error = NULL;
+ MMModemState modem_state;
+
+ if (!mm_base_modem_authorize_finish (self, res, &error)) {
+ g_dbus_method_invocation_take_error (ctx->invocation, error);
+ handle_accept_network_initiated_session_context_free (ctx);
+ return;
+ }
+
+ modem_state = MM_MODEM_STATE_UNKNOWN;
+ g_object_get (self,
+ MM_IFACE_MODEM_STATE, &modem_state,
+ NULL);
+ if (modem_state < MM_MODEM_STATE_ENABLED) {
+ g_dbus_method_invocation_return_error (ctx->invocation,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_WRONG_STATE,
+ "Cannot accept network-initiated OMA session: "
+ "device not yet enabled");
+ handle_accept_network_initiated_session_context_free (ctx);
+ return;
+ }
+
+ if (!MM_IFACE_MODEM_OMA_GET_INTERFACE (ctx->self)->accept_network_initiated_session ||
+ !MM_IFACE_MODEM_OMA_GET_INTERFACE (ctx->self)->accept_network_initiated_session_finish) {
+ g_dbus_method_invocation_return_error (ctx->invocation,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_UNSUPPORTED,
+ "Cannot accept network-initiated OMA session: "
+ "operation not supported");
+ handle_accept_network_initiated_session_context_free (ctx);
+ return;
+ }
+
+ ctx->session_type = get_pending_network_initiated_session_type (ctx->self, ctx->session_id);
+ if (ctx->session_type == MM_OMA_SESSION_TYPE_UNKNOWN) {
+ g_dbus_method_invocation_return_error (ctx->invocation,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_UNSUPPORTED,
+ "Cannot accept network-initiated OMA session: "
+ "unknown session id (%u)",
+ ctx->session_id);
+ handle_accept_network_initiated_session_context_free (ctx);
+ return;
+ }
+
+ mm_dbg ("%s network-initiated OMA session (%s, %u)",
+ ctx->accept ? "Accepting" : "Rejecting",
+ mm_oma_session_type_get_string (ctx->session_type),
+ ctx->session_id);
+ MM_IFACE_MODEM_OMA_GET_INTERFACE (ctx->self)->accept_network_initiated_session (
+ ctx->self,
+ ctx->session_id,
+ ctx->accept,
+ (GAsyncReadyCallback)accept_network_initiated_session_ready,
+ ctx);
+}
+
+static gboolean
+handle_accept_network_initiated_session (MmGdbusModemOma *skeleton,
+ GDBusMethodInvocation *invocation,
+ guint32 session_id,
+ gboolean accept,
+ MMIfaceModemOma *self)
+{
+ HandleAcceptNetworkInitiatedSessionContext *ctx;
+
+ ctx = g_slice_new0 (HandleAcceptNetworkInitiatedSessionContext);
+ ctx->skeleton = g_object_ref (skeleton);
+ ctx->invocation = g_object_ref (invocation);
+ ctx->self = g_object_ref (self);
+ ctx->session_type = MM_OMA_SESSION_TYPE_UNKNOWN;
+ ctx->session_id = session_id;
+ ctx->accept = accept;
+
+ mm_base_modem_authorize (MM_BASE_MODEM (self),
+ invocation,
+ MM_AUTHORIZATION_DEVICE_CONTROL,
+ (GAsyncReadyCallback)handle_accept_network_initiated_session_auth_ready,
+ ctx);
+ return TRUE;
+}
+
+/*****************************************************************************/
+/* Handle CancelSession() */
+
+typedef struct {
+ MmGdbusModemOma *skeleton;
+ GDBusMethodInvocation *invocation;
+ MMIfaceModemOma *self;
+} HandleCancelSessionContext;
+
+static void
+handle_cancel_session_context_free (HandleCancelSessionContext *ctx)
+{
+ g_object_unref (ctx->skeleton);
+ g_object_unref (ctx->invocation);
+ g_object_unref (ctx->self);
+ g_slice_free (HandleCancelSessionContext, ctx);
+}
+
+static void
+cancel_session_ready (MMIfaceModemOma *self,
+ GAsyncResult *res,
+ HandleCancelSessionContext *ctx)
+{
+ GError *error = NULL;
+
+ if (!MM_IFACE_MODEM_OMA_GET_INTERFACE (ctx->self)->cancel_session_finish (self, res, &error))
+ g_dbus_method_invocation_take_error (ctx->invocation, error);
+ else {
+ /* Clear interface info when cancelled */
+ mm_gdbus_modem_oma_set_session_type (ctx->skeleton, MM_OMA_SESSION_TYPE_UNKNOWN);
+ mm_iface_modem_oma_update_session_state (self, MM_OMA_SESSION_STATE_UNKNOWN, MM_OMA_SESSION_STATE_FAILED_REASON_UNKNOWN);
+
+ mm_gdbus_modem_oma_complete_cancel_session (ctx->skeleton, ctx->invocation);
+ }
+
+ handle_cancel_session_context_free (ctx);
+}
+
+static void
+handle_cancel_session_auth_ready (MMBaseModem *self,
+ GAsyncResult *res,
+ HandleCancelSessionContext *ctx)
+{
+ GError *error = NULL;
+ MMModemState modem_state;
+
+ if (!mm_base_modem_authorize_finish (self, res, &error)) {
+ g_dbus_method_invocation_take_error (ctx->invocation, error);
+ handle_cancel_session_context_free (ctx);
+ return;
+ }
+
+ modem_state = MM_MODEM_STATE_UNKNOWN;
+ g_object_get (self,
+ MM_IFACE_MODEM_STATE, &modem_state,
+ NULL);
+ if (modem_state < MM_MODEM_STATE_ENABLED) {
+ g_dbus_method_invocation_return_error (ctx->invocation,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_WRONG_STATE,
+ "Cannot cancel OMA session: "
+ "device not yet enabled");
+ handle_cancel_session_context_free (ctx);
+ return;
+ }
+
+ if (!MM_IFACE_MODEM_OMA_GET_INTERFACE (ctx->self)->cancel_session ||
+ !MM_IFACE_MODEM_OMA_GET_INTERFACE (ctx->self)->cancel_session_finish) {
+ g_dbus_method_invocation_return_error (ctx->invocation,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_UNSUPPORTED,
+ "Cannot cancel OMA session: "
+ "operation not supported");
+ handle_cancel_session_context_free (ctx);
+ return;
+ }
+
+ mm_dbg ("Cancelling OMA session");
+ MM_IFACE_MODEM_OMA_GET_INTERFACE (ctx->self)->cancel_session (
+ ctx->self,
+ (GAsyncReadyCallback)cancel_session_ready,
+ ctx);
+}
+
+static gboolean
+handle_cancel_session (MmGdbusModemOma *skeleton,
+ GDBusMethodInvocation *invocation,
+ MMIfaceModemOma *self)
+{
+ HandleCancelSessionContext *ctx;
+
+ ctx = g_slice_new0 (HandleCancelSessionContext);
+ ctx->skeleton = g_object_ref (skeleton);
+ ctx->invocation = g_object_ref (invocation);
+ ctx->self = g_object_ref (self);
+
+ mm_base_modem_authorize (MM_BASE_MODEM (self),
+ invocation,
+ MM_AUTHORIZATION_DEVICE_CONTROL,
+ (GAsyncReadyCallback)handle_cancel_session_auth_ready,
+ ctx);
+ return TRUE;
+}
+
+/*****************************************************************************/
+
+typedef struct _DisablingContext DisablingContext;
+static void interface_disabling_step (DisablingContext *ctx);
+
+typedef enum {
+ DISABLING_STEP_FIRST,
+ DISABLING_STEP_DISABLE_UNSOLICITED_EVENTS,
+ DISABLING_STEP_CLEANUP_UNSOLICITED_EVENTS,
+ DISABLING_STEP_LAST
+} DisablingStep;
+
+struct _DisablingContext {
+ MMIfaceModemOma *self;
+ DisablingStep step;
+ GSimpleAsyncResult *result;
+ MmGdbusModemOma *skeleton;
+};
+
+static void
+disabling_context_complete_and_free (DisablingContext *ctx)
+{
+ g_simple_async_result_complete_in_idle (ctx->result);
+ g_object_unref (ctx->self);
+ g_object_unref (ctx->result);
+ if (ctx->skeleton)
+ g_object_unref (ctx->skeleton);
+ g_free (ctx);
+}
+
+gboolean
+mm_iface_modem_oma_disable_finish (MMIfaceModemOma *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ return !g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error);
+}
+
+static void
+disable_unsolicited_events_ready (MMIfaceModemOma *self,
+ GAsyncResult *res,
+ DisablingContext *ctx)
+{
+ GError *error = NULL;
+
+ MM_IFACE_MODEM_OMA_GET_INTERFACE (self)->disable_unsolicited_events_finish (self, res, &error);
+ if (error) {
+ g_simple_async_result_take_error (ctx->result, error);
+ disabling_context_complete_and_free (ctx);
+ return;
+ }
+
+ /* Go on to next step */
+ ctx->step++;
+ interface_disabling_step (ctx);
+}
+
+static void
+cleanup_unsolicited_events_ready (MMIfaceModemOma *self,
+ GAsyncResult *res,
+ DisablingContext *ctx)
+{
+ GError *error = NULL;
+
+ MM_IFACE_MODEM_OMA_GET_INTERFACE (self)->cleanup_unsolicited_events_finish (self, res, &error);
+ if (error) {
+ g_simple_async_result_take_error (ctx->result, error);
+ disabling_context_complete_and_free (ctx);
+ return;
+ }
+
+ /* Go on to next step */
+ ctx->step++;
+ interface_disabling_step (ctx);
+}
+
+static void
+interface_disabling_step (DisablingContext *ctx)
+{
+ switch (ctx->step) {
+ case DISABLING_STEP_FIRST:
+ /* Fall down to next step */
+ ctx->step++;
+
+ case DISABLING_STEP_DISABLE_UNSOLICITED_EVENTS:
+ /* Allow cleaning up unsolicited events */
+ if (MM_IFACE_MODEM_OMA_GET_INTERFACE (ctx->self)->disable_unsolicited_events &&
+ MM_IFACE_MODEM_OMA_GET_INTERFACE (ctx->self)->disable_unsolicited_events_finish) {
+ MM_IFACE_MODEM_OMA_GET_INTERFACE (ctx->self)->disable_unsolicited_events (
+ ctx->self,
+ (GAsyncReadyCallback)disable_unsolicited_events_ready,
+ ctx);
+ return;
+ }
+ /* Fall down to next step */
+ ctx->step++;
+
+ case DISABLING_STEP_CLEANUP_UNSOLICITED_EVENTS:
+ /* Allow cleaning up unsolicited events */
+ if (MM_IFACE_MODEM_OMA_GET_INTERFACE (ctx->self)->cleanup_unsolicited_events &&
+ MM_IFACE_MODEM_OMA_GET_INTERFACE (ctx->self)->cleanup_unsolicited_events_finish) {
+ MM_IFACE_MODEM_OMA_GET_INTERFACE (ctx->self)->cleanup_unsolicited_events (
+ ctx->self,
+ (GAsyncReadyCallback)cleanup_unsolicited_events_ready,
+ ctx);
+ return;
+ }
+ /* Fall down to next step */
+ ctx->step++;
+
+ case DISABLING_STEP_LAST:
+ /* We are done without errors! */
+ g_simple_async_result_set_op_res_gboolean (ctx->result, TRUE);
+ disabling_context_complete_and_free (ctx);
+ return;
+ }
+
+ g_assert_not_reached ();
+}
+
+void
+mm_iface_modem_oma_disable (MMIfaceModemOma *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ DisablingContext *ctx;
+
+ ctx = g_new0 (DisablingContext, 1);
+ ctx->self = g_object_ref (self);
+ ctx->result = g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ mm_iface_modem_oma_disable);
+ ctx->step = DISABLING_STEP_FIRST;
+ g_object_get (ctx->self,
+ MM_IFACE_MODEM_OMA_DBUS_SKELETON, &ctx->skeleton,
+ NULL);
+ if (!ctx->skeleton) {
+ g_simple_async_result_set_error (ctx->result,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Couldn't get interface skeleton");
+ disabling_context_complete_and_free (ctx);
+ return;
+ }
+
+ interface_disabling_step (ctx);
+}
+
+/*****************************************************************************/
+
+typedef struct _EnablingContext EnablingContext;
+static void interface_enabling_step (EnablingContext *ctx);
+
+typedef enum {
+ ENABLING_STEP_FIRST,
+ ENABLING_STEP_LOAD_FEATURES,
+ ENABLING_STEP_SETUP_UNSOLICITED_EVENTS,
+ ENABLING_STEP_ENABLE_UNSOLICITED_EVENTS,
+ ENABLING_STEP_LAST
+} EnablingStep;
+
+struct _EnablingContext {
+ MMIfaceModemOma *self;
+ EnablingStep step;
+ GSimpleAsyncResult *result;
+ GCancellable *cancellable;
+ MmGdbusModemOma *skeleton;
+};
+
+static void
+enabling_context_complete_and_free (EnablingContext *ctx)
+{
+ g_simple_async_result_complete_in_idle (ctx->result);
+ g_object_unref (ctx->self);
+ g_object_unref (ctx->result);
+ g_object_unref (ctx->cancellable);
+ if (ctx->skeleton)
+ g_object_unref (ctx->skeleton);
+ g_free (ctx);
+}
+
+static gboolean
+enabling_context_complete_and_free_if_cancelled (EnablingContext *ctx)
+{
+ if (!g_cancellable_is_cancelled (ctx->cancellable))
+ return FALSE;
+
+ g_simple_async_result_set_error (ctx->result,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_CANCELLED,
+ "Interface enabling cancelled");
+ enabling_context_complete_and_free (ctx);
+ return TRUE;
+}
+
+gboolean
+mm_iface_modem_oma_enable_finish (MMIfaceModemOma *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ return !g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error);
+}
+
+static void
+load_features_ready (MMIfaceModemOma *self,
+ GAsyncResult *res,
+ EnablingContext *ctx)
+{
+ GError *error = NULL;
+ MMOmaFeature features;
+
+ features = MM_IFACE_MODEM_OMA_GET_INTERFACE (self)->load_features_finish (self, res, &error);
+ if (error) {
+ g_simple_async_result_take_error (ctx->result, error);
+ enabling_context_complete_and_free (ctx);
+ return;
+ }
+
+ /* Update in the interface */
+ mm_gdbus_modem_oma_set_features (ctx->skeleton, features);
+
+ /* Go on to next step */
+ ctx->step++;
+ interface_enabling_step (ctx);
+}
+
+static void
+setup_unsolicited_events_ready (MMIfaceModemOma *self,
+ GAsyncResult *res,
+ EnablingContext *ctx)
+{
+ GError *error = NULL;
+
+ MM_IFACE_MODEM_OMA_GET_INTERFACE (self)->setup_unsolicited_events_finish (self, res, &error);
+ if (error) {
+ g_simple_async_result_take_error (ctx->result, error);
+ enabling_context_complete_and_free (ctx);
+ return;
+ }
+
+ /* Go on to next step */
+ ctx->step++;
+ interface_enabling_step (ctx);
+}
+
+static void
+enable_unsolicited_events_ready (MMIfaceModemOma *self,
+ GAsyncResult *res,
+ EnablingContext *ctx)
+{
+ GError *error = NULL;
+
+ /* Not critical! */
+ if (!MM_IFACE_MODEM_OMA_GET_INTERFACE (self)->enable_unsolicited_events_finish (self, res, &error)) {
+ mm_dbg ("Couldn't enable unsolicited events: '%s'", error->message);
+ g_error_free (error);
+ }
+
+ /* Go on with next step */
+ ctx->step++;
+ interface_enabling_step (ctx);
+}
+
+static void
+interface_enabling_step (EnablingContext *ctx)
+{
+ /* Don't run new steps if we're cancelled */
+ if (enabling_context_complete_and_free_if_cancelled (ctx))
+ return;
+
+ switch (ctx->step) {
+ case ENABLING_STEP_FIRST:
+ /* Fall down to next step */
+ ctx->step++;
+
+ case ENABLING_STEP_LOAD_FEATURES:
+ if (MM_IFACE_MODEM_OMA_GET_INTERFACE (ctx->self)->load_features &&
+ MM_IFACE_MODEM_OMA_GET_INTERFACE (ctx->self)->load_features_finish) {
+ MM_IFACE_MODEM_OMA_GET_INTERFACE (ctx->self)->load_features (
+ ctx->self,
+ (GAsyncReadyCallback)load_features_ready,
+ ctx);
+ return;
+ }
+ /* Fall down to next step */
+ ctx->step++;
+
+ case ENABLING_STEP_SETUP_UNSOLICITED_EVENTS:
+ /* Allow setting up unsolicited events */
+ if (MM_IFACE_MODEM_OMA_GET_INTERFACE (ctx->self)->setup_unsolicited_events &&
+ MM_IFACE_MODEM_OMA_GET_INTERFACE (ctx->self)->setup_unsolicited_events_finish) {
+ MM_IFACE_MODEM_OMA_GET_INTERFACE (ctx->self)->setup_unsolicited_events (
+ ctx->self,
+ (GAsyncReadyCallback)setup_unsolicited_events_ready,
+ ctx);
+ return;
+ }
+ /* Fall down to next step */
+ ctx->step++;
+
+ case ENABLING_STEP_ENABLE_UNSOLICITED_EVENTS:
+ /* Allow setting up unsolicited events */
+ if (MM_IFACE_MODEM_OMA_GET_INTERFACE (ctx->self)->enable_unsolicited_events &&
+ MM_IFACE_MODEM_OMA_GET_INTERFACE (ctx->self)->enable_unsolicited_events_finish) {
+ MM_IFACE_MODEM_OMA_GET_INTERFACE (ctx->self)->enable_unsolicited_events (
+ ctx->self,
+ (GAsyncReadyCallback)enable_unsolicited_events_ready,
+ ctx);
+ return;
+ }
+ /* Fall down to next step */
+ ctx->step++;
+
+ case ENABLING_STEP_LAST:
+ /* We are done without errors! */
+ g_simple_async_result_set_op_res_gboolean (ctx->result, TRUE);
+ enabling_context_complete_and_free (ctx);
+ return;
+ }
+
+ g_assert_not_reached ();
+}
+
+void
+mm_iface_modem_oma_enable (MMIfaceModemOma *self,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ EnablingContext *ctx;
+
+ ctx = g_new0 (EnablingContext, 1);
+ ctx->self = g_object_ref (self);
+ ctx->cancellable = g_object_ref (cancellable);
+ ctx->result = g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ mm_iface_modem_oma_enable);
+ ctx->step = ENABLING_STEP_FIRST;
+ g_object_get (ctx->self,
+ MM_IFACE_MODEM_OMA_DBUS_SKELETON, &ctx->skeleton,
+ NULL);
+ if (!ctx->skeleton) {
+ g_simple_async_result_set_error (ctx->result,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Couldn't get interface skeleton");
+ enabling_context_complete_and_free (ctx);
+ return;
+ }
+
+ interface_enabling_step (ctx);
+}
+
+/*****************************************************************************/
+
+typedef struct _InitializationContext InitializationContext;
+static void interface_initialization_step (InitializationContext *ctx);
+
+typedef enum {
+ INITIALIZATION_STEP_FIRST,
+ INITIALIZATION_STEP_CHECK_SUPPORT,
+ INITIALIZATION_STEP_FAIL_IF_UNSUPPORTED,
+ INITIALIZATION_STEP_LAST
+} InitializationStep;
+
+struct _InitializationContext {
+ MMIfaceModemOma *self;
+ MmGdbusModemOma *skeleton;
+ GSimpleAsyncResult *result;
+ GCancellable *cancellable;
+ InitializationStep step;
+};
+
+static void
+initialization_context_complete_and_free (InitializationContext *ctx)
+{
+ g_simple_async_result_complete_in_idle (ctx->result);
+ g_object_unref (ctx->self);
+ g_object_unref (ctx->result);
+ g_object_unref (ctx->cancellable);
+ g_object_unref (ctx->skeleton);
+ g_free (ctx);
+}
+
+static gboolean
+initialization_context_complete_and_free_if_cancelled (InitializationContext *ctx)
+{
+ if (!g_cancellable_is_cancelled (ctx->cancellable))
+ return FALSE;
+
+ g_simple_async_result_set_error (ctx->result,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_CANCELLED,
+ "Interface initialization cancelled");
+ initialization_context_complete_and_free (ctx);
+ return TRUE;
+}
+
+static void
+check_support_ready (MMIfaceModemOma *self,
+ GAsyncResult *res,
+ InitializationContext *ctx)
+{
+ GError *error = NULL;
+
+ if (!MM_IFACE_MODEM_OMA_GET_INTERFACE (self)->check_support_finish (self, res, &error)) {
+ if (error) {
+ /* This error shouldn't be treated as critical */
+ mm_dbg ("OMA support check failed: '%s'", error->message);
+ g_error_free (error);
+ }
+ } else {
+ /* OMA is supported! */
+ g_object_set_qdata (G_OBJECT (self),
+ supported_quark,
+ GUINT_TO_POINTER (TRUE));
+ }
+
+ /* Go on to next step */
+ ctx->step++;
+ interface_initialization_step (ctx);
+}
+
+static void
+interface_initialization_step (InitializationContext *ctx)
+{
+ /* Don't run new steps if we're cancelled */
+ if (initialization_context_complete_and_free_if_cancelled (ctx))
+ return;
+
+ switch (ctx->step) {
+ case INITIALIZATION_STEP_FIRST:
+ /* Setup quarks if we didn't do it before */
+ if (G_UNLIKELY (!support_checked_quark))
+ support_checked_quark = (g_quark_from_static_string (
+ SUPPORT_CHECKED_TAG));
+ if (G_UNLIKELY (!supported_quark))
+ supported_quark = (g_quark_from_static_string (
+ SUPPORTED_TAG));
+
+ /* Fall down to next step */
+ ctx->step++;
+
+ case INITIALIZATION_STEP_CHECK_SUPPORT:
+ if (!GPOINTER_TO_UINT (g_object_get_qdata (G_OBJECT (ctx->self),
+ support_checked_quark))) {
+ /* Set the checked flag so that we don't run it again */
+ g_object_set_qdata (G_OBJECT (ctx->self),
+ support_checked_quark,
+ GUINT_TO_POINTER (TRUE));
+ /* Initially, assume we don't support it */
+ g_object_set_qdata (G_OBJECT (ctx->self),
+ supported_quark,
+ GUINT_TO_POINTER (FALSE));
+
+ if (MM_IFACE_MODEM_OMA_GET_INTERFACE (ctx->self)->check_support &&
+ MM_IFACE_MODEM_OMA_GET_INTERFACE (ctx->self)->check_support_finish) {
+ MM_IFACE_MODEM_OMA_GET_INTERFACE (ctx->self)->check_support (
+ ctx->self,
+ (GAsyncReadyCallback)check_support_ready,
+ ctx);
+ return;
+ }
+
+ /* If there is no implementation to check support, assume we DON'T
+ * support it. */
+ }
+ /* Fall down to next step */
+ ctx->step++;
+
+ case INITIALIZATION_STEP_FAIL_IF_UNSUPPORTED:
+ if (!GPOINTER_TO_UINT (g_object_get_qdata (G_OBJECT (ctx->self),
+ supported_quark))) {
+ g_simple_async_result_set_error (ctx->result,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_UNSUPPORTED,
+ "OMA not supported");
+ initialization_context_complete_and_free (ctx);
+ return;
+ }
+ /* Fall down to next step */
+ ctx->step++;
+
+ case INITIALIZATION_STEP_LAST:
+ /* We are done without errors! */
+
+ /* Handle method invocations */
+ g_signal_connect (ctx->skeleton,
+ "handle-setup",
+ G_CALLBACK (handle_setup),
+ ctx->self);
+ g_signal_connect (ctx->skeleton,
+ "handle-start-client-initiated-session",
+ G_CALLBACK (handle_start_client_initiated_session),
+ ctx->self);
+ g_signal_connect (ctx->skeleton,
+ "handle-accept-network-initiated-session",
+ G_CALLBACK (handle_accept_network_initiated_session),
+ ctx->self);
+ g_signal_connect (ctx->skeleton,
+ "handle-cancel-session",
+ G_CALLBACK (handle_cancel_session),
+ ctx->self);
+
+ /* Finally, export the new interface */
+ mm_gdbus_object_skeleton_set_modem_oma (MM_GDBUS_OBJECT_SKELETON (ctx->self),
+ MM_GDBUS_MODEM_OMA (ctx->skeleton));
+
+ g_simple_async_result_set_op_res_gboolean (ctx->result, TRUE);
+ initialization_context_complete_and_free (ctx);
+ return;
+ }
+
+ g_assert_not_reached ();
+}
+
+gboolean
+mm_iface_modem_oma_initialize_finish (MMIfaceModemOma *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ return !g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error);
+}
+
+void
+mm_iface_modem_oma_initialize (MMIfaceModemOma *self,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ InitializationContext *ctx;
+ MmGdbusModemOma *skeleton = NULL;
+
+ /* Did we already create it? */
+ g_object_get (self,
+ MM_IFACE_MODEM_OMA_DBUS_SKELETON, &skeleton,
+ NULL);
+ if (!skeleton) {
+ skeleton = mm_gdbus_modem_oma_skeleton_new ();
+ g_object_set (self,
+ MM_IFACE_MODEM_OMA_DBUS_SKELETON, skeleton,
+ NULL);
+
+ /* Set all initial property defaults */
+ mm_gdbus_modem_oma_set_features (skeleton, MM_OMA_FEATURE_NONE);
+ mm_gdbus_modem_oma_set_session_type (skeleton, MM_OMA_SESSION_TYPE_UNKNOWN);
+ mm_gdbus_modem_oma_set_session_state (skeleton, MM_OMA_SESSION_STATE_UNKNOWN);
+ mm_gdbus_modem_oma_set_pending_network_initiated_sessions (skeleton, mm_common_build_oma_pending_network_initiated_sessions_default ());
+ }
+
+ /* Perform async initialization here */
+
+ ctx = g_new0 (InitializationContext, 1);
+ ctx->self = g_object_ref (self);
+ ctx->cancellable = g_object_ref (cancellable);
+ ctx->result = g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ mm_iface_modem_oma_initialize);
+ ctx->step = INITIALIZATION_STEP_FIRST;
+ ctx->skeleton = skeleton;
+
+ interface_initialization_step (ctx);
+}
+
+void
+mm_iface_modem_oma_shutdown (MMIfaceModemOma *self)
+{
+ /* Unexport DBus interface and remove the skeleton */
+ mm_gdbus_object_skeleton_set_modem_oma (MM_GDBUS_OBJECT_SKELETON (self), NULL);
+ g_object_set (self,
+ MM_IFACE_MODEM_OMA_DBUS_SKELETON, NULL,
+ NULL);
+}
+
+/*****************************************************************************/
+
+static void
+iface_modem_oma_init (gpointer g_iface)
+{
+ static gboolean initialized = FALSE;
+
+ if (initialized)
+ return;
+
+ /* Properties */
+ g_object_interface_install_property
+ (g_iface,
+ g_param_spec_object (MM_IFACE_MODEM_OMA_DBUS_SKELETON,
+ "OMA DBus skeleton",
+ "DBus skeleton for the OMA interface",
+ MM_GDBUS_TYPE_MODEM_OMA_SKELETON,
+ G_PARAM_READWRITE));
+
+ initialized = TRUE;
+}
+
+GType
+mm_iface_modem_oma_get_type (void)
+{
+ static GType iface_modem_oma_type = 0;
+
+ if (!G_UNLIKELY (iface_modem_oma_type)) {
+ static const GTypeInfo info = {
+ sizeof (MMIfaceModemOma), /* class_size */
+ iface_modem_oma_init, /* base_init */
+ NULL, /* base_finalize */
+ };
+
+ iface_modem_oma_type = g_type_register_static (G_TYPE_INTERFACE,
+ "MMIfaceModemOma",
+ &info,
+ 0);
+
+ g_type_interface_add_prerequisite (iface_modem_oma_type, MM_TYPE_IFACE_MODEM);
+ }
+
+ return iface_modem_oma_type;
+}
diff --git a/src/mm-iface-modem-oma.h b/src/mm-iface-modem-oma.h
new file mode 100644
index 0000000..3e3d00b
--- /dev/null
+++ b/src/mm-iface-modem-oma.h
@@ -0,0 +1,164 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details:
+ *
+ * Copyright (C) 2013 Google, Inc.
+ */
+
+#ifndef MM_IFACE_MODEM_OMA_H
+#define MM_IFACE_MODEM_OMA_H
+
+#include <glib-object.h>
+#include <gio/gio.h>
+
+#define MM_TYPE_IFACE_MODEM_OMA (mm_iface_modem_oma_get_type ())
+#define MM_IFACE_MODEM_OMA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MM_TYPE_IFACE_MODEM_OMA, MMIfaceModemOma))
+#define MM_IS_IFACE_MODEM_OMA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MM_TYPE_IFACE_MODEM_OMA))
+#define MM_IFACE_MODEM_OMA_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), MM_TYPE_IFACE_MODEM_OMA, MMIfaceModemOma))
+
+#define MM_IFACE_MODEM_OMA_DBUS_SKELETON "iface-modem-oma-dbus-skeleton"
+
+typedef struct _MMIfaceModemOma MMIfaceModemOma;
+
+struct _MMIfaceModemOma {
+ GTypeInterface g_iface;
+
+ /* Check for Oma support (async) */
+ void (* check_support) (MMIfaceModemOma *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+ gboolean (* check_support_finish) (MMIfaceModemOma *self,
+ GAsyncResult *res,
+ GError **error);
+
+ /* Asynchronous setting up unsolicited events */
+ void (* setup_unsolicited_events) (MMIfaceModemOma *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+ gboolean (* setup_unsolicited_events_finish) (MMIfaceModemOma *self,
+ GAsyncResult *res,
+ GError **error);
+
+ /* Asynchronous cleaning up of unsolicited events */
+ void (* cleanup_unsolicited_events) (MMIfaceModemOma *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+ gboolean (* cleanup_unsolicited_events_finish) (MMIfaceModemOma *self,
+ GAsyncResult *res,
+ GError **error);
+
+ /* Asynchronous enabling unsolicited events */
+ void (* enable_unsolicited_events) (MMIfaceModemOma *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+ gboolean (* enable_unsolicited_events_finish) (MMIfaceModemOma *self,
+ GAsyncResult *res,
+ GError **error);
+
+ /* Asynchronous disabling unsolicited events */
+ void (* disable_unsolicited_events) (MMIfaceModemOma *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+ gboolean (* disable_unsolicited_events_finish) (MMIfaceModemOma *self,
+ GAsyncResult *res,
+ GError **error);
+
+ /* Get current features */
+ void (* load_features) (MMIfaceModemOma *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+ MMOmaFeature (* load_features_finish) (MMIfaceModemOma *self,
+ GAsyncResult *res,
+ GError **error);
+
+ /* Setup */
+ void (* setup) (MMIfaceModemOma *self,
+ MMOmaFeature features,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+ gboolean (* setup_finish) (MMIfaceModemOma *self,
+ GAsyncResult *res,
+ GError **error);
+
+ /* Start client-initiated session */
+ void (* start_client_initiated_session) (MMIfaceModemOma *self,
+ MMOmaSessionType session_type,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+ gboolean (* start_client_initiated_session_finish) (MMIfaceModemOma *self,
+ GAsyncResult *res,
+ GError **error);
+
+ /* Accept network-initiated session */
+ void (* accept_network_initiated_session) (MMIfaceModemOma *self,
+ guint session_id,
+ gboolean accept,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+ gboolean (* accept_network_initiated_session_finish) (MMIfaceModemOma *self,
+ GAsyncResult *res,
+ GError **error);
+
+ /* Cancel session */
+ void (* cancel_session) (MMIfaceModemOma *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+ gboolean (* cancel_session_finish) (MMIfaceModemOma *self,
+ GAsyncResult *res,
+ GError **error);
+};
+
+GType mm_iface_modem_oma_get_type (void);
+
+/* Initialize Oma interface (async) */
+void mm_iface_modem_oma_initialize (MMIfaceModemOma *self,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+gboolean mm_iface_modem_oma_initialize_finish (MMIfaceModemOma *self,
+ GAsyncResult *res,
+ GError **error);
+
+/* Enable Oma interface (async) */
+void mm_iface_modem_oma_enable (MMIfaceModemOma *self,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+gboolean mm_iface_modem_oma_enable_finish (MMIfaceModemOma *self,
+ GAsyncResult *res,
+ GError **error);
+
+/* Disable Oma interface (async) */
+void mm_iface_modem_oma_disable (MMIfaceModemOma *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+gboolean mm_iface_modem_oma_disable_finish (MMIfaceModemOma *self,
+ GAsyncResult *res,
+ GError **error);
+
+/* Shutdown Oma interface */
+void mm_iface_modem_oma_shutdown (MMIfaceModemOma *self);
+
+/* Bind properties for simple GetStatus() */
+void mm_iface_modem_oma_bind_simple_status (MMIfaceModemOma *self,
+ MMSimpleStatus *status);
+
+/* Report new pending network-initiated session */
+void mm_iface_modem_oma_add_pending_network_initiated_session (MMIfaceModemOma *self,
+ MMOmaSessionType session_type,
+ guint session_id);
+
+/* Report new session state */
+void mm_iface_modem_oma_update_session_state (MMIfaceModemOma *self,
+ MMOmaSessionState session_state,
+ MMOmaSessionStateFailedReason session_state_failed_reason);
+
+#endif /* MM_IFACE_MODEM_OMA_H */
diff --git a/src/mm-iface-modem-signal.c b/src/mm-iface-modem-signal.c
new file mode 100644
index 0000000..d28c2ad
--- /dev/null
+++ b/src/mm-iface-modem-signal.c
@@ -0,0 +1,612 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details:
+ *
+ * Copyright (C) 2013 Aleksander Morgado <aleksander@gnu.org>
+ */
+
+#include <ModemManager.h>
+#define _LIBMM_INSIDE_MM
+#include <libmm-glib.h>
+
+#include "mm-iface-modem.h"
+#include "mm-iface-modem-signal.h"
+#include "mm-log.h"
+
+#define SUPPORT_CHECKED_TAG "signal-support-checked-tag"
+#define SUPPORTED_TAG "signal-supported-tag"
+#define REFRESH_CONTEXT_TAG "signal-refresh-context-tag"
+
+static GQuark support_checked_quark;
+static GQuark supported_quark;
+static GQuark refresh_context_quark;
+
+/*****************************************************************************/
+
+void
+mm_iface_modem_signal_bind_simple_status (MMIfaceModemSignal *self,
+ MMSimpleStatus *status)
+{
+}
+
+/*****************************************************************************/
+
+typedef struct {
+ guint rate;
+ guint timeout_source;
+} RefreshContext;
+
+static void
+refresh_context_free (RefreshContext *ctx)
+{
+ if (ctx->timeout_source)
+ g_source_remove (ctx->timeout_source);
+ g_slice_free (RefreshContext, ctx);
+}
+
+static void
+clear_values (MMIfaceModemSignal *self)
+{
+ MmGdbusModemSignal *skeleton;
+
+ g_object_get (self,
+ MM_IFACE_MODEM_SIGNAL_DBUS_SKELETON, &skeleton,
+ NULL);
+ if (!skeleton)
+ return;
+
+ mm_gdbus_modem_signal_set_cdma (skeleton, NULL);
+ mm_gdbus_modem_signal_set_evdo (skeleton, NULL);
+ mm_gdbus_modem_signal_set_gsm (skeleton, NULL);
+ mm_gdbus_modem_signal_set_umts (skeleton, NULL);
+ mm_gdbus_modem_signal_set_lte (skeleton, NULL);
+ g_object_unref (skeleton);
+}
+
+static void
+load_values_ready (MMIfaceModemSignal *self,
+ GAsyncResult *res)
+{
+ GVariant *dictionary;
+ GError *error = NULL;
+ MMSignal *cdma = NULL;
+ MMSignal *evdo = NULL;
+ MMSignal *gsm = NULL;
+ MMSignal *umts = NULL;
+ MMSignal *lte = NULL;
+ MmGdbusModemSignal *skeleton;
+
+ if (!MM_IFACE_MODEM_SIGNAL_GET_INTERFACE (self)->load_values_finish (
+ self,
+ res,
+ &cdma,
+ &evdo,
+ &gsm,
+ &umts,
+ &lte,
+ &error)) {
+ mm_warn ("Couldn't load extended signal information: %s", error->message);
+ g_error_free (error);
+ clear_values (self);
+ return;
+ }
+
+ g_object_get (self,
+ MM_IFACE_MODEM_SIGNAL_DBUS_SKELETON, &skeleton,
+ NULL);
+ if (!skeleton) {
+ mm_warn ("Cannot update extended signal information: "
+ "Couldn't get interface skeleton");
+ return;
+ }
+
+ if (cdma) {
+ dictionary = mm_signal_get_dictionary (cdma);
+ mm_gdbus_modem_signal_set_cdma (skeleton, dictionary);
+ g_variant_unref (dictionary);
+ g_object_unref (cdma);
+ }
+
+ if (evdo) {
+ dictionary = mm_signal_get_dictionary (evdo);
+ mm_gdbus_modem_signal_set_evdo (skeleton, dictionary);
+ g_variant_unref (dictionary);
+ g_object_unref (evdo);
+ }
+
+ if (gsm) {
+ dictionary = mm_signal_get_dictionary (gsm);
+ mm_gdbus_modem_signal_set_gsm (skeleton, dictionary);
+ g_variant_unref (dictionary);
+ g_object_unref (gsm);
+ }
+
+ if (umts) {
+ dictionary = mm_signal_get_dictionary (umts);
+ mm_gdbus_modem_signal_set_umts (skeleton, dictionary);
+ g_variant_unref (dictionary);
+ g_object_unref (umts);
+ }
+
+ if (lte) {
+ dictionary = mm_signal_get_dictionary (lte);
+ mm_gdbus_modem_signal_set_lte (skeleton, dictionary);
+ g_variant_unref (dictionary);
+ g_object_unref (lte);
+ }
+
+ /* Flush right away */
+ g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (skeleton));
+
+ g_object_unref (skeleton);
+}
+
+static gboolean
+refresh_context_cb (MMIfaceModemSignal *self)
+{
+ MM_IFACE_MODEM_SIGNAL_GET_INTERFACE (self)->load_values (
+ self,
+ NULL,
+ (GAsyncReadyCallback)load_values_ready,
+ NULL);
+ return TRUE;
+}
+
+static void
+teardown_refresh_context (MMIfaceModemSignal *self)
+{
+ mm_dbg ("Extended signal information reporting disabled");
+ clear_values (self);
+ if (G_UNLIKELY (!refresh_context_quark))
+ refresh_context_quark = g_quark_from_static_string (REFRESH_CONTEXT_TAG);
+ g_object_set_qdata (G_OBJECT (self), refresh_context_quark, NULL);
+}
+
+static gboolean
+setup_refresh_context (MMIfaceModemSignal *self,
+ gboolean update_rate,
+ guint new_rate,
+ GError **error)
+{
+ MmGdbusModemSignal *skeleton;
+ RefreshContext *ctx;
+ MMModemState modem_state;
+
+ if (G_UNLIKELY (!refresh_context_quark))
+ refresh_context_quark = g_quark_from_static_string (REFRESH_CONTEXT_TAG);
+
+ g_object_get (self,
+ MM_IFACE_MODEM_SIGNAL_DBUS_SKELETON, &skeleton,
+ MM_IFACE_MODEM_STATE, &modem_state,
+ NULL);
+ if (!skeleton) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Couldn't get interface skeleton");
+ return FALSE;
+ }
+
+ if (update_rate)
+ mm_gdbus_modem_signal_set_rate (skeleton, new_rate);
+ else
+ new_rate = mm_gdbus_modem_signal_get_rate (skeleton);
+ g_object_unref (skeleton);
+
+ /* User disabling? */
+ if (new_rate == 0) {
+ mm_dbg ("Extended signal information reporting disabled (rate: 0 seconds)");
+ clear_values (self);
+ g_object_set_qdata (G_OBJECT (self), refresh_context_quark, NULL);
+ return TRUE;
+ }
+
+ if (modem_state < MM_MODEM_STATE_ENABLING) {
+ mm_dbg ("Extended signal information reporting disabled (modem not yet enabled)");
+ return TRUE;
+ }
+
+ /* Setup refresh context */
+ ctx = g_object_get_qdata (G_OBJECT (self), refresh_context_quark);
+ if (!ctx) {
+ ctx = g_slice_new0 (RefreshContext);
+ g_object_set_qdata_full (G_OBJECT (self),
+ refresh_context_quark,
+ ctx,
+ (GDestroyNotify)refresh_context_free);
+ }
+
+ /* We're enabling, compare to old rate */
+ if (ctx->rate == new_rate) {
+ /* Already there */
+ return TRUE;
+ }
+
+ /* Update refresh context */
+ mm_dbg ("Extended signal information reporting enabled (rate: %u seconds)", new_rate);
+ ctx->rate = new_rate;
+ if (ctx->timeout_source)
+ g_source_remove (ctx->timeout_source);
+ ctx->timeout_source = g_timeout_add_seconds (ctx->rate, (GSourceFunc) refresh_context_cb, self);
+
+ /* Also launch right away */
+ refresh_context_cb (self);
+
+ return TRUE;
+}
+
+/*****************************************************************************/
+
+typedef struct {
+ GDBusMethodInvocation *invocation;
+ MmGdbusModemSignal *skeleton;
+ MMIfaceModemSignal *self;
+ guint rate;
+} HandleSetupContext;
+
+static void
+handle_setup_context_free (HandleSetupContext *ctx)
+{
+ g_object_unref (ctx->invocation);
+ g_object_unref (ctx->skeleton);
+ g_object_unref (ctx->self);
+ g_slice_free (HandleSetupContext, ctx);
+}
+
+static void
+handle_setup_auth_ready (MMBaseModem *self,
+ GAsyncResult *res,
+ HandleSetupContext *ctx)
+{
+ GError *error = NULL;
+
+ if (!mm_base_modem_authorize_finish (self, res, &error))
+ g_dbus_method_invocation_take_error (ctx->invocation, error);
+ else if (!setup_refresh_context (ctx->self, TRUE, ctx->rate, &error))
+ g_dbus_method_invocation_take_error (ctx->invocation, error);
+ else
+ mm_gdbus_modem_signal_complete_setup (ctx->skeleton, ctx->invocation);
+ handle_setup_context_free (ctx);
+}
+
+static gboolean
+handle_setup (MmGdbusModemSignal *skeleton,
+ GDBusMethodInvocation *invocation,
+ guint rate,
+ MMIfaceModemSignal *self)
+{
+ HandleSetupContext *ctx;
+
+ ctx = g_slice_new (HandleSetupContext);
+ ctx->invocation = g_object_ref (invocation);
+ ctx->skeleton = g_object_ref (skeleton);
+ ctx->self = g_object_ref (self);
+ ctx->rate = rate;
+
+ mm_base_modem_authorize (MM_BASE_MODEM (self),
+ invocation,
+ MM_AUTHORIZATION_DEVICE_CONTROL,
+ (GAsyncReadyCallback)handle_setup_auth_ready,
+ ctx);
+ return TRUE;
+}
+
+/*****************************************************************************/
+
+gboolean
+mm_iface_modem_signal_disable_finish (MMIfaceModemSignal *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ return !g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error);
+}
+
+void
+mm_iface_modem_signal_disable (MMIfaceModemSignal *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ GSimpleAsyncResult *result;
+
+ result = g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ mm_iface_modem_signal_disable);
+
+ teardown_refresh_context (self);
+
+ g_simple_async_result_set_op_res_gboolean (result, TRUE);
+ g_simple_async_result_complete_in_idle (result);
+ g_object_unref (result);
+}
+
+/*****************************************************************************/
+
+gboolean
+mm_iface_modem_signal_enable_finish (MMIfaceModemSignal *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ return !g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error);
+}
+
+void
+mm_iface_modem_signal_enable (MMIfaceModemSignal *self,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ GSimpleAsyncResult *result;
+ GError *error = NULL;
+
+ result = g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ mm_iface_modem_signal_enable);
+
+ if (!setup_refresh_context (self, FALSE, 0, &error))
+ g_simple_async_result_take_error (result, error);
+ else
+ g_simple_async_result_set_op_res_gboolean (result, TRUE);
+
+ g_simple_async_result_complete_in_idle (result);
+ g_object_unref (result);
+}
+
+/*****************************************************************************/
+
+typedef struct _InitializationContext InitializationContext;
+static void interface_initialization_step (InitializationContext *ctx);
+
+typedef enum {
+ INITIALIZATION_STEP_FIRST,
+ INITIALIZATION_STEP_CHECK_SUPPORT,
+ INITIALIZATION_STEP_FAIL_IF_UNSUPPORTED,
+ INITIALIZATION_STEP_LAST
+} InitializationStep;
+
+struct _InitializationContext {
+ MMIfaceModemSignal *self;
+ MmGdbusModemSignal *skeleton;
+ GCancellable *cancellable;
+ GSimpleAsyncResult *result;
+ InitializationStep step;
+};
+
+static void
+initialization_context_complete_and_free (InitializationContext *ctx)
+{
+ g_simple_async_result_complete_in_idle (ctx->result);
+ g_object_unref (ctx->self);
+ g_object_unref (ctx->result);
+ g_object_unref (ctx->cancellable);
+ g_object_unref (ctx->skeleton);
+ g_slice_free (InitializationContext, ctx);
+}
+
+
+gboolean
+mm_iface_modem_signal_initialize_finish (MMIfaceModemSignal *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ return !g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error);
+}
+
+static gboolean
+initialization_context_complete_and_free_if_cancelled (InitializationContext *ctx)
+{
+ if (!g_cancellable_is_cancelled (ctx->cancellable))
+ return FALSE;
+
+ g_simple_async_result_set_error (ctx->result,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_CANCELLED,
+ "Interface initialization cancelled");
+ initialization_context_complete_and_free (ctx);
+ return TRUE;
+}
+
+static void
+check_support_ready (MMIfaceModemSignal *self,
+ GAsyncResult *res,
+ InitializationContext *ctx)
+{
+ GError *error = NULL;
+
+ if (!MM_IFACE_MODEM_SIGNAL_GET_INTERFACE (self)->check_support_finish (self, res, &error)) {
+ if (error) {
+ /* This error shouldn't be treated as critical */
+ mm_dbg ("Extended signal support check failed: '%s'", error->message);
+ g_error_free (error);
+ }
+ } else {
+ /* Signal is supported! */
+ g_object_set_qdata (G_OBJECT (self),
+ supported_quark,
+ GUINT_TO_POINTER (TRUE));
+ }
+
+ /* Go on to next step */
+ ctx->step++;
+ interface_initialization_step (ctx);
+}
+
+static void
+interface_initialization_step (InitializationContext *ctx)
+{
+ /* Don't run new steps if we're cancelled */
+ if (initialization_context_complete_and_free_if_cancelled (ctx))
+ return;
+
+ switch (ctx->step) {
+ case INITIALIZATION_STEP_FIRST:
+ /* Setup quarks if we didn't do it before */
+ if (G_UNLIKELY (!support_checked_quark))
+ support_checked_quark = (g_quark_from_static_string (
+ SUPPORT_CHECKED_TAG));
+ if (G_UNLIKELY (!supported_quark))
+ supported_quark = (g_quark_from_static_string (
+ SUPPORTED_TAG));
+
+ /* Fall down to next step */
+ ctx->step++;
+
+ case INITIALIZATION_STEP_CHECK_SUPPORT:
+ if (!GPOINTER_TO_UINT (g_object_get_qdata (G_OBJECT (ctx->self),
+ support_checked_quark))) {
+ /* Set the checked flag so that we don't run it again */
+ g_object_set_qdata (G_OBJECT (ctx->self),
+ support_checked_quark,
+ GUINT_TO_POINTER (TRUE));
+ /* Initially, assume we don't support it */
+ g_object_set_qdata (G_OBJECT (ctx->self),
+ supported_quark,
+ GUINT_TO_POINTER (FALSE));
+
+ if (MM_IFACE_MODEM_SIGNAL_GET_INTERFACE (ctx->self)->check_support &&
+ MM_IFACE_MODEM_SIGNAL_GET_INTERFACE (ctx->self)->check_support_finish) {
+ MM_IFACE_MODEM_SIGNAL_GET_INTERFACE (ctx->self)->check_support (
+ ctx->self,
+ (GAsyncReadyCallback)check_support_ready,
+ ctx);
+ return;
+ }
+
+ /* If there is no implementation to check support, assume we DON'T
+ * support it. */
+ }
+ /* Fall down to next step */
+ ctx->step++;
+
+ case INITIALIZATION_STEP_FAIL_IF_UNSUPPORTED:
+ if (!GPOINTER_TO_UINT (g_object_get_qdata (G_OBJECT (ctx->self),
+ supported_quark))) {
+ g_simple_async_result_set_error (ctx->result,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_UNSUPPORTED,
+ "Extended Signal information not supported");
+ initialization_context_complete_and_free (ctx);
+ return;
+ }
+ /* Fall down to next step */
+ ctx->step++;
+
+ case INITIALIZATION_STEP_LAST:
+ /* We are done without errors! */
+
+ /* Handle method invocations */
+ g_signal_connect (ctx->skeleton,
+ "handle-setup",
+ G_CALLBACK (handle_setup),
+ ctx->self);
+ /* Finally, export the new interface */
+ mm_gdbus_object_skeleton_set_modem_signal (MM_GDBUS_OBJECT_SKELETON (ctx->self),
+ MM_GDBUS_MODEM_SIGNAL (ctx->skeleton));
+
+ g_simple_async_result_set_op_res_gboolean (ctx->result, TRUE);
+ initialization_context_complete_and_free (ctx);
+ return;
+ }
+
+ g_assert_not_reached ();
+}
+
+void
+mm_iface_modem_signal_initialize (MMIfaceModemSignal *self,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ InitializationContext *ctx;
+ MmGdbusModemSignal *skeleton = NULL;
+
+ /* Did we already create it? */
+ g_object_get (self,
+ MM_IFACE_MODEM_SIGNAL_DBUS_SKELETON, &skeleton,
+ NULL);
+ if (!skeleton) {
+ skeleton = mm_gdbus_modem_signal_skeleton_new ();
+ clear_values (self);
+ g_object_set (self,
+ MM_IFACE_MODEM_SIGNAL_DBUS_SKELETON, skeleton,
+ NULL);
+ }
+
+ /* Perform async initialization here */
+
+ ctx = g_slice_new0 (InitializationContext);
+ ctx->self = g_object_ref (self);
+ ctx->cancellable = g_object_ref (cancellable);
+ ctx->result = g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ mm_iface_modem_signal_initialize);
+ ctx->step = INITIALIZATION_STEP_FIRST;
+ ctx->skeleton = skeleton;
+
+ interface_initialization_step (ctx);
+}
+
+void
+mm_iface_modem_signal_shutdown (MMIfaceModemSignal *self)
+{
+ /* Unexport DBus interface and remove the skeleton */
+ mm_gdbus_object_skeleton_set_modem_signal (MM_GDBUS_OBJECT_SKELETON (self), NULL);
+ g_object_set (self,
+ MM_IFACE_MODEM_SIGNAL_DBUS_SKELETON, NULL,
+ NULL);
+}
+
+/*****************************************************************************/
+
+static void
+iface_modem_signal_init (gpointer g_iface)
+{
+ static gboolean initialized = FALSE;
+
+ if (initialized)
+ return;
+
+ /* Properties */
+ g_object_interface_install_property
+ (g_iface,
+ g_param_spec_object (MM_IFACE_MODEM_SIGNAL_DBUS_SKELETON,
+ "Signal DBus skeleton",
+ "DBus skeleton for the Signal interface",
+ MM_GDBUS_TYPE_MODEM_SIGNAL_SKELETON,
+ G_PARAM_READWRITE));
+
+ initialized = TRUE;
+}
+
+GType
+mm_iface_modem_signal_get_type (void)
+{
+ static GType iface_modem_signal_type = 0;
+
+ if (!G_UNLIKELY (iface_modem_signal_type)) {
+ static const GTypeInfo info = {
+ sizeof (MMIfaceModemSignal), /* class_size */
+ iface_modem_signal_init, /* base_init */
+ NULL, /* base_finalize */
+ };
+
+ iface_modem_signal_type = g_type_register_static (G_TYPE_INTERFACE,
+ "MMIfaceModemSignal",
+ &info,
+ 0);
+
+ g_type_interface_add_prerequisite (iface_modem_signal_type, MM_TYPE_IFACE_MODEM);
+ }
+
+ return iface_modem_signal_type;
+}
diff --git a/src/mm-iface-modem-signal.h b/src/mm-iface-modem-signal.h
new file mode 100644
index 0000000..1d49e5f
--- /dev/null
+++ b/src/mm-iface-modem-signal.h
@@ -0,0 +1,95 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details:
+ *
+ * Copyright (C) 2013 Aleksander Morgado <aleksander@gnu.org>
+ */
+
+#ifndef MM_IFACE_MODEM_SIGNAL_H
+#define MM_IFACE_MODEM_SIGNAL_H
+
+#include <glib-object.h>
+#include <gio/gio.h>
+
+#define _LIBMM_INSIDE_MM
+#include <libmm-glib.h>
+
+#define MM_TYPE_IFACE_MODEM_SIGNAL (mm_iface_modem_signal_get_type ())
+#define MM_IFACE_MODEM_SIGNAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MM_TYPE_IFACE_MODEM_SIGNAL, MMIfaceModemSignal))
+#define MM_IS_IFACE_MODEM_SIGNAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MM_TYPE_IFACE_MODEM_SIGNAL))
+#define MM_IFACE_MODEM_SIGNAL_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), MM_TYPE_IFACE_MODEM_SIGNAL, MMIfaceModemSignal))
+
+#define MM_IFACE_MODEM_SIGNAL_DBUS_SKELETON "iface-modem-signal-dbus-skeleton"
+
+typedef struct _MMIfaceModemSignal MMIfaceModemSignal;
+
+struct _MMIfaceModemSignal {
+ GTypeInterface g_iface;
+
+ /* Check for Messaging support (async) */
+ void (* check_support) (MMIfaceModemSignal *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+ gboolean (*check_support_finish) (MMIfaceModemSignal *self,
+ GAsyncResult *res,
+ GError **error);
+
+ /* Load all values */
+ void (* load_values) (MMIfaceModemSignal *self,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+ gboolean (* load_values_finish) (MMIfaceModemSignal *self,
+ GAsyncResult *res,
+ MMSignal **cdma,
+ MMSignal **evdo,
+ MMSignal **gsm,
+ MMSignal **umts,
+ MMSignal **lte,
+ GError **error);
+};
+
+GType mm_iface_modem_signal_get_type (void);
+
+/* Initialize Signal interface (async) */
+void mm_iface_modem_signal_initialize (MMIfaceModemSignal *self,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+gboolean mm_iface_modem_signal_initialize_finish (MMIfaceModemSignal *self,
+ GAsyncResult *res,
+ GError **error);
+
+/* Enable Signal interface (async) */
+void mm_iface_modem_signal_enable (MMIfaceModemSignal *self,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+gboolean mm_iface_modem_signal_enable_finish (MMIfaceModemSignal *self,
+ GAsyncResult *res,
+ GError **error);
+
+/* Disable Signal interface (async) */
+void mm_iface_modem_signal_disable (MMIfaceModemSignal *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+gboolean mm_iface_modem_signal_disable_finish (MMIfaceModemSignal *self,
+ GAsyncResult *res,
+ GError **error);
+
+/* Shutdown Signal interface */
+void mm_iface_modem_signal_shutdown (MMIfaceModemSignal *self);
+
+/* Bind properties for simple GetStatus() */
+void mm_iface_modem_signal_bind_simple_status (MMIfaceModemSignal *self,
+ MMSimpleStatus *status);
+
+#endif /* MM_IFACE_MODEM_SIGNAL_H */
diff --git a/src/mm-iface-modem.c b/src/mm-iface-modem.c
index f0f10ce..5edbbae 100644
--- a/src/mm-iface-modem.c
+++ b/src/mm-iface-modem.c
@@ -80,12 +80,12 @@ mm_iface_modem_bind_simple_status (MMIfaceModem *self,
/*****************************************************************************/
/* Helper method to wait for a final state */
-#define MODEM_STATE_IS_INTERMEDIATE(state) \
- (state == MM_MODEM_STATE_INITIALIZING || \
- state == MM_MODEM_STATE_INITIALIZING || \
- state == MM_MODEM_STATE_INITIALIZING || \
- state == MM_MODEM_STATE_INITIALIZING || \
- state == MM_MODEM_STATE_INITIALIZING)
+#define MODEM_STATE_IS_INTERMEDIATE(state) \
+ (state == MM_MODEM_STATE_INITIALIZING || \
+ state == MM_MODEM_STATE_DISABLING || \
+ state == MM_MODEM_STATE_ENABLING || \
+ state == MM_MODEM_STATE_DISCONNECTING || \
+ state == MM_MODEM_STATE_CONNECTING)
typedef struct {
MMIfaceModem *self;
@@ -98,9 +98,14 @@ typedef struct {
static void
wait_for_final_state_context_complete_and_free (WaitForFinalStateContext *ctx)
{
+ /* The callback associated with 'ctx->result' may update the modem state.
+ * Disconnect the signal handler for modem state changes before completing
+ * 'ctx->result' in order to prevent state_changed from being invoked, which
+ * invokes wait_for_final_state_context_complete_and_free (ctx) again. */
+ g_signal_handler_disconnect (ctx->self, ctx->state_changed_id);
+
g_simple_async_result_complete (ctx->result);
g_object_unref (ctx->result);
- g_signal_handler_disconnect (ctx->self, ctx->state_changed_id);
g_source_remove (ctx->state_changed_wait_id);
g_object_unref (ctx->self);
g_slice_free (WaitForFinalStateContext, ctx);
@@ -206,6 +211,169 @@ mm_iface_modem_wait_for_final_state (MMIfaceModem *self,
}
/*****************************************************************************/
+/* Helper method to load unlock required, considering retries */
+
+#define MAX_RETRIES 6
+
+typedef struct {
+ MMIfaceModem *self;
+ GSimpleAsyncResult *result;
+ guint retries;
+ guint pin_check_timeout_id;
+} InternalLoadUnlockRequiredContext;
+
+static void
+internal_load_unlock_required_context_complete_and_free (InternalLoadUnlockRequiredContext *ctx)
+{
+ g_simple_async_result_complete_in_idle (ctx->result);
+ g_object_unref (ctx->result);
+ g_object_unref (ctx->self);
+ g_slice_free (InternalLoadUnlockRequiredContext, ctx);
+}
+
+static MMModemLock
+internal_load_unlock_required_finish (MMIfaceModem *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error))
+ return MM_MODEM_LOCK_UNKNOWN;
+
+ return (MMModemLock) GPOINTER_TO_UINT (g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (res)));
+}
+
+static void internal_load_unlock_required_context_step (InternalLoadUnlockRequiredContext *ctx);
+
+static gboolean
+load_unlock_required_again (InternalLoadUnlockRequiredContext *ctx)
+{
+ ctx->pin_check_timeout_id = 0;
+ /* Retry the step */
+ internal_load_unlock_required_context_step (ctx);
+ return FALSE;
+}
+
+static void
+load_unlock_required_ready (MMIfaceModem *self,
+ GAsyncResult *res,
+ InternalLoadUnlockRequiredContext *ctx)
+{
+ GError *error = NULL;
+ MMModemLock lock;
+
+ lock = MM_IFACE_MODEM_GET_INTERFACE (self)->load_unlock_required_finish (self, res, &error);
+ if (error) {
+ mm_dbg ("Couldn't check if unlock required: '%s'", error->message);
+
+ /* For several kinds of errors, just return them directly */
+ if (error->domain == MM_SERIAL_ERROR ||
+ g_error_matches (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_CANCELLED) ||
+ g_error_matches (error,
+ MM_MOBILE_EQUIPMENT_ERROR,
+ MM_MOBILE_EQUIPMENT_ERROR_SIM_NOT_INSERTED) ||
+ g_error_matches (error,
+ MM_MOBILE_EQUIPMENT_ERROR,
+ MM_MOBILE_EQUIPMENT_ERROR_SIM_FAILURE) ||
+ g_error_matches (error,
+ MM_MOBILE_EQUIPMENT_ERROR,
+ MM_MOBILE_EQUIPMENT_ERROR_SIM_WRONG)) {
+ g_simple_async_result_take_error (ctx->result, error);
+ internal_load_unlock_required_context_complete_and_free (ctx);
+ return;
+ }
+
+ /* For the remaining ones, retry if possible */
+ if (ctx->retries < MAX_RETRIES) {
+ ctx->retries++;
+ mm_dbg ("Retrying (%u) unlock required check", ctx->retries);
+
+ g_assert (ctx->pin_check_timeout_id == 0);
+ ctx->pin_check_timeout_id = g_timeout_add_seconds (2,
+ (GSourceFunc)load_unlock_required_again,
+ ctx);
+ g_error_free (error);
+ return;
+ }
+
+ /* If reached max retries and still reporting error... default to SIM error */
+ g_error_free (error);
+ g_simple_async_result_set_error (ctx->result,
+ MM_MOBILE_EQUIPMENT_ERROR,
+ MM_MOBILE_EQUIPMENT_ERROR_SIM_FAILURE,
+ "Couldn't get SIM lock status after %u retries",
+ MAX_RETRIES);
+ internal_load_unlock_required_context_complete_and_free (ctx);
+ return;
+ }
+
+ /* Got the lock value, return it */
+ g_simple_async_result_set_op_res_gpointer (ctx->result,
+ GUINT_TO_POINTER (lock),
+ NULL);
+ internal_load_unlock_required_context_complete_and_free (ctx);
+}
+
+static void
+internal_load_unlock_required_context_step (InternalLoadUnlockRequiredContext *ctx)
+{
+ g_assert (ctx->pin_check_timeout_id == 0);
+ MM_IFACE_MODEM_GET_INTERFACE (ctx->self)->load_unlock_required (
+ ctx->self,
+ (GAsyncReadyCallback)load_unlock_required_ready,
+ ctx);
+}
+
+static void
+internal_load_unlock_required (MMIfaceModem *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ InternalLoadUnlockRequiredContext *ctx;
+
+ ctx = g_slice_new0 (InternalLoadUnlockRequiredContext);
+ ctx->self = g_object_ref (self);
+ ctx->result = g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ internal_load_unlock_required);
+
+ if (!MM_IFACE_MODEM_GET_INTERFACE (ctx->self)->load_unlock_required ||
+ !MM_IFACE_MODEM_GET_INTERFACE (ctx->self)->load_unlock_required_finish) {
+ /* Just assume that no lock is required */
+ g_simple_async_result_set_op_res_gboolean (ctx->result, TRUE);
+ internal_load_unlock_required_context_complete_and_free (ctx);
+ return;
+ }
+
+ internal_load_unlock_required_context_step (ctx);
+}
+
+/*****************************************************************************/
+
+static void
+bearer_list_updated (MMBearerList *bearer_list,
+ GParamSpec *pspec,
+ MMIfaceModem *self)
+{
+ MmGdbusModem *skeleton;
+ gchar **paths;
+
+ g_object_get (self,
+ MM_IFACE_MODEM_DBUS_SKELETON, &skeleton,
+ NULL);
+ if (!skeleton)
+ return;
+
+ paths = mm_bearer_list_get_paths (bearer_list);
+ mm_gdbus_modem_set_bearers (skeleton, (const gchar *const *)paths);
+ g_strfreev (paths);
+
+ g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (skeleton));
+}
+
+/*****************************************************************************/
static MMModemState get_current_consolidated_state (MMIfaceModem *self, MMModemState modem_state);
@@ -1331,7 +1499,7 @@ get_updated_consolidated_state (MMIfaceModem *self,
/* Reported subsystem states will be REGISTRATION-related. This means
* that we would only expect a subset of the states being reported for
- * the subystem. Warn if we get others */
+ * the subsystem. Warn if we get others */
g_warn_if_fail (subsystem_state == MM_MODEM_STATE_ENABLED ||
subsystem_state == MM_MODEM_STATE_SEARCHING ||
subsystem_state == MM_MODEM_STATE_REGISTERED);
@@ -1626,7 +1794,6 @@ handle_reset_auth_ready (MMBaseModem *self,
GAsyncResult *res,
HandleResetContext *ctx)
{
- MMModemState modem_state;
GError *error = NULL;
if (!mm_base_modem_authorize_finish (self, res, &error)) {
@@ -1646,20 +1813,6 @@ handle_reset_auth_ready (MMBaseModem *self,
return;
}
- modem_state = MM_MODEM_STATE_UNKNOWN;
- g_object_get (self,
- MM_IFACE_MODEM_STATE, &modem_state,
- NULL);
-
- if (modem_state < MM_MODEM_STATE_DISABLED) {
- g_dbus_method_invocation_return_error (ctx->invocation,
- MM_CORE_ERROR,
- MM_CORE_ERROR_WRONG_STATE,
- "Cannot reset modem: not initialized/unlocked yet");
- handle_reset_context_free (ctx);
- return;
- }
-
MM_IFACE_MODEM_GET_INTERFACE (self)->reset (MM_IFACE_MODEM (self),
(GAsyncReadyCallback)handle_reset_ready,
ctx);
@@ -1725,7 +1878,6 @@ handle_factory_reset_auth_ready (MMBaseModem *self,
GAsyncResult *res,
HandleFactoryResetContext *ctx)
{
- MMModemState modem_state;
GError *error = NULL;
if (!mm_base_modem_authorize_finish (self, res, &error)) {
@@ -1746,21 +1898,6 @@ handle_factory_reset_auth_ready (MMBaseModem *self,
return;
}
- modem_state = MM_MODEM_STATE_UNKNOWN;
- g_object_get (self,
- MM_IFACE_MODEM_STATE, &modem_state,
- NULL);
-
- if (modem_state < MM_MODEM_STATE_DISABLED) {
- g_dbus_method_invocation_return_error (ctx->invocation,
- MM_CORE_ERROR,
- MM_CORE_ERROR_WRONG_STATE,
- "Cannot reset the modem to factory defaults: "
- "not initialized/unlocked yet");
- handle_factory_reset_context_free (ctx);
- return;
- }
-
MM_IFACE_MODEM_GET_INTERFACE (self)->factory_reset (MM_IFACE_MODEM (self),
ctx->code,
(GAsyncReadyCallback)handle_factory_reset_ready,
@@ -2398,7 +2535,7 @@ mm_iface_modem_set_current_modes (MMIfaceModem *self,
supported = mm_common_mode_combinations_variant_to_garray (
mm_gdbus_modem_get_supported_modes (ctx->skeleton));
- /* Don't allow mode switchin if only one item given in the supported list */
+ /* Don't allow mode switching if only one item given in the supported list */
if (supported->len == 1) {
g_simple_async_result_set_error (ctx->result,
MM_CORE_ERROR,
@@ -2701,8 +2838,6 @@ typedef enum {
typedef struct {
MMIfaceModem *self;
UpdateLockInfoContextStep step;
- guint pin_check_tries;
- guint pin_check_timeout_id;
GSimpleAsyncResult *result;
MmGdbusModem *skeleton;
MMModemLock lock;
@@ -2775,23 +2910,14 @@ modem_after_sim_unlock_ready (MMIfaceModem *self,
update_lock_info_context_step (ctx);
}
-static gboolean
-load_unlock_required_again (UpdateLockInfoContext *ctx)
-{
- ctx->pin_check_timeout_id = 0;
- /* Retry the step */
- update_lock_info_context_step (ctx);
- return FALSE;
-}
-
static void
-load_unlock_required_ready (MMIfaceModem *self,
- GAsyncResult *res,
- UpdateLockInfoContext *ctx)
+internal_load_unlock_required_ready (MMIfaceModem *self,
+ GAsyncResult *res,
+ UpdateLockInfoContext *ctx)
{
GError *error = NULL;
- ctx->lock = MM_IFACE_MODEM_GET_INTERFACE (self)->load_unlock_required_finish (self, res, &error);
+ ctx->lock = internal_load_unlock_required_finish (self, res, &error);
if (error) {
/* Treat several SIM related, serial and other core errors as critical
* and abort the checks. These will end up moving the modem to a FAILED
@@ -2804,44 +2930,32 @@ load_unlock_required_ready (MMIfaceModem *self,
ctx->step = UPDATE_LOCK_INFO_CONTEXT_STEP_LAST;
update_lock_info_context_step (ctx);
return;
- } else if (g_error_matches (error,
- MM_MOBILE_EQUIPMENT_ERROR,
- MM_MOBILE_EQUIPMENT_ERROR_SIM_NOT_INSERTED) ||
- g_error_matches (error,
- MM_MOBILE_EQUIPMENT_ERROR,
- MM_MOBILE_EQUIPMENT_ERROR_SIM_FAILURE) ||
- g_error_matches (error,
- MM_MOBILE_EQUIPMENT_ERROR,
- MM_MOBILE_EQUIPMENT_ERROR_SIM_WRONG)) {
- if (mm_iface_modem_is_cdma (self)) {
- /* For mixed 3GPP+3GPP2 devices, skip SIM errors */
- mm_dbg ("Skipping SIM error in 3GPP2-capable device, assuming no lock is needed");
- g_error_free (error);
- ctx->lock = MM_MODEM_LOCK_NONE;
- } else {
- /* SIM errors are only critical in 3GPP-only devices */
+ }
+
+ if (g_error_matches (error,
+ MM_MOBILE_EQUIPMENT_ERROR,
+ MM_MOBILE_EQUIPMENT_ERROR_SIM_NOT_INSERTED) ||
+ g_error_matches (error,
+ MM_MOBILE_EQUIPMENT_ERROR,
+ MM_MOBILE_EQUIPMENT_ERROR_SIM_FAILURE) ||
+ g_error_matches (error,
+ MM_MOBILE_EQUIPMENT_ERROR,
+ MM_MOBILE_EQUIPMENT_ERROR_SIM_WRONG)) {
+ /* SIM errors are only critical in 3GPP-only devices */
+ if (!mm_iface_modem_is_cdma (self)) {
ctx->saved_error = error;
ctx->step = UPDATE_LOCK_INFO_CONTEXT_STEP_LAST;
update_lock_info_context_step (ctx);
return;
}
+
+ /* For mixed 3GPP+3GPP2 devices, skip SIM errors */
+ mm_dbg ("Skipping SIM error in 3GPP2-capable device, assuming no lock is needed");
+ g_error_free (error);
+ ctx->lock = MM_MODEM_LOCK_NONE;
} else {
mm_dbg ("Couldn't check if unlock required: '%s'", error->message);
g_error_free (error);
-
- /* Retry up to 6 times */
- if (mm_gdbus_modem_get_unlock_required (ctx->skeleton) != MM_MODEM_LOCK_NONE &&
- ++ctx->pin_check_tries < 6) {
- mm_dbg ("Retrying (%u) unlock required check", ctx->pin_check_tries);
- if (ctx->pin_check_timeout_id)
- g_source_remove (ctx->pin_check_timeout_id);
- ctx->pin_check_timeout_id = g_timeout_add_seconds (2,
- (GSourceFunc)load_unlock_required_again,
- ctx);
- return;
- }
-
- /* If reached max retries and still reporting error, set UNKNOWN */
ctx->lock = MM_MODEM_LOCK_UNKNOWN;
}
}
@@ -2873,12 +2987,10 @@ update_lock_info_context_step (UpdateLockInfoContext *ctx)
/* Don't re-ask if already known */
if (ctx->lock == MM_MODEM_LOCK_UNKNOWN) {
/* If we're already unlocked, we're done */
- if (mm_gdbus_modem_get_unlock_required (ctx->skeleton) != MM_MODEM_LOCK_NONE &&
- MM_IFACE_MODEM_GET_INTERFACE (ctx->self)->load_unlock_required &&
- MM_IFACE_MODEM_GET_INTERFACE (ctx->self)->load_unlock_required_finish) {
- MM_IFACE_MODEM_GET_INTERFACE (ctx->self)->load_unlock_required (
+ if (mm_gdbus_modem_get_unlock_required (ctx->skeleton) != MM_MODEM_LOCK_NONE) {
+ internal_load_unlock_required (
ctx->self,
- (GAsyncReadyCallback)load_unlock_required_ready,
+ (GAsyncReadyCallback)internal_load_unlock_required_ready,
ctx);
return;
}
@@ -3561,6 +3673,12 @@ initialization_context_complete_and_free_if_cancelled (InitializationContext *ct
if (!g_cancellable_is_cancelled (ctx->cancellable))
return FALSE;
+ /* Simply ignore any fatal error encountered as the initialization is cancelled anyway. */
+ if (ctx->fatal_error) {
+ g_error_free (ctx->fatal_error);
+ ctx->fatal_error = NULL;
+ }
+
g_simple_async_result_set_error (ctx->result,
MM_CORE_ERROR,
MM_CORE_ERROR_CANCELLED,
@@ -3617,13 +3735,13 @@ initialization_context_complete_and_free_if_cancelled (InitializationContext *ct
}
static void
-current_capabilities_load_unlock_required_ready (MMIfaceModem *self,
- GAsyncResult *res,
- InitializationContext *ctx)
+current_capabilities_internal_load_unlock_required_ready (MMIfaceModem *self,
+ GAsyncResult *res,
+ InitializationContext *ctx)
{
GError *error = NULL;
- MM_IFACE_MODEM_GET_INTERFACE (self)->load_unlock_required_finish (self, res, &error);
+ internal_load_unlock_required_finish (self, res, &error);
if (error) {
/* These SIM errors indicate that there is NO valid SIM available. So,
* remove all 3GPP caps from the current capabilities */
@@ -3682,13 +3800,11 @@ load_current_capabilities_ready (MMIfaceModem *self,
/* If the device is a multimode device (3GPP+3GPP2) check whether we have a
* SIM or not. */
if (caps & MM_MODEM_CAPABILITY_CDMA_EVDO &&
- (caps & MM_MODEM_CAPABILITY_GSM_UMTS || caps & MM_MODEM_CAPABILITY_LTE) &&
- MM_IFACE_MODEM_GET_INTERFACE (ctx->self)->load_unlock_required &&
- MM_IFACE_MODEM_GET_INTERFACE (ctx->self)->load_unlock_required_finish) {
+ (caps & MM_MODEM_CAPABILITY_GSM_UMTS || caps & MM_MODEM_CAPABILITY_LTE)) {
mm_dbg ("Checking if multimode device has a SIM...");
- MM_IFACE_MODEM_GET_INTERFACE (ctx->self)->load_unlock_required (
+ internal_load_unlock_required (
ctx->self,
- (GAsyncReadyCallback)current_capabilities_load_unlock_required_ready,
+ (GAsyncReadyCallback)current_capabilities_internal_load_unlock_required_ready,
ctx);
return;
}
@@ -3877,6 +3993,21 @@ sim_reinit_ready (MMSim *sim,
interface_initialization_step (ctx);
}
+void
+mm_iface_modem_update_own_numbers (MMIfaceModem *self,
+ const GStrv own_numbers)
+{
+ MmGdbusModem *skeleton = NULL;
+
+ g_object_get (self,
+ MM_IFACE_MODEM_DBUS_SKELETON, &skeleton,
+ NULL);
+ if (skeleton) {
+ mm_gdbus_modem_set_own_numbers (skeleton, (const gchar * const *)own_numbers);
+ g_object_unref (skeleton);
+ }
+}
+
static void
load_own_numbers_ready (MMIfaceModem *self,
GAsyncResult *res,
@@ -4106,6 +4237,10 @@ interface_initialization_step (InitializationContext *ctx)
/* Create new default list */
list = mm_bearer_list_new (n, n);
+ g_signal_connect (list,
+ "notify::" MM_BEARER_LIST_NUM_BEARERS,
+ G_CALLBACK (bearer_list_updated),
+ ctx->self);
g_object_set (ctx->self,
MM_IFACE_MODEM_BEARER_LIST, list,
NULL);
@@ -4335,7 +4470,7 @@ interface_initialization_step (InitializationContext *ctx)
* This will try to load any missing property value that couldn't be
* retrieved before due to having the SIM locked. */
mm_sim_initialize (sim,
- NULL, /* TODO: cancellable */
+ ctx->cancellable,
(GAsyncReadyCallback)sim_reinit_ready,
ctx);
g_object_unref (sim);
@@ -4441,6 +4576,17 @@ interface_initialization_step (InitializationContext *ctx)
"handle-set-current-capabilities",
G_CALLBACK (handle_set_current_capabilities),
ctx->self);
+ /* Allow the reset and factory reset operation in FAILED state to rescue the modem.
+ * Also, for a modem that doesn't support SIM hot swapping, a reset is needed to
+ * force the modem to detect the newly inserted SIM. */
+ g_signal_connect (ctx->skeleton,
+ "handle-reset",
+ G_CALLBACK (handle_reset),
+ ctx->self);
+ g_signal_connect (ctx->skeleton,
+ "handle-factory-reset",
+ G_CALLBACK (handle_factory_reset),
+ ctx->self);
if (ctx->fatal_error) {
g_simple_async_result_take_error (ctx->result, ctx->fatal_error);
@@ -4473,14 +4619,6 @@ interface_initialization_step (InitializationContext *ctx)
G_CALLBACK (handle_set_power_state),
ctx->self);
g_signal_connect (ctx->skeleton,
- "handle-reset",
- G_CALLBACK (handle_reset),
- ctx->self);
- g_signal_connect (ctx->skeleton,
- "handle-factory-reset",
- G_CALLBACK (handle_factory_reset),
- ctx->self);
- g_signal_connect (ctx->skeleton,
"handle-set-current-bands",
G_CALLBACK (handle_set_current_bands),
ctx->self);
@@ -4806,6 +4944,26 @@ mm_iface_modem_is_cdma_only (MMIfaceModem *self)
/*****************************************************************************/
+const gchar *
+mm_iface_modem_get_model (MMIfaceModem *self)
+{
+ const gchar *model = NULL;
+ MmGdbusModem *skeleton;
+
+ g_object_get (self,
+ MM_IFACE_MODEM_DBUS_SKELETON, &skeleton,
+ NULL);
+
+ if (skeleton) {
+ model = mm_gdbus_modem_get_model (skeleton);
+ g_object_unref (skeleton);
+ }
+
+ return model;
+}
+
+/*****************************************************************************/
+
static void
iface_modem_init (gpointer g_iface)
{
diff --git a/src/mm-iface-modem.h b/src/mm-iface-modem.h
index cadf31e..d8819c1 100644
--- a/src/mm-iface-modem.h
+++ b/src/mm-iface-modem.h
@@ -344,6 +344,9 @@ gboolean mm_iface_modem_is_3g_only (MMIfaceModem *self);
gboolean mm_iface_modem_is_4g (MMIfaceModem *self);
gboolean mm_iface_modem_is_4g_only (MMIfaceModem *self);
+/* Helper to query model */
+const gchar *mm_iface_modem_get_model (MMIfaceModem *self);
+
/* Initialize Modem interface (async) */
void mm_iface_modem_initialize (MMIfaceModem *self,
GCancellable *cancellable,
@@ -416,6 +419,10 @@ void mm_iface_modem_update_state (MMIfaceModem *self,
void mm_iface_modem_update_failed_state (MMIfaceModem *self,
MMModemStateFailedReason failed_reason);
+/* Allow update own numbers */
+void mm_iface_modem_update_own_numbers (MMIfaceModem *self,
+ const GStrv own_numbers);
+
/* Allow reporting new access tech */
void mm_iface_modem_update_access_technologies (MMIfaceModem *self,
MMModemAccessTechnology access_tech,
diff --git a/src/mm-marshal.list b/src/mm-marshal.list
deleted file mode 100644
index 62b6882..0000000
--- a/src/mm-marshal.list
+++ /dev/null
@@ -1,3 +0,0 @@
-VOID:STRING,BOOLEAN
-VOID:STRING
-VOID:BOOLEAN
diff --git a/src/mm-modem-helpers-mbim.c b/src/mm-modem-helpers-mbim.c
index d58ed59..8060ace 100644
--- a/src/mm-modem-helpers-mbim.c
+++ b/src/mm-modem-helpers-mbim.c
@@ -14,6 +14,7 @@
*/
#include "mm-modem-helpers-mbim.h"
+#include "mm-modem-helpers.h"
#include "mm-enums-types.h"
#include "mm-errors-types.h"
#include "mm-log.h"
@@ -127,6 +128,53 @@ mm_modem_access_technology_from_mbim_data_class (MbimDataClass data_class)
/*****************************************************************************/
+MMModem3gppNetworkAvailability
+mm_modem_3gpp_network_availability_from_mbim_provider_state (MbimProviderState state)
+{
+ switch (state) {
+ case MBIM_PROVIDER_STATE_HOME:
+ case MBIM_PROVIDER_STATE_PREFERRED:
+ case MBIM_PROVIDER_STATE_VISIBLE:
+ case MBIM_PROVIDER_STATE_PREFERRED_MULTICARRIER:
+ return MM_MODEM_3GPP_NETWORK_AVAILABILITY_AVAILABLE;
+ case MBIM_PROVIDER_STATE_REGISTERED:
+ return MM_MODEM_3GPP_NETWORK_AVAILABILITY_CURRENT;
+ case MBIM_PROVIDER_STATE_FORBIDDEN:
+ return MM_MODEM_3GPP_NETWORK_AVAILABILITY_FORBIDDEN;
+ case MBIM_PROVIDER_STATE_UNKNOWN:
+ default:
+ return MM_MODEM_3GPP_NETWORK_AVAILABILITY_UNKNOWN;
+ }
+}
+
+/*****************************************************************************/
+
+GList *
+mm_3gpp_network_info_list_from_mbim_providers (const MbimProvider *const *providers, guint n_providers)
+{
+ GList *info_list = NULL;
+ guint i;
+
+ g_return_val_if_fail (providers != NULL, NULL);
+
+ for (i = 0; i < n_providers; i++) {
+ MM3gppNetworkInfo *info;
+
+ info = g_new0 (MM3gppNetworkInfo, 1);
+ info->status = mm_modem_3gpp_network_availability_from_mbim_provider_state (providers[i]->provider_state);
+ info->operator_long = g_strdup (providers[i]->provider_name);
+ info->operator_short = g_strdup (providers[i]->provider_name);
+ info->operator_code = g_strdup (providers[i]->provider_id);
+ info->access_tech = mm_modem_access_technology_from_mbim_data_class (providers[i]->cellular_class);
+
+ info_list = g_list_append (info_list, info);
+ }
+
+ return info_list;
+}
+
+/*****************************************************************************/
+
GError *
mm_mobile_equipment_error_from_mbim_nw_error (MbimNwError nw_error)
{
diff --git a/src/mm-modem-helpers-mbim.h b/src/mm-modem-helpers-mbim.h
index 28d8f7e..67b6b57 100644
--- a/src/mm-modem-helpers-mbim.h
+++ b/src/mm-modem-helpers-mbim.h
@@ -30,6 +30,10 @@ MMModem3gppRegistrationState mm_modem_3gpp_registration_state_from_mbim_register
MMModemAccessTechnology mm_modem_access_technology_from_mbim_data_class (MbimDataClass data_class);
+MMModem3gppNetworkAvailability mm_modem_3gpp_network_availability_from_mbim_provider_state (MbimProviderState state);
+
+GList *mm_3gpp_network_info_list_from_mbim_providers (const MbimProvider *const *providers, guint n_providers);
+
GError *mm_mobile_equipment_error_from_mbim_nw_error (MbimNwError nw_error);
/*****************************************************************************/
diff --git a/src/mm-modem-helpers-qmi.c b/src/mm-modem-helpers-qmi.c
index 61d8b27..4a818ec 100644
--- a/src/mm-modem-helpers-qmi.c
+++ b/src/mm-modem-helpers-qmi.c
@@ -1271,3 +1271,106 @@ mm_modem_capability_from_qmi_capabilities_context (MMQmiCapabilitiesContext *ctx
return tmp;
}
+
+/*****************************************************************************/
+
+MMOmaSessionType
+mm_oma_session_type_from_qmi_oma_session_type (QmiOmaSessionType qmi_session_type)
+{
+ switch (qmi_session_type) {
+ case QMI_OMA_SESSION_TYPE_CLIENT_INITIATED_DEVICE_CONFIGURE:
+ return MM_OMA_SESSION_TYPE_CLIENT_INITIATED_DEVICE_CONFIGURE;
+ case QMI_OMA_SESSION_TYPE_CLIENT_INITIATED_PRL_UPDATE:
+ return MM_OMA_SESSION_TYPE_CLIENT_INITIATED_PRL_UPDATE;
+ case QMI_OMA_SESSION_TYPE_CLIENT_INITIATED_HANDS_FREE_ACTIVATION:
+ return MM_OMA_SESSION_TYPE_CLIENT_INITIATED_HANDS_FREE_ACTIVATION;
+ case QMI_OMA_SESSION_TYPE_DEVICE_INITIATED_HANDS_FREE_ACTIVATION:
+ return MM_OMA_SESSION_TYPE_DEVICE_INITIATED_HANDS_FREE_ACTIVATION;
+ case QMI_OMA_SESSION_TYPE_NETWORK_INITIATED_PRL_UPDATE:
+ return MM_OMA_SESSION_TYPE_NETWORK_INITIATED_PRL_UPDATE;
+ case QMI_OMA_SESSION_TYPE_NETWORK_INITIATED_DEVICE_CONFIGURE:
+ return MM_OMA_SESSION_TYPE_NETWORK_INITIATED_DEVICE_CONFIGURE;
+ case QMI_OMA_SESSION_TYPE_DEVICE_INITIATED_PRL_UPDATE:
+ return MM_OMA_SESSION_TYPE_DEVICE_INITIATED_PRL_UPDATE;
+ default:
+ return MM_OMA_SESSION_TYPE_UNKNOWN;
+ }
+}
+
+QmiOmaSessionType
+mm_oma_session_type_to_qmi_oma_session_type (MMOmaSessionType mm_session_type)
+{
+ switch (mm_session_type) {
+ case MM_OMA_SESSION_TYPE_CLIENT_INITIATED_DEVICE_CONFIGURE:
+ return QMI_OMA_SESSION_TYPE_CLIENT_INITIATED_DEVICE_CONFIGURE;
+ case MM_OMA_SESSION_TYPE_CLIENT_INITIATED_PRL_UPDATE:
+ return QMI_OMA_SESSION_TYPE_CLIENT_INITIATED_PRL_UPDATE;
+ case MM_OMA_SESSION_TYPE_CLIENT_INITIATED_HANDS_FREE_ACTIVATION:
+ return QMI_OMA_SESSION_TYPE_CLIENT_INITIATED_HANDS_FREE_ACTIVATION;
+ case MM_OMA_SESSION_TYPE_DEVICE_INITIATED_HANDS_FREE_ACTIVATION:
+ return QMI_OMA_SESSION_TYPE_DEVICE_INITIATED_HANDS_FREE_ACTIVATION;
+ case MM_OMA_SESSION_TYPE_NETWORK_INITIATED_PRL_UPDATE:
+ return QMI_OMA_SESSION_TYPE_NETWORK_INITIATED_PRL_UPDATE;
+ case MM_OMA_SESSION_TYPE_NETWORK_INITIATED_DEVICE_CONFIGURE:
+ return QMI_OMA_SESSION_TYPE_NETWORK_INITIATED_DEVICE_CONFIGURE;
+ case MM_OMA_SESSION_TYPE_DEVICE_INITIATED_PRL_UPDATE:
+ return QMI_OMA_SESSION_TYPE_DEVICE_INITIATED_PRL_UPDATE;
+ default:
+ g_assert_not_reached ();
+ }
+}
+
+MMOmaSessionState
+mm_oma_session_state_from_qmi_oma_session_state (QmiOmaSessionState qmi_session_state)
+{
+ /* Note: MM_OMA_SESSION_STATE_STARTED is not a state received from the modem */
+
+ switch (qmi_session_state) {
+ case QMI_OMA_SESSION_STATE_COMPLETE_INFORMATION_UPDATED:
+ case QMI_OMA_SESSION_STATE_COMPLETE_UPDATED_INFORMATION_UNAVAILABLE:
+ return MM_OMA_SESSION_STATE_COMPLETED;
+ case QMI_OMA_SESSION_STATE_FAILED:
+ return MM_OMA_SESSION_STATE_FAILED;
+ case QMI_OMA_SESSION_STATE_RETRYING:
+ return MM_OMA_SESSION_STATE_RETRYING;
+ case QMI_OMA_SESSION_STATE_CONNECTING:
+ return MM_OMA_SESSION_STATE_CONNECTING;
+ case QMI_OMA_SESSION_STATE_CONNECTED:
+ return MM_OMA_SESSION_STATE_CONNECTED;
+ case QMI_OMA_SESSION_STATE_AUTHENTICATED:
+ return MM_OMA_SESSION_STATE_AUTHENTICATED;
+ case QMI_OMA_SESSION_STATE_MDN_DOWNLOADED:
+ return MM_OMA_SESSION_STATE_MDN_DOWNLOADED;
+ case QMI_OMA_SESSION_STATE_MSID_DOWNLOADED:
+ return MM_OMA_SESSION_STATE_MSID_DOWNLOADED;
+ case QMI_OMA_SESSION_STATE_PRL_DOWNLOADED:
+ return MM_OMA_SESSION_STATE_PRL_DOWNLOADED;
+ case QMI_OMA_SESSION_STATE_MIP_PROFILE_DOWNLOADED:
+ return MM_OMA_SESSION_STATE_MIP_PROFILE_DOWNLOADED;
+ default:
+ return MM_OMA_SESSION_STATE_UNKNOWN;
+ }
+}
+
+/*****************************************************************************/
+
+MMOmaSessionStateFailedReason
+mm_oma_session_state_failed_reason_from_qmi_oma_session_failed_reason (QmiOmaSessionFailedReason qmi_session_failed_reason)
+{
+ switch (qmi_session_failed_reason) {
+ case QMI_OMA_SESSION_FAILED_REASON_UNKNOWN:
+ return MM_OMA_SESSION_STATE_FAILED_REASON_UNKNOWN;
+ case QMI_OMA_SESSION_FAILED_REASON_NETWORK_UNAVAILABLE:
+ return MM_OMA_SESSION_STATE_FAILED_REASON_NETWORK_UNAVAILABLE;
+ case QMI_OMA_SESSION_FAILED_REASON_SERVER_UNAVAILABLE:
+ return MM_OMA_SESSION_STATE_FAILED_REASON_SERVER_UNAVAILABLE;
+ case QMI_OMA_SESSION_FAILED_REASON_AUTHENTICATION_FAILED:
+ return MM_OMA_SESSION_STATE_FAILED_REASON_AUTHENTICATION_FAILED;
+ case QMI_OMA_SESSION_FAILED_REASON_MAX_RETRY_EXCEEDED:
+ return MM_OMA_SESSION_STATE_FAILED_REASON_MAX_RETRY_EXCEEDED;
+ case QMI_OMA_SESSION_FAILED_REASON_SESSION_CANCELLED:
+ return MM_OMA_SESSION_STATE_FAILED_REASON_SESSION_CANCELLED;
+ default:
+ return MM_OMA_SESSION_STATE_FAILED_REASON_UNKNOWN;
+ }
+}
diff --git a/src/mm-modem-helpers-qmi.h b/src/mm-modem-helpers-qmi.h
index 63b0531..fb3ef8d 100644
--- a/src/mm-modem-helpers-qmi.h
+++ b/src/mm-modem-helpers-qmi.h
@@ -95,6 +95,16 @@ MMSmsState mm_sms_state_from_qmi_message_tag (QmiWmsMessageTagType tag);
QmiWdsAuthentication mm_bearer_allowed_auth_to_qmi_authentication (MMBearerAllowedAuth auth);
/*****************************************************************************/
+/* QMI/OMA to MM translations */
+
+MMOmaSessionType mm_oma_session_type_from_qmi_oma_session_type (QmiOmaSessionType qmi_session_type);
+QmiOmaSessionType mm_oma_session_type_to_qmi_oma_session_type (MMOmaSessionType mm_session_type);
+
+MMOmaSessionState mm_oma_session_state_from_qmi_oma_session_state (QmiOmaSessionState qmi_session_state);
+
+MMOmaSessionStateFailedReason mm_oma_session_state_failed_reason_from_qmi_oma_session_failed_reason (QmiOmaSessionFailedReason qmi_session_failed_reason);
+
+/*****************************************************************************/
/* Utility to gather current capabilities from various sources */
typedef struct {
diff --git a/src/mm-modem-helpers.c b/src/mm-modem-helpers.c
index cd4ef76..9eefb33 100644
--- a/src/mm-modem-helpers.c
+++ b/src/mm-modem-helpers.c
@@ -333,20 +333,22 @@ mm_filter_supported_capabilities (MMModemCapability all,
#define CREG3 "\\+(CREG|CGREG|CEREG):\\s*0*([0-9]),\\s*([^,\\s]*)\\s*,\\s*([^,\\s]*)"
/* +CREG: <n>,<stat>,<lac>,<ci> (GSM 07.07 solicited and some CREG=2 unsolicited) */
-#define CREG4 "\\+(CREG|CGREG|CEREG):\\s*0*([0-9]),\\s*0*([0-9])\\s*,\\s*([^,]*)\\s*,\\s*([^,\\s]*)"
+#define CREG4 "\\+(CREG|CGREG|CEREG):\\s*([0-9]),\\s*([0-9])\\s*,\\s*([^,]*)\\s*,\\s*([^,\\s]*)"
+#define CREG5 "\\+(CREG|CGREG|CEREG):\\s*0*([0-9]),\\s*0*([0-9])\\s*,\\s*(\"[^,]*\")\\s*,\\s*(\"[^,\\s]*\")"
/* +CREG: <stat>,<lac>,<ci>,<AcT> (ETSI 27.007 CREG=2 unsolicited) */
-#define CREG5 "\\+(CREG|CGREG|CEREG):\\s*0*([0-9])\\s*,\\s*([^,\\s]*)\\s*,\\s*([^,\\s]*)\\s*,\\s*0*([0-9])"
+#define CREG6 "\\+(CREG|CGREG|CEREG):\\s*([0-9])\\s*,\\s*([^,\\s]*)\\s*,\\s*([^,\\s]*)\\s*,\\s*([0-9])"
+#define CREG7 "\\+(CREG|CGREG|CEREG):\\s*0*([0-9])\\s*,\\s*(\"[^,\\s]*\")\\s*,\\s*(\"[^,\\s]*\")\\s*,\\s*0*([0-9])"
/* +CREG: <n>,<stat>,<lac>,<ci>,<AcT> (ETSI 27.007 solicited and some CREG=2 unsolicited) */
-#define CREG6 "\\+(CREG|CGREG|CEREG):\\s*0*([0-9]),\\s*0*([0-9])\\s*,\\s*([^,\\s]*)\\s*,\\s*([^,\\s]*)\\s*,\\s*0*([0-9])"
+#define CREG8 "\\+(CREG|CGREG|CEREG):\\s*0*([0-9]),\\s*0*([0-9])\\s*,\\s*([^,\\s]*)\\s*,\\s*([^,\\s]*)\\s*,\\s*0*([0-9])"
/* +CREG: <n>,<stat>,<lac>,<ci>,<AcT?>,<something> (Samsung Wave S8500) */
/* '<CR><LF>+CREG: 2,1,000B,2816, B, C2816<CR><LF><CR><LF>OK<CR><LF>' */
-#define CREG7 "\\+(CREG|CGREG):\\s*0*([0-9]),\\s*0*([0-9])\\s*,\\s*([^,\\s]*)\\s*,\\s*([^,\\s]*)\\s*,\\s*([^,\\s]*)\\s*,\\s*[^,\\s]*"
+#define CREG9 "\\+(CREG|CGREG):\\s*0*([0-9]),\\s*0*([0-9])\\s*,\\s*([^,\\s]*)\\s*,\\s*([^,\\s]*)\\s*,\\s*([^,\\s]*)\\s*,\\s*[^,\\s]*"
/* +CREG: <stat>,<lac>,<ci>,<AcT>,<RAC> (ETSI 27.007 v9.20 CREG=2 unsolicited with RAC) */
-#define CREG8 "\\+(CREG|CGREG):\\s*0*([0-9])\\s*,\\s*([^,\\s]*)\\s*,\\s*([^,\\s]*)\\s*,\\s*0*([0-9])\\s*,\\s*([^,\\s]*)"
+#define CREG10 "\\+(CREG|CGREG):\\s*0*([0-9])\\s*,\\s*([^,\\s]*)\\s*,\\s*([^,\\s]*)\\s*,\\s*0*([0-9])\\s*,\\s*([^,\\s]*)"
/* +CEREG: <stat>,<lac>,<rac>,<ci>,<AcT> (ETSI 27.007 v8.6 CREG=2 unsolicited with RAC) */
#define CEREG1 "\\+(CEREG):\\s*0*([0-9])\\s*,\\s*([^,\\s]*)\\s*,\\s*([^,\\s]*)\\s*,\\s*([^,\\s]*)\\s*,\\s*0*([0-9])"
@@ -357,7 +359,7 @@ mm_filter_supported_capabilities (MMModemCapability all,
GPtrArray *
mm_3gpp_creg_regex_get (gboolean solicited)
{
- GPtrArray *array = g_ptr_array_sized_new (10);
+ GPtrArray *array = g_ptr_array_sized_new (12);
GRegex *regex;
/* #1 */
@@ -424,6 +426,22 @@ mm_3gpp_creg_regex_get (gboolean solicited)
g_assert (regex);
g_ptr_array_add (array, regex);
+ /* #9 */
+ if (solicited)
+ regex = g_regex_new (CREG9 "$", G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
+ else
+ regex = g_regex_new ("\\r\\n" CREG9 "\\r\\n", G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
+ g_assert (regex);
+ g_ptr_array_add (array, regex);
+
+ /* #10 */
+ if (solicited)
+ regex = g_regex_new (CREG10 "$", G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
+ else
+ regex = g_regex_new ("\\r\\n" CREG10 "\\r\\n", G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
+ g_assert (regex);
+ g_ptr_array_add (array, regex);
+
/* CEREG #1 */
if (solicited)
regex = g_regex_new (CEREG1 "$", G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
@@ -746,7 +764,7 @@ mm_3gpp_parse_cgdcont_test_response (const gchar *response,
return NULL;
}
- r = g_regex_new ("\\+CGDCONT:\\s*\\((\\d+)-(\\d+)\\),\\(?\"(\\S+)\"",
+ r = g_regex_new ("\\+CGDCONT:\\s*\\((\\d+)-?(\\d+)?\\),\\(?\"(\\S+)\"",
G_REGEX_DOLLAR_ENDONLY | G_REGEX_RAW,
0, &inner_error);
g_assert (r != NULL);
@@ -768,19 +786,18 @@ mm_3gpp_parse_cgdcont_test_response (const gchar *response,
if (!mm_get_uint_from_match_info (match_info, 1, &min_cid))
mm_warn ("Invalid min CID in CGDCONT=? reply for PDP type '%s'", pdp_type_str);
else {
- /* Read max CID */
+ MM3gppPdpContextFormat *format;
+
+ /* Read max CID: Optional! If no value given, we default to min CID */
if (!mm_get_uint_from_match_info (match_info, 2, &max_cid))
- mm_warn ("Invalid max CID in CGDCONT=? reply for PDP type '%s'", pdp_type_str);
- else {
- MM3gppPdpContextFormat *format;
+ max_cid = min_cid;
- format = g_slice_new (MM3gppPdpContextFormat);
- format->pdp_type = pdp_type;
- format->min_cid = min_cid;
- format->max_cid = max_cid;
+ format = g_slice_new (MM3gppPdpContextFormat);
+ format->pdp_type = pdp_type;
+ format->min_cid = min_cid;
+ format->max_cid = max_cid;
- list = g_list_prepend (list, format);
- }
+ list = g_list_prepend (list, format);
}
}
@@ -1760,7 +1777,7 @@ mm_string_to_access_tech (const gchar *string)
if (strcasestr (string, "HSDPA"))
act |= MM_MODEM_ACCESS_TECHNOLOGY_HSDPA;
- if (strcasestr (string, "UMTS"))
+ if (strcasestr (string, "UMTS") || strcasestr (string, "3G"))
act |= MM_MODEM_ACCESS_TECHNOLOGY_UMTS;
if (strcasestr (string, "EDGE"))
@@ -1873,6 +1890,105 @@ mm_3gpp_get_ip_family_from_pdp_type (const gchar *pdp_type)
/*************************************************************************/
+char *
+mm_3gpp_parse_iccid (const char *raw_iccid, GError **error)
+{
+ gboolean swap;
+ char *buf, *swapped = NULL;
+ gsize len = 0;
+ int f_pos = -1, i;
+
+ g_return_val_if_fail (raw_iccid != NULL, NULL);
+
+ /* Skip spaces and quotes */
+ while (raw_iccid && *raw_iccid && (isspace (*raw_iccid) || *raw_iccid == '"'))
+ raw_iccid++;
+
+ /* Make sure the buffer is only digits or 'F' */
+ buf = g_strdup (raw_iccid);
+ for (len = 0; buf[len]; len++) {
+ if (isdigit (buf[len]))
+ continue;
+ if (buf[len] == 'F' || buf[len] == 'f') {
+ buf[len] = 'F'; /* canonicalize the F */
+ f_pos = len;
+ continue;
+ }
+ if (buf[len] == '\"') {
+ buf[len] = 0;
+ break;
+ }
+
+ /* Invalid character */
+ g_set_error (error, MM_CORE_ERROR, MM_CORE_ERROR_FAILED,
+ "ICCID response contained invalid character '%c'",
+ buf[len]);
+ goto error;
+ }
+
+ /* BCD encoded ICCIDs are 20 digits long */
+ if (len != 20) {
+ g_set_error (error, MM_CORE_ERROR, MM_CORE_ERROR_FAILED,
+ "Invalid ICCID response size (was %zd, expected 20)",
+ len);
+ goto error;
+ }
+
+ /* The leading two digits of an ICCID is the major industry identifier and
+ * should be '89' for telecommunication purposes according to ISO/IEC 7812.
+ */
+ if (buf[0] == '8' && buf[1] == '9') {
+ swap = FALSE;
+ } else if (buf[0] == '9' && buf[1] == '8') {
+ swap = TRUE;
+ } else {
+ /* FIXME: Instead of erroring out, revisit this solution if we find any SIM
+ * that doesn't use '89' as the major industry identifier of the ICCID.
+ */
+ g_set_error (error, MM_CORE_ERROR, MM_CORE_ERROR_FAILED,
+ "Invalid ICCID response (leading two digits are not 89)");
+ goto error;
+ }
+
+ /* Ensure if there's an 'F' that it's second-to-last if swap = TRUE,
+ * otherwise last if swap = FALSE */
+ if (f_pos >= 0) {
+ if ((swap && (f_pos != len - 2)) || (!swap && (f_pos != len - 1))) {
+ g_set_error_literal (error, MM_CORE_ERROR, MM_CORE_ERROR_FAILED,
+ "Invalid ICCID length (unexpected F position)");
+ goto error;
+ }
+ }
+
+ if (swap) {
+ /* Swap digits in the ICCID response to get the actual ICCID, each
+ * group of 2 digits is reversed.
+ *
+ * 21436587 -> 12345678
+ */
+ swapped = g_malloc0 (25);
+ for (i = 0; i < 10; i++) {
+ swapped[i * 2] = buf[(i * 2) + 1];
+ swapped[(i * 2) + 1] = buf[i * 2];
+ }
+ } else
+ swapped = g_strdup (buf);
+
+ /* Zero out the F for 19 digit ICCIDs */
+ if (swapped[len - 1] == 'F')
+ swapped[len - 1] = 0;
+
+ g_free (buf);
+ return swapped;
+
+error:
+ g_free (buf);
+ g_free (swapped);
+ return NULL;
+}
+
+/*************************************************************************/
+
gboolean
mm_3gpp_parse_operator_id (const gchar *operator_id,
guint16 *mcc,
diff --git a/src/mm-modem-helpers.h b/src/mm-modem-helpers.h
index a1f1232..0ec59af 100644
--- a/src/mm-modem-helpers.h
+++ b/src/mm-modem-helpers.h
@@ -204,6 +204,8 @@ gboolean mm_3gpp_parse_operator_id (const gchar *operator_id,
const gchar *mm_3gpp_get_pdp_type_from_ip_family (MMBearerIpFamily family);
MMBearerIpFamily mm_3gpp_get_ip_family_from_pdp_type (const gchar *pdp_type);
+char *mm_3gpp_parse_iccid (const char *raw_iccid, GError **error);
+
/*****************************************************************************/
/* CDMA specific helpers and utilities */
/*****************************************************************************/
diff --git a/src/mm-plugin.c b/src/mm-plugin.c
index 9c28005..1d8bc83 100644
--- a/src/mm-plugin.c
+++ b/src/mm-plugin.c
@@ -33,7 +33,6 @@
#include "mm-at-serial-port.h"
#include "mm-qcdm-serial-port.h"
#include "mm-serial-parsers.h"
-#include "mm-marshal.h"
#include "mm-private-boxed-types.h"
#include "mm-log.h"
#include "mm-daemon-enums-types.h"
@@ -311,12 +310,17 @@ apply_pre_probing_filters (MMPlugin *self,
}
}
- /* If we got filtered by vendor or product IDs and we do not have vendor
- * or product strings to compare with: unsupported */
+ /* If we got filtered by vendor or product IDs; mark it as unsupported only if:
+ * a) we do not have vendor or product strings to compare with (i.e. plugin
+ * doesn't have explicit vendor/product strings
+ * b) the port is NOT an AT port which we can use for AT probing
+ */
if ((vendor_filtered || product_filtered) &&
- !self->priv->vendor_strings &&
- !self->priv->product_strings &&
- !self->priv->forbidden_product_strings) {
+ ((!self->priv->vendor_strings &&
+ !self->priv->product_strings &&
+ !self->priv->forbidden_product_strings) ||
+ g_str_equal (g_udev_device_get_subsystem (port), "net") ||
+ g_str_has_prefix (g_udev_device_get_name (port), "cdc-wdm"))) {
mm_dbg ("(%s) [%s] filtered by vendor/product IDs",
self->priv->name,
g_udev_device_get_name (port));
diff --git a/src/mm-port-probe.c b/src/mm-port-probe.c
index 8fb5706..4c64f2a 100644
--- a/src/mm-port-probe.c
+++ b/src/mm-port-probe.c
@@ -328,8 +328,10 @@ port_probe_run_task_free (PortProbeRunTask *task)
g_source_remove (task->source_id);
if (task->serial) {
- if (task->buffer_full_id)
+ if (task->buffer_full_id) {
+ g_warn_if_fail (MM_IS_AT_SERIAL_PORT (task->serial));
g_signal_handler_disconnect (task->serial, task->buffer_full_id);
+ }
if (mm_serial_port_is_open (task->serial))
mm_serial_port_close (task->serial);
g_object_unref (task->serial);
@@ -367,8 +369,8 @@ port_probe_run_task_complete (PortProbeRunTask *task,
{
/* As soon as we have the task completed, disable the buffer-full signal
* handling, so that we do not get unwanted errors reported */
- if (task->buffer_full_id) {
- g_source_remove (task->buffer_full_id);
+ if (task->serial && task->buffer_full_id) {
+ g_signal_handler_disconnect (task->serial, task->buffer_full_id);
task->buffer_full_id = 0;
}
@@ -658,6 +660,11 @@ serial_probe_qcdm (MMPortProbe *self)
/* If open, close the AT port */
if (task->serial) {
+ /* Explicitly clear the buffer full signal handler */
+ if (task->buffer_full_id) {
+ g_signal_handler_disconnect (task->serial, task->buffer_full_id);
+ task->buffer_full_id = 0;
+ }
mm_serial_port_close (task->serial);
g_object_unref (task->serial);
}
@@ -1146,7 +1153,6 @@ serial_open_at (MMPortProbe *self)
MM_SERIAL_PORT_SEND_DELAY, task->at_send_delay,
MM_AT_SERIAL_PORT_REMOVE_ECHO, task->at_remove_echo,
MM_AT_SERIAL_PORT_SEND_LF, task->at_send_lf,
- MM_PORT_CARRIER_DETECT, FALSE,
MM_SERIAL_PORT_SPEW_CONTROL, TRUE,
NULL);
diff --git a/src/mm-port.c b/src/mm-port.c
index 0d7ce75..6db4cc3 100644
--- a/src/mm-port.c
+++ b/src/mm-port.c
@@ -28,7 +28,6 @@ enum {
PROP_DEVICE,
PROP_SUBSYS,
PROP_TYPE,
- PROP_CARRIER_DETECT,
PROP_CONNECTED,
LAST_PROP
@@ -40,7 +39,6 @@ typedef struct {
char *device;
MMPortSubsys subsys;
MMPortType ptype;
- gboolean carrier_detect;
gboolean connected;
} MMPortPrivate;
@@ -114,15 +112,6 @@ mm_port_get_port_type (MMPort *self)
}
gboolean
-mm_port_get_carrier_detect (MMPort *self)
-{
- g_return_val_if_fail (self != NULL, MM_PORT_TYPE_UNKNOWN);
- g_return_val_if_fail (MM_IS_PORT (self), MM_PORT_TYPE_UNKNOWN);
-
- return MM_PORT_GET_PRIVATE (self)->carrier_detect;
-}
-
-gboolean
mm_port_get_connected (MMPort *self)
{
g_return_val_if_fail (self != NULL, FALSE);
@@ -176,9 +165,6 @@ set_property (GObject *object, guint prop_id,
/* Construct only */
priv->ptype = g_value_get_uint (value);
break;
- case PROP_CARRIER_DETECT:
- priv->carrier_detect = g_value_get_boolean (value);
- break;
case PROP_CONNECTED:
priv->connected = g_value_get_boolean (value);
break;
@@ -204,9 +190,6 @@ get_property (GObject *object, guint prop_id,
case PROP_TYPE:
g_value_set_uint (value, priv->ptype);
break;
- case PROP_CARRIER_DETECT:
- g_value_set_boolean (value, priv->carrier_detect);
- break;
case PROP_CONNECTED:
g_value_set_boolean (value, priv->connected);
break;
@@ -268,14 +251,6 @@ mm_port_class_init (MMPortClass *klass)
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
g_object_class_install_property
- (object_class, PROP_CARRIER_DETECT,
- g_param_spec_boolean (MM_PORT_CARRIER_DETECT,
- "Carrier Detect",
- "Has Carrier Detect",
- TRUE,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
-
- g_object_class_install_property
(object_class, PROP_CONNECTED,
g_param_spec_boolean (MM_PORT_CONNECTED,
"Connected",
diff --git a/src/mm-port.h b/src/mm-port.h
index e5395b4..6fc38a9 100644
--- a/src/mm-port.h
+++ b/src/mm-port.h
@@ -48,11 +48,10 @@ typedef enum { /*< underscore_name=mm_port_type >*/
#define MM_IS_PORT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MM_TYPE_PORT))
#define MM_PORT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MM_TYPE_PORT, MMPortClass))
-#define MM_PORT_DEVICE "device"
-#define MM_PORT_SUBSYS "subsys"
-#define MM_PORT_TYPE "type"
-#define MM_PORT_CARRIER_DETECT "carrier-detect"
-#define MM_PORT_CONNECTED "connected"
+#define MM_PORT_DEVICE "device"
+#define MM_PORT_SUBSYS "subsys"
+#define MM_PORT_TYPE "type"
+#define MM_PORT_CONNECTED "connected"
typedef struct _MMPort MMPort;
typedef struct _MMPortClass MMPortClass;
@@ -73,8 +72,6 @@ MMPortSubsys mm_port_get_subsys (MMPort *self);
MMPortType mm_port_get_port_type (MMPort *self);
-gboolean mm_port_get_carrier_detect (MMPort *self);
-
gboolean mm_port_get_connected (MMPort *self);
void mm_port_set_connected (MMPort *self, gboolean connected);
diff --git a/src/mm-qmi-port.c b/src/mm-qmi-port.c
index a26fdab..02ef09f 100644
--- a/src/mm-qmi-port.c
+++ b/src/mm-qmi-port.c
@@ -216,6 +216,12 @@ qmi_device_new_ready (GObject *unused,
GError *error = NULL;
QmiDeviceOpenFlags flags = QMI_DEVICE_OPEN_FLAGS_VERSION_INFO;
+ /* If possible, try to open the QMI port through the QMI proxy daemon, which
+ * allows other applications to also talk to the QMI port properly. */
+#if QMI_CHECK_VERSION (1,7,0)
+ flags |= QMI_DEVICE_OPEN_FLAGS_PROXY;
+#endif
+
ctx->self->priv->qmi_device = qmi_device_new_finish (res, &error);
if (!ctx->self->priv->qmi_device) {
g_simple_async_result_take_error (ctx->result, error);
diff --git a/src/mm-serial-port.c b/src/mm-serial-port.c
index 0f81c7b..cc4fc46 100644
--- a/src/mm-serial-port.c
+++ b/src/mm-serial-port.c
@@ -868,12 +868,22 @@ mm_serial_port_open (MMSerialPort *self, GError **error)
const char *device;
struct serial_struct sinfo = { 0 };
GTimeVal tv_start, tv_end;
+ int errno_save = 0;
g_return_val_if_fail (MM_IS_SERIAL_PORT (self), FALSE);
priv = MM_SERIAL_PORT_GET_PRIVATE (self);
device = mm_port_get_device (MM_PORT (self));
+ if (priv->forced_close) {
+ g_set_error (error,
+ MM_SERIAL_ERROR,
+ MM_SERIAL_ERROR_OPEN_FAILED,
+ "Could not open serial device %s: it has been forced close",
+ device);
+ return FALSE;
+ }
+
if (priv->reopen_id) {
g_set_error (error,
MM_SERIAL_ERROR,
@@ -897,6 +907,7 @@ mm_serial_port_open (MMSerialPort *self, GError **error)
devfile = g_strdup_printf ("/dev/%s", device);
errno = 0;
priv->fd = open (devfile, O_RDWR | O_EXCL | O_NONBLOCK | O_NOCTTY);
+ errno_save = errno;
g_free (devfile);
}
@@ -908,13 +919,16 @@ mm_serial_port_open (MMSerialPort *self, GError **error)
g_set_error (error,
MM_SERIAL_ERROR,
(errno == ENODEV) ? MM_SERIAL_ERROR_OPEN_FAILED_NO_DEVICE : MM_SERIAL_ERROR_OPEN_FAILED,
- "Could not open serial device %s: %s", device, strerror (errno));
+ "Could not open serial device %s: %s", device, strerror (errno_save));
+ mm_warn ("(%s) could not open serial device (%d)", device, errno_save);
return FALSE;
}
if (ioctl (priv->fd, TIOCEXCL) < 0) {
+ errno_save = errno;
g_set_error (error, MM_SERIAL_ERROR, MM_SERIAL_ERROR_OPEN_FAILED,
- "Could not lock serial device %s: %s", device, strerror (errno));
+ "Could not lock serial device %s: %s", device, strerror (errno_save));
+ mm_warn ("(%s) could not lock serial device (%d)", device, errno_save);
goto error;
}
@@ -922,14 +936,18 @@ mm_serial_port_open (MMSerialPort *self, GError **error)
tcflush (priv->fd, TCIOFLUSH);
if (tcgetattr (priv->fd, &priv->old_t) < 0) {
+ errno_save = errno;
g_set_error (error, MM_SERIAL_ERROR, MM_SERIAL_ERROR_OPEN_FAILED,
- "Could not open serial device %s: %s", device, strerror (errno));
+ "Could not set attributes on serial device %s: %s", device, strerror (errno_save));
+ mm_warn ("(%s) could not set attributes on serial device (%d)", device, errno_save);
goto error;
}
g_warn_if_fail (MM_SERIAL_PORT_GET_CLASS (self)->config_fd);
- if (!MM_SERIAL_PORT_GET_CLASS (self)->config_fd (self, priv->fd, error))
+ if (!MM_SERIAL_PORT_GET_CLASS (self)->config_fd (self, priv->fd, error)) {
+ mm_dbg ("(%s) failed to configure serial device", device);
goto error;
+ }
/* Don't wait for pending data when closing the port; this can cause some
* stupid devices that don't respond to URBs on a particular port to hang
@@ -966,6 +984,7 @@ success:
return TRUE;
error:
+ mm_warn ("(%s) failed to open serial device", device);
close (priv->fd);
priv->fd = -1;
return FALSE;
@@ -1102,6 +1121,13 @@ mm_serial_port_close (MMSerialPort *self)
priv->queue_id = 0;
}
+ if (priv->cancellable_id) {
+ g_assert (priv->cancellable != NULL);
+ g_cancellable_disconnect (priv->cancellable,
+ priv->cancellable_id);
+ priv->cancellable_id = 0;
+ }
+
g_clear_object (&priv->cancellable);
}
@@ -1276,6 +1302,17 @@ mm_serial_port_reopen (MMSerialPort *self,
g_return_val_if_fail (MM_IS_SERIAL_PORT (self), FALSE);
priv = MM_SERIAL_PORT_GET_PRIVATE (self);
+ if (priv->forced_close) {
+ GError *error;
+
+ error = g_error_new_literal (MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Serial port has been forced close.");
+ callback (self, error, user_data);
+ g_error_free (error);
+ return FALSE;
+ }
+
if (priv->reopen_id > 0) {
GError *error;
@@ -1711,7 +1748,7 @@ mm_serial_port_class_init (MMSerialPortClass *klass)
(object_class, PROP_FD,
g_param_spec_int (MM_SERIAL_PORT_FD,
"File descriptor",
- "Fiel descriptor",
+ "File descriptor",
-1, G_MAXINT, -1,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
@@ -1783,12 +1820,12 @@ mm_serial_port_class_init (MMSerialPortClass *klass)
/* Signals */
signals[BUFFER_FULL] =
g_signal_new ("buffer-full",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (MMSerialPortClass, buffer_full),
- NULL, NULL,
- g_cclosure_marshal_VOID__POINTER,
- G_TYPE_NONE, 1, G_TYPE_POINTER);
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (MMSerialPortClass, buffer_full),
+ NULL, NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_NONE, 1, G_TYPE_POINTER);
signals[TIMED_OUT] =
g_signal_new ("timed-out",
@@ -1796,15 +1833,15 @@ mm_serial_port_class_init (MMSerialPortClass *klass)
G_SIGNAL_RUN_FIRST,
G_STRUCT_OFFSET (MMSerialPortClass, timed_out),
NULL, NULL,
- g_cclosure_marshal_VOID__UINT,
+ g_cclosure_marshal_generic,
G_TYPE_NONE, 1, G_TYPE_UINT);
signals[FORCED_CLOSE] =
g_signal_new ("forced-close",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (MMSerialPortClass, forced_close),
- NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (MMSerialPortClass, forced_close),
+ NULL, NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_NONE, 0);
}
diff --git a/src/mm-sim-mbim.c b/src/mm-sim-mbim.c
index 66d908a..62bd082 100644
--- a/src/mm-sim-mbim.c
+++ b/src/mm-sim-mbim.c
@@ -73,7 +73,7 @@ load_sim_identifier_finish (MMSim *self,
{
if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error))
return NULL;
- return (gchar *)g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (res));
+ return g_strdup ((gchar *)g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (res)));
}
static void
@@ -97,7 +97,7 @@ simid_subscriber_ready_state_ready (MbimDevice *device,
NULL, /* telephone_numbers_count */
NULL, /* telephone_numbers */
&error))
- g_simple_async_result_set_op_res_gpointer (simple, sim_iccid, NULL);
+ g_simple_async_result_set_op_res_gpointer (simple, sim_iccid, (GDestroyNotify)g_free);
else
g_simple_async_result_take_error (simple, error);
@@ -141,7 +141,7 @@ load_imsi_finish (MMSim *self,
{
if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error))
return NULL;
- return (gchar *)g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (res));
+ return g_strdup ((gchar *)g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (res)));
}
static void
@@ -165,7 +165,7 @@ imsi_subscriber_ready_state_ready (MbimDevice *device,
NULL, /* telephone_numbers_count */
NULL, /* telephone_numbers */
&error))
- g_simple_async_result_set_op_res_gpointer (simple, subscriber_id, NULL);
+ g_simple_async_result_set_op_res_gpointer (simple, subscriber_id, (GDestroyNotify)g_free);
else
g_simple_async_result_take_error (simple, error);
@@ -200,6 +200,140 @@ load_imsi (MMSim *self,
}
/*****************************************************************************/
+/* Load operator identifier */
+
+static gchar *
+load_operator_identifier_finish (MMSim *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ MbimProvider *provider;
+
+ if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error))
+ return NULL;
+
+ provider = (MbimProvider *)g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (res));
+ return g_strdup (provider->provider_id);
+}
+
+static void
+load_operator_identifier_ready (MbimDevice *device,
+ GAsyncResult *res,
+ GSimpleAsyncResult *simple)
+{
+ MbimMessage *response;
+ GError *error = NULL;
+ MbimProvider *provider;
+
+ response = mbim_device_command_finish (device, res, &error);
+ if (response &&
+ mbim_message_command_done_get_result (response, &error) &&
+ mbim_message_home_provider_response_parse (
+ response,
+ &provider,
+ &error))
+ g_simple_async_result_set_op_res_gpointer (simple, provider, (GDestroyNotify)mbim_provider_free);
+ else
+ g_simple_async_result_take_error (simple, error);
+
+ if (response)
+ mbim_message_unref (response);
+ g_simple_async_result_complete (simple);
+ g_object_unref (simple);
+}
+
+static void
+load_operator_identifier (MMSim *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ MbimDevice *device;
+ MbimMessage *message;
+ GSimpleAsyncResult *result;
+
+ if (!peek_device (self, &device, callback, user_data))
+ return;
+
+ result = g_simple_async_result_new (G_OBJECT (self), callback, user_data, load_operator_identifier);
+
+ message = mbim_message_home_provider_query_new (NULL);
+ mbim_device_command (device,
+ message,
+ 10,
+ NULL,
+ (GAsyncReadyCallback)load_operator_identifier_ready,
+ result);
+ mbim_message_unref (message);
+}
+
+/*****************************************************************************/
+/* Load operator name */
+
+static gchar *
+load_operator_name_finish (MMSim *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ MbimProvider *provider;
+
+ if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error))
+ return NULL;
+
+ provider = (MbimProvider *)g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (res));
+ return g_strdup (provider->provider_name);
+}
+
+static void
+load_operator_name_ready (MbimDevice *device,
+ GAsyncResult *res,
+ GSimpleAsyncResult *simple)
+{
+ MbimMessage *response;
+ GError *error = NULL;
+ MbimProvider *provider;
+
+ response = mbim_device_command_finish (device, res, &error);
+ if (response &&
+ mbim_message_command_done_get_result (response, &error) &&
+ mbim_message_home_provider_response_parse (
+ response,
+ &provider,
+ &error))
+ g_simple_async_result_set_op_res_gpointer (simple, provider, (GDestroyNotify)mbim_provider_free);
+ else
+ g_simple_async_result_take_error (simple, error);
+
+ if (response)
+ mbim_message_unref (response);
+ g_simple_async_result_complete (simple);
+ g_object_unref (simple);
+}
+
+static void
+load_operator_name (MMSim *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ MbimDevice *device;
+ MbimMessage *message;
+ GSimpleAsyncResult *result;
+
+ if (!peek_device (self, &device, callback, user_data))
+ return;
+
+ result = g_simple_async_result_new (G_OBJECT (self), callback, user_data, load_operator_name);
+
+ message = mbim_message_home_provider_query_new (NULL);
+ mbim_device_command (device,
+ message,
+ 10,
+ NULL,
+ (GAsyncReadyCallback)load_operator_name_ready,
+ result);
+ mbim_message_unref (message);
+}
+
+/*****************************************************************************/
/* Send PIN */
static gboolean
@@ -594,6 +728,10 @@ mm_sim_mbim_class_init (MMSimMbimClass *klass)
sim_class->load_sim_identifier_finish = load_sim_identifier_finish;
sim_class->load_imsi = load_imsi;
sim_class->load_imsi_finish = load_imsi_finish;
+ sim_class->load_operator_identifier = load_operator_identifier;
+ sim_class->load_operator_identifier_finish = load_operator_identifier_finish;
+ sim_class->load_operator_name = load_operator_name;
+ sim_class->load_operator_name_finish = load_operator_name_finish;
sim_class->send_pin = send_pin;
sim_class->send_pin_finish = send_pin_finish;
sim_class->send_puk = send_puk;
@@ -602,10 +740,4 @@ mm_sim_mbim_class_init (MMSimMbimClass *klass)
sim_class->enable_pin_finish = enable_pin_finish;
sim_class->change_pin = change_pin;
sim_class->change_pin_finish = change_pin_finish;
-
- /* TODO: use MBIM_CID_HOME_PROVIDER */
- sim_class->load_operator_identifier = NULL;
- sim_class->load_operator_identifier_finish = NULL;
- sim_class->load_operator_name = NULL;
- sim_class->load_operator_name_finish = NULL;
}
diff --git a/src/mm-sim.c b/src/mm-sim.c
index 3e1ca46..7cd84ff 100644
--- a/src/mm-sim.c
+++ b/src/mm-sim.c
@@ -32,7 +32,6 @@
#include "mm-base-modem.h"
#include "mm-log.h"
#include "mm-modem-helpers.h"
-#include "mm-marshal.h"
static void async_initable_iface_init (GAsyncInitableIface *iface);
@@ -946,7 +945,6 @@ parse_iccid (const gchar *response,
GError **error)
{
gchar buf[21];
- gchar swapped[21];
const gchar *str;
gint sw1;
gint sw2;
@@ -974,69 +972,7 @@ parse_iccid (const gchar *response,
(sw1 == 0x91) ||
(sw1 == 0x92) ||
(sw1 == 0x9f)) {
- gsize len = 0;
- gint f_pos = -1;
- gint i;
-
- /* Make sure the buffer is only digits or 'F' */
- for (len = 0; len < sizeof (buf) && buf[len]; len++) {
- if (isdigit (buf[len]))
- continue;
- if (buf[len] == 'F' || buf[len] == 'f') {
- buf[len] = 'F'; /* canonicalize the F */
- f_pos = len;
- continue;
- }
- if (buf[len] == '\"') {
- buf[len] = 0;
- break;
- }
-
- /* Invalid character */
- g_set_error (error,
- MM_CORE_ERROR,
- MM_CORE_ERROR_FAILED,
- "CRSM ICCID response contained invalid character '%c'",
- buf[len]);
- return NULL;
- }
-
- /* BCD encoded ICCIDs are 20 digits long */
- if (len != 20) {
- g_set_error (error,
- MM_CORE_ERROR,
- MM_CORE_ERROR_FAILED,
- "Invalid +CRSM ICCID response size (was %zd, expected 20)",
- len);
- return NULL;
- }
-
- /* Ensure if there's an 'F' that it's second-to-last */
- if ((f_pos >= 0) && (f_pos != len - 2)) {
- g_set_error (error,
- MM_CORE_ERROR,
- MM_CORE_ERROR_FAILED,
- "Invalid +CRSM ICCID length (unexpected F)");
- return NULL;
- }
-
- /* Swap digits in the EFiccid response to get the actual ICCID, each
- * group of 2 digits is reversed in the +CRSM response. i.e.:
- *
- * 21436587 -> 12345678
- */
- memset (swapped, 0, sizeof (swapped));
- for (i = 0; i < 10; i++) {
- swapped[i * 2] = buf[(i * 2) + 1];
- swapped[(i * 2) + 1] = buf[i * 2];
- }
-
- /* Zero out the F for 19 digit ICCIDs */
- if (swapped[len - 1] == 'F')
- swapped[len - 1] = 0;
-
-
- return g_strdup (swapped);
+ return mm_3gpp_parse_iccid (buf, error);
} else {
g_set_error (error,
MM_CORE_ERROR,
@@ -1532,6 +1468,16 @@ STR_REPLY_READY_FN (operator_name, "Operator name")
static void
interface_initialization_step (InitAsyncContext *ctx)
{
+ if (g_cancellable_is_cancelled (ctx->cancellable)) {
+ g_simple_async_result_set_error (ctx->result,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_CANCELLED,
+ "Interface initialization cancelled");
+ g_simple_async_result_complete_in_idle (ctx->result);
+ init_async_context_free (ctx);
+ return;
+ }
+
switch (ctx->step) {
case INITIALIZATION_STEP_FIRST:
/* Fall down to next step */
@@ -1860,6 +1806,6 @@ mm_sim_class_init (MMSimClass *klass)
G_SIGNAL_RUN_FIRST,
G_STRUCT_OFFSET (MMSimClass, pin_lock_enabled),
NULL, NULL,
- mm_marshal_VOID__BOOLEAN,
+ g_cclosure_marshal_generic,
G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
}
diff --git a/src/mm-sms-list.c b/src/mm-sms-list.c
index 258470e..79fb64c 100644
--- a/src/mm-sms-list.c
+++ b/src/mm-sms-list.c
@@ -25,7 +25,6 @@
#include <libmm-glib.h>
#include "mm-iface-modem-messaging.h"
-#include "mm-marshal.h"
#include "mm-sms-list.h"
#include "mm-sms.h"
#include "mm-log.h"
@@ -226,6 +225,9 @@ mm_sms_list_add_sms (MMSmsList *self,
MMSms *sms)
{
self->priv->list = g_list_prepend (self->priv->list, g_object_ref (sms));
+ g_signal_emit (self, signals[SIGNAL_ADDED], 0,
+ mm_sms_get_path (sms),
+ FALSE);
}
/*****************************************************************************/
@@ -481,7 +483,7 @@ mm_sms_list_class_init (MMSmsListClass *klass)
G_SIGNAL_RUN_FIRST,
G_STRUCT_OFFSET (MMSmsListClass, sms_added),
NULL, NULL,
- mm_marshal_VOID__STRING_BOOLEAN,
+ g_cclosure_marshal_generic,
G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_BOOLEAN);
signals[SIGNAL_DELETED] =
@@ -490,6 +492,6 @@ mm_sms_list_class_init (MMSmsListClass *klass)
G_SIGNAL_RUN_FIRST,
G_STRUCT_OFFSET (MMSmsListClass, sms_deleted),
NULL, NULL,
- mm_marshal_VOID__STRING,
+ g_cclosure_marshal_generic,
G_TYPE_NONE, 1, G_TYPE_STRING);
}
diff --git a/src/mm-sms-mbim.c b/src/mm-sms-mbim.c
index c1e51f5..6a26ddc 100644
--- a/src/mm-sms-mbim.c
+++ b/src/mm-sms-mbim.c
@@ -29,6 +29,7 @@
#include "mm-sms-mbim.h"
#include "mm-base-modem.h"
#include "mm-log.h"
+#include "mm-sms-part-3gpp.h"
G_DEFINE_TYPE (MMSmsMbim, mm_sms_mbim, MM_TYPE_SMS)
@@ -154,7 +155,7 @@ sms_send_next_part (SmsSendContext *ctx)
}
/* Get PDU */
- pdu = mm_sms_part_get_submit_pdu ((MMSmsPart *)ctx->current->data, &pdulen, &msgstart, &error);
+ pdu = mm_sms_part_3gpp_get_submit_pdu ((MMSmsPart *)ctx->current->data, &pdulen, &msgstart, &error);
if (!pdu) {
g_simple_async_result_take_error (ctx->result, error);
sms_send_context_complete_and_free (ctx);
@@ -170,7 +171,7 @@ sms_send_next_part (SmsSendContext *ctx)
NULL);
mbim_device_command (ctx->device,
message,
- 10,
+ 30,
NULL,
(GAsyncReadyCallback)sms_send_set_ready,
ctx);
diff --git a/src/mm-sms-part-3gpp.c b/src/mm-sms-part-3gpp.c
new file mode 100644
index 0000000..b305be5
--- /dev/null
+++ b/src/mm-sms-part-3gpp.c
@@ -0,0 +1,1169 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details:
+ *
+ * Copyright (C) 2011 - 2012 Red Hat, Inc.
+ * Copyright (C) 2012 Google, Inc.
+ */
+
+#include <ctype.h>
+#include <string.h>
+
+#include <glib.h>
+
+#include <ModemManager.h>
+#define _LIBMM_INSIDE_MM
+#include <libmm-glib.h>
+
+#include "mm-sms-part-3gpp.h"
+#include "mm-charsets.h"
+#include "mm-log.h"
+
+#define PDU_SIZE 200
+
+#define SMS_TP_MTI_MASK 0x03
+#define SMS_TP_MTI_SMS_DELIVER 0x00
+#define SMS_TP_MTI_SMS_SUBMIT 0x01
+#define SMS_TP_MTI_SMS_STATUS_REPORT 0x02
+
+#define SMS_NUMBER_TYPE_MASK 0x70
+#define SMS_NUMBER_TYPE_UNKNOWN 0x00
+#define SMS_NUMBER_TYPE_INTL 0x10
+#define SMS_NUMBER_TYPE_ALPHA 0x50
+
+#define SMS_NUMBER_PLAN_MASK 0x0f
+#define SMS_NUMBER_PLAN_TELEPHONE 0x01
+
+#define SMS_TP_MMS 0x04
+#define SMS_TP_SRI 0x20
+#define SMS_TP_UDHI 0x40
+#define SMS_TP_RP 0x80
+
+#define SMS_DCS_CODING_MASK 0xec
+#define SMS_DCS_CODING_DEFAULT 0x00
+#define SMS_DCS_CODING_8BIT 0x04
+#define SMS_DCS_CODING_UCS2 0x08
+
+#define SMS_DCS_CLASS_VALID 0x10
+#define SMS_DCS_CLASS_MASK 0x03
+
+#define SMS_TIMESTAMP_LEN 7
+#define SMS_MIN_PDU_LEN (7 + SMS_TIMESTAMP_LEN)
+
+static char sms_bcd_chars[] = "0123456789*#abc\0\0";
+
+static void
+sms_semi_octets_to_bcd_string (char *dest, const guint8 *octets, int num_octets)
+{
+ int i;
+
+ for (i = 0 ; i < num_octets; i++) {
+ *dest++ = sms_bcd_chars[octets[i] & 0xf];
+ *dest++ = sms_bcd_chars[(octets[i] >> 4) & 0xf];
+ }
+ *dest++ = '\0';
+}
+
+static gboolean
+char_to_bcd (char in, guint8 *out)
+{
+ guint32 z;
+
+ if (isdigit (in)) {
+ *out = in - 0x30;
+ return TRUE;
+ }
+
+ for (z = 10; z < 16; z++) {
+ if (in == sms_bcd_chars[z]) {
+ *out = z;
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+static gsize
+sms_string_to_bcd_semi_octets (guint8 *buf, gsize buflen, const char *string)
+{
+ guint i;
+ guint8 bcd;
+ gsize addrlen, slen;
+
+ addrlen = slen = strlen (string);
+ if (addrlen % 2)
+ addrlen++;
+ g_return_val_if_fail (buflen >= addrlen, 0);
+
+ for (i = 0; i < addrlen; i += 2) {
+ if (!char_to_bcd (string[i], &bcd))
+ return 0;
+ buf[i / 2] = bcd & 0xF;
+
+ if (i >= slen - 1) {
+ /* PDU address gets padded with 0xF if string is odd length */
+ bcd = 0xF;
+ } else if (!char_to_bcd (string[i + 1], &bcd))
+ return 0;
+ buf[i / 2] |= bcd << 4;
+ }
+ return addrlen / 2;
+}
+
+/* len is in semi-octets */
+static char *
+sms_decode_address (const guint8 *address, int len)
+{
+ guint8 addrtype, addrplan;
+ char *utf8;
+
+ addrtype = address[0] & SMS_NUMBER_TYPE_MASK;
+ addrplan = address[0] & SMS_NUMBER_PLAN_MASK;
+ address++;
+
+ if (addrtype == SMS_NUMBER_TYPE_ALPHA) {
+ guint8 *unpacked;
+ guint32 unpacked_len;
+ unpacked = gsm_unpack (address, (len * 4) / 7, 0, &unpacked_len);
+ utf8 = (char *)mm_charset_gsm_unpacked_to_utf8 (unpacked,
+ unpacked_len);
+ g_free(unpacked);
+ } else if (addrtype == SMS_NUMBER_TYPE_INTL &&
+ addrplan == SMS_NUMBER_PLAN_TELEPHONE) {
+ /* International telphone number, format as "+1234567890" */
+ utf8 = g_malloc (len + 3); /* '+' + digits + possible trailing 0xf + NUL */
+ utf8[0] = '+';
+ sms_semi_octets_to_bcd_string (utf8 + 1, address, (len + 1) / 2);
+ } else {
+ /*
+ * All non-alphanumeric types and plans are just digits, but
+ * don't apply any special formatting if we don't know the
+ * format.
+ */
+ utf8 = g_malloc (len + 2); /* digits + possible trailing 0xf + NUL */
+ sms_semi_octets_to_bcd_string (utf8, address, (len + 1) / 2);
+ }
+
+ return utf8;
+}
+
+static char *
+sms_decode_timestamp (const guint8 *timestamp)
+{
+ /* YYMMDDHHMMSS+ZZ */
+ char *timestr;
+ int quarters, hours;
+
+ timestr = g_malloc0 (16);
+ sms_semi_octets_to_bcd_string (timestr, timestamp, 6);
+ quarters = ((timestamp[6] & 0x7) * 10) + ((timestamp[6] >> 4) & 0xf);
+ hours = quarters / 4;
+ if (timestamp[6] & 0x08)
+ timestr[12] = '-';
+ else
+ timestr[12] = '+';
+ timestr[13] = (hours / 10) + '0';
+ timestr[14] = (hours % 10) + '0';
+ /* TODO(njw): Change timestamp rep to something that includes quarter-hours */
+ return timestr;
+}
+
+static MMSmsEncoding
+sms_encoding_type (int dcs)
+{
+ MMSmsEncoding scheme = MM_SMS_ENCODING_UNKNOWN;
+
+ switch ((dcs >> 4) & 0xf) {
+ /* General data coding group */
+ case 0: case 1:
+ case 2: case 3:
+ switch (dcs & 0x0c) {
+ case 0x08:
+ scheme = MM_SMS_ENCODING_UCS2;
+ break;
+ case 0x00:
+ /* fallthrough */
+ /* reserved - spec says to treat it as default alphabet */
+ case 0x0c:
+ scheme = MM_SMS_ENCODING_GSM7;
+ break;
+ case 0x04:
+ scheme = MM_SMS_ENCODING_8BIT;
+ break;
+ }
+ break;
+
+ /* Message waiting group (default alphabet) */
+ case 0xc:
+ case 0xd:
+ scheme = MM_SMS_ENCODING_GSM7;
+ break;
+
+ /* Message waiting group (UCS2 alphabet) */
+ case 0xe:
+ scheme = MM_SMS_ENCODING_UCS2;
+ break;
+
+ /* Data coding/message class group */
+ case 0xf:
+ switch (dcs & 0x04) {
+ case 0x00:
+ scheme = MM_SMS_ENCODING_GSM7;
+ break;
+ case 0x04:
+ scheme = MM_SMS_ENCODING_8BIT;
+ break;
+ }
+ break;
+
+ /* Reserved coding group values - spec says to treat it as default alphabet */
+ default:
+ scheme = MM_SMS_ENCODING_GSM7;
+ break;
+ }
+
+ return scheme;
+}
+
+static char *
+sms_decode_text (const guint8 *text, int len, MMSmsEncoding encoding, int bit_offset)
+{
+ char *utf8;
+ guint8 *unpacked;
+ guint32 unpacked_len;
+
+ if (encoding == MM_SMS_ENCODING_GSM7) {
+ mm_dbg ("Converting SMS part text from GSM7 to UTF8...");
+ unpacked = gsm_unpack ((const guint8 *) text, len, bit_offset, &unpacked_len);
+ utf8 = (char *) mm_charset_gsm_unpacked_to_utf8 (unpacked, unpacked_len);
+ mm_dbg (" Got UTF-8 text: '%s'", utf8);
+ g_free (unpacked);
+ } else if (encoding == MM_SMS_ENCODING_UCS2) {
+ mm_dbg ("Converting SMS part text from UCS-2BE to UTF8...");
+ utf8 = g_convert ((char *) text, len, "UTF8", "UCS-2BE", NULL, NULL, NULL);
+ mm_dbg (" Got UTF-8 text: '%s'", utf8);
+ } else {
+ g_warn_if_reached ();
+ utf8 = g_strdup ("");
+ }
+
+ return utf8;
+}
+
+static guint
+relative_to_validity (guint8 relative)
+{
+ if (relative <= 143)
+ return (relative + 1) * 5;
+
+ if (relative <= 167)
+ return 720 + (relative - 143) * 30;
+
+ return (relative - 166) * 1440;
+}
+
+static guint8
+validity_to_relative (guint validity)
+{
+ if (validity == 0)
+ return 167; /* 24 hours */
+
+ if (validity <= 720) {
+ /* 5 minute units up to 12 hours */
+ if (validity % 5)
+ validity += 5;
+ return (validity / 5) - 1;
+ }
+
+ if (validity > 720 && validity <= 1440) {
+ /* 12 hours + 30 minute units up to 1 day */
+ if (validity % 30)
+ validity += 30; /* round up to next 30 minutes */
+ validity = MIN (validity, 1440);
+ return 143 + ((validity - 720) / 30);
+ }
+
+ if (validity > 1440 && validity <= 43200) {
+ /* 2 days up to 1 month */
+ if (validity % 1440)
+ validity += 1440; /* round up to next day */
+ validity = MIN (validity, 43200);
+ return 167 + ((validity - 1440) / 1440);
+ }
+
+ /* 43200 = 30 days in minutes
+ * 10080 = 7 days in minutes
+ * 635040 = 63 weeks in minutes
+ * 40320 = 4 weeks in minutes
+ */
+ if (validity > 43200 && validity <= 635040) {
+ /* 5 weeks up to 63 weeks */
+ if (validity % 10080)
+ validity += 10080; /* round up to next week */
+ validity = MIN (validity, 635040);
+ return 196 + ((validity - 40320) / 10080);
+ }
+
+ return 255; /* 63 weeks */
+}
+
+MMSmsPart *
+mm_sms_part_3gpp_new_from_pdu (guint index,
+ const gchar *hexpdu,
+ GError **error)
+{
+ gsize pdu_len;
+ guint8 *pdu;
+ MMSmsPart *part;
+
+ /* Convert PDU from hex to binary */
+ pdu = (guint8 *) mm_utils_hexstr2bin (hexpdu, &pdu_len);
+ if (!pdu) {
+ g_set_error_literal (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Couldn't convert 3GPP PDU from hex to binary");
+ return NULL;
+ }
+
+ part = mm_sms_part_3gpp_new_from_binary_pdu (index, pdu, pdu_len, error);
+ g_free (pdu);
+
+ return part;
+}
+
+MMSmsPart *
+mm_sms_part_3gpp_new_from_binary_pdu (guint index,
+ const guint8 *pdu,
+ gsize pdu_len,
+ GError **error)
+{
+ MMSmsPart *sms_part;
+ guint8 pdu_type;
+ guint offset;
+ guint smsc_addr_size_bytes;
+ guint tp_addr_size_digits;
+ guint tp_addr_size_bytes;
+ guint8 validity_format = 0;
+ gboolean has_udh = FALSE;
+ /* The following offsets are OPTIONAL, as STATUS REPORTs may not have
+ * them; we use '0' to indicate their absence */
+ guint tp_pid_offset = 0;
+ guint tp_dcs_offset = 0;
+ guint tp_user_data_len_offset = 0;
+ MMSmsEncoding user_data_encoding = MM_SMS_ENCODING_UNKNOWN;
+
+ /* Create the new MMSmsPart */
+ sms_part = mm_sms_part_new (index, MM_SMS_PDU_TYPE_UNKNOWN);
+
+ if (index != SMS_PART_INVALID_INDEX)
+ mm_dbg ("Parsing PDU (%u)...", index);
+ else
+ mm_dbg ("Parsing PDU...");
+
+#define PDU_SIZE_CHECK(required_size, check_descr_str) \
+ if (pdu_len < required_size) { \
+ g_set_error (error, \
+ MM_CORE_ERROR, \
+ MM_CORE_ERROR_FAILED, \
+ "PDU too short, %s: %" G_GSIZE_FORMAT " < %u", \
+ check_descr_str, \
+ pdu_len, \
+ required_size); \
+ mm_sms_part_free (sms_part); \
+ return NULL; \
+ }
+
+ offset = 0;
+
+ /* ---------------------------------------------------------------------- */
+ /* SMSC, in address format, precedes the TPDU
+ * First byte represents the number of BYTES for the address value */
+ PDU_SIZE_CHECK (1, "cannot read SMSC address length");
+ smsc_addr_size_bytes = pdu[offset++];
+ if (smsc_addr_size_bytes > 0) {
+ PDU_SIZE_CHECK (offset + smsc_addr_size_bytes, "cannot read SMSC address");
+ /* SMSC may not be given in DELIVER PDUs */
+ mm_sms_part_take_smsc (sms_part,
+ sms_decode_address (&pdu[1], 2 * (smsc_addr_size_bytes - 1)));
+ mm_dbg (" SMSC address parsed: '%s'", mm_sms_part_get_smsc (sms_part));
+ offset += smsc_addr_size_bytes;
+ } else
+ mm_dbg (" No SMSC address given");
+
+
+ /* ---------------------------------------------------------------------- */
+ /* TP-MTI (1 byte) */
+ PDU_SIZE_CHECK (offset + 1, "cannot read TP-MTI");
+
+ pdu_type = (pdu[offset] & SMS_TP_MTI_MASK);
+ switch (pdu_type) {
+ case SMS_TP_MTI_SMS_DELIVER:
+ mm_dbg (" Deliver type PDU detected");
+ mm_sms_part_set_pdu_type (sms_part, MM_SMS_PDU_TYPE_DELIVER);
+ break;
+ case SMS_TP_MTI_SMS_SUBMIT:
+ mm_dbg (" Submit type PDU detected");
+ mm_sms_part_set_pdu_type (sms_part, MM_SMS_PDU_TYPE_SUBMIT);
+ break;
+ case SMS_TP_MTI_SMS_STATUS_REPORT:
+ mm_dbg (" Status report type PDU detected");
+ mm_sms_part_set_pdu_type (sms_part, MM_SMS_PDU_TYPE_STATUS_REPORT);
+ break;
+ default:
+ mm_sms_part_free (sms_part);
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Unhandled message type: 0x%02x",
+ pdu_type);
+ return NULL;
+ }
+
+ /* Delivery report was requested? */
+ if (pdu[offset] & 0x20)
+ mm_sms_part_set_delivery_report_request (sms_part, TRUE);
+
+ /* PDU with validity? (only in SUBMIT PDUs) */
+ if (pdu_type == SMS_TP_MTI_SMS_SUBMIT)
+ validity_format = pdu[offset] & 0x18;
+
+ /* PDU with user data header? */
+ if (pdu[offset] & 0x40)
+ has_udh = TRUE;
+
+ offset++;
+
+ /* ---------------------------------------------------------------------- */
+ /* TP-MR (1 byte, in STATUS_REPORT and SUBMIT PDUs */
+ if (pdu_type == SMS_TP_MTI_SMS_STATUS_REPORT ||
+ pdu_type == SMS_TP_MTI_SMS_SUBMIT) {
+ PDU_SIZE_CHECK (offset + 1, "cannot read message reference");
+
+ mm_dbg (" message reference: %u", (guint)pdu[offset]);
+ mm_sms_part_set_message_reference (sms_part, pdu[offset]);
+ offset++;
+ }
+
+
+ /* ---------------------------------------------------------------------- */
+ /* TP-DA or TP-OA or TP-RA
+ * First byte represents the number of DIGITS in the number.
+ * Round the sender address length up to an even number of
+ * semi-octets, and thus an integral number of octets.
+ */
+ PDU_SIZE_CHECK (offset + 1, "cannot read number of digits in number");
+ tp_addr_size_digits = pdu[offset++];
+ tp_addr_size_bytes = (tp_addr_size_digits + 1) >> 1;
+
+ PDU_SIZE_CHECK (offset + tp_addr_size_bytes, "cannot read number");
+ mm_sms_part_take_number (sms_part,
+ sms_decode_address (&pdu[offset],
+ tp_addr_size_digits));
+ mm_dbg (" Number parsed: '%s'", mm_sms_part_get_number (sms_part));
+ offset += (1 + tp_addr_size_bytes); /* +1 due to the Type of Address byte */
+
+ /* ---------------------------------------------------------------------- */
+ /* Get timestamps and indexes for TP-PID, TP-DCS and TP-UDL/TP-UD */
+
+ if (pdu_type == SMS_TP_MTI_SMS_DELIVER) {
+ PDU_SIZE_CHECK (offset + 9,
+ "cannot read PID/DCS/Timestamp"); /* 1+1+7=9 */
+
+ /* ------ TP-PID (1 byte) ------ */
+ tp_pid_offset = offset++;
+
+ /* ------ TP-DCS (1 byte) ------ */
+ tp_dcs_offset = offset++;
+
+ /* ------ Timestamp (7 bytes) ------ */
+ mm_sms_part_take_timestamp (sms_part,
+ sms_decode_timestamp (&pdu[offset]));
+ offset += 7;
+
+ tp_user_data_len_offset = offset;
+ } else if (pdu_type == SMS_TP_MTI_SMS_SUBMIT) {
+ PDU_SIZE_CHECK (offset + 2 + !!validity_format,
+ "cannot read PID/DCS/Validity"); /* 1+1=2 */
+
+ /* ------ TP-PID (1 byte) ------ */
+ tp_pid_offset = offset++;
+
+ /* ------ TP-DCS (1 byte) ------ */
+ tp_dcs_offset = offset++;
+
+ /* ----------- TP-Validity-Period (1 byte) ----------- */
+ if (validity_format) {
+ switch (validity_format) {
+ case 0x10:
+ mm_dbg (" validity available, format relative");
+ mm_sms_part_set_validity_relative (sms_part,
+ relative_to_validity (pdu[offset]));
+ offset++;
+ break;
+ case 0x08:
+ /* TODO: support enhanced format; GSM 03.40 */
+ mm_dbg (" validity available, format enhanced (not implemented)");
+ /* 7 bytes for enhanced validity */
+ offset += 7;
+ break;
+ case 0x18:
+ /* TODO: support absolute format; GSM 03.40 */
+ mm_dbg (" validity available, format absolute (not implemented)");
+ /* 7 bytes for absolute validity */
+ offset += 7;
+ break;
+ default:
+ /* Cannot happen as we AND with the 0x18 mask */
+ g_assert_not_reached();
+ }
+ }
+
+ tp_user_data_len_offset = offset;
+ }
+ else if (pdu_type == SMS_TP_MTI_SMS_STATUS_REPORT) {
+ /* We have 2 timestamps in status report PDUs:
+ * first, the timestamp for when the PDU was received in the SMSC
+ * second, the timestamp for when the PDU was forwarded by the SMSC
+ */
+ PDU_SIZE_CHECK (offset + 15, "cannot read Timestamps/TP-STATUS"); /* 7+7+1=15 */
+
+ /* ------ Timestamp (7 bytes) ------ */
+ mm_sms_part_take_timestamp (sms_part,
+ sms_decode_timestamp (&pdu[offset]));
+ offset += 7;
+
+ /* ------ Discharge Timestamp (7 bytes) ------ */
+ mm_sms_part_take_discharge_timestamp (sms_part,
+ sms_decode_timestamp (&pdu[offset]));
+ offset += 7;
+
+ /* ----- TP-STATUS (1 byte) ------ */
+ mm_dbg (" delivery state: %u", (guint)pdu[offset]);
+ mm_sms_part_set_delivery_state (sms_part, pdu[offset]);
+ offset++;
+
+ /* ------ TP-PI (1 byte) OPTIONAL ------ */
+ if (offset < pdu_len) {
+ guint next_optional_field_offset = offset + 1;
+
+ /* TP-PID? */
+ if (pdu[offset] & 0x01)
+ tp_pid_offset = next_optional_field_offset++;
+
+ /* TP-DCS? */
+ if (pdu[offset] & 0x02)
+ tp_dcs_offset = next_optional_field_offset++;
+
+ /* TP-UserData? */
+ if (pdu[offset] & 0x04)
+ tp_user_data_len_offset = next_optional_field_offset;
+ }
+ } else
+ g_assert_not_reached ();
+
+ if (tp_pid_offset > 0) {
+ PDU_SIZE_CHECK (tp_pid_offset + 1, "cannot read TP-PID");
+ mm_dbg (" PID: %u", (guint)pdu[tp_pid_offset]);
+ }
+
+ /* Grab user data encoding and message class */
+ if (tp_dcs_offset > 0) {
+ PDU_SIZE_CHECK (tp_dcs_offset + 1, "cannot read TP-DCS");
+
+ /* Encoding given in the 'alphabet' bits */
+ user_data_encoding = sms_encoding_type(pdu[tp_dcs_offset]);
+ switch (user_data_encoding) {
+ case MM_SMS_ENCODING_GSM7:
+ mm_dbg (" user data encoding is GSM7");
+ break;
+ case MM_SMS_ENCODING_UCS2:
+ mm_dbg (" user data encoding is UCS2");
+ break;
+ case MM_SMS_ENCODING_8BIT:
+ mm_dbg (" user data encoding is 8bit");
+ break;
+ default:
+ mm_dbg (" user data encoding is unknown");
+ break;
+ }
+ mm_sms_part_set_encoding (sms_part, user_data_encoding);
+
+ /* Class */
+ if (pdu[tp_dcs_offset] & SMS_DCS_CLASS_VALID)
+ mm_sms_part_set_class (sms_part,
+ pdu[tp_dcs_offset] & SMS_DCS_CLASS_MASK);
+ }
+
+ if (tp_user_data_len_offset > 0) {
+ guint tp_user_data_size_elements;
+ guint tp_user_data_size_bytes;
+ guint tp_user_data_offset;
+ guint bit_offset;
+
+ PDU_SIZE_CHECK (tp_user_data_len_offset + 1, "cannot read TP-UDL");
+ tp_user_data_size_elements = pdu[tp_user_data_len_offset];
+ mm_dbg (" user data length: %u elements", tp_user_data_size_elements);
+
+ if (user_data_encoding == MM_SMS_ENCODING_GSM7)
+ tp_user_data_size_bytes = (7 * (tp_user_data_size_elements + 1 )) / 8;
+ else
+ tp_user_data_size_bytes = tp_user_data_size_elements;
+ mm_dbg (" user data length: %u bytes", tp_user_data_size_bytes);
+
+ tp_user_data_offset = tp_user_data_len_offset + 1;
+ PDU_SIZE_CHECK (tp_user_data_offset + tp_user_data_size_bytes, "cannot read TP-UD");
+
+ bit_offset = 0;
+ if (has_udh) {
+ guint udhl, end;
+
+ udhl = pdu[tp_user_data_offset] + 1;
+ end = tp_user_data_offset + udhl;
+
+ PDU_SIZE_CHECK (tp_user_data_offset + udhl, "cannot read UDH");
+
+ for (offset = tp_user_data_offset + 1; (offset + 1) < end;) {
+ guint8 ie_id, ie_len;
+
+ ie_id = pdu[offset++];
+ ie_len = pdu[offset++];
+
+ switch (ie_id) {
+ case 0x00:
+ if (offset + 2 >= end)
+ break;
+ /*
+ * Ignore the IE if one of the following is true:
+ * - it claims to be part 0 of M
+ * - it claims to be part N of M, N > M
+ */
+ if (pdu[offset + 2] == 0 ||
+ pdu[offset + 2] > pdu[offset + 1])
+ break;
+
+ mm_sms_part_set_concat_reference (sms_part, pdu[offset]);
+ mm_sms_part_set_concat_max (sms_part, pdu[offset + 1]);
+ mm_sms_part_set_concat_sequence (sms_part, pdu[offset + 2]);
+ break;
+ case 0x08:
+ if (offset + 3 >= end)
+ break;
+ /* Concatenated short message, 16-bit reference */
+ if (pdu[offset + 3] == 0 ||
+ pdu[offset + 3] > pdu[offset + 2])
+ break;
+
+ mm_sms_part_set_concat_reference (sms_part, (pdu[offset] << 8) | pdu[offset + 1]);
+ mm_sms_part_set_concat_max (sms_part,pdu[offset + 2]);
+ mm_sms_part_set_concat_sequence (sms_part, pdu[offset + 3]);
+ break;
+ }
+
+ offset += ie_len;
+ }
+
+ /*
+ * Move past the user data headers to prevent it from being
+ * decoded into garbage text.
+ */
+ tp_user_data_offset += udhl;
+ tp_user_data_size_bytes -= udhl;
+ if (user_data_encoding == MM_SMS_ENCODING_GSM7) {
+ /*
+ * Find the number of bits we need to add to the length of the
+ * user data to get a multiple of 7 (the padding).
+ */
+ bit_offset = (7 - udhl % 7) % 7;
+ tp_user_data_size_elements -= (udhl * 8 + bit_offset) / 7;
+ } else
+ tp_user_data_size_elements -= udhl;
+ }
+
+ switch (user_data_encoding) {
+ case MM_SMS_ENCODING_GSM7:
+ case MM_SMS_ENCODING_UCS2:
+ /* Otherwise if it's 7-bit or UCS2 we can decode it */
+ mm_dbg ("Decoding SMS text with '%u' elements", tp_user_data_size_elements);
+ mm_sms_part_take_text (sms_part,
+ sms_decode_text (&pdu[tp_user_data_offset],
+ tp_user_data_size_elements,
+ user_data_encoding,
+ bit_offset));
+ g_warn_if_fail (mm_sms_part_get_text (sms_part) != NULL);
+ break;
+
+ default:
+ {
+ GByteArray *raw;
+
+ mm_dbg ("Skipping SMS text: Unknown encoding (0x%02X)", user_data_encoding);
+
+ PDU_SIZE_CHECK (tp_user_data_offset + tp_user_data_size_bytes, "cannot read user data");
+
+ /* 8-bit encoding is usually binary data, and we have no idea what
+ * actual encoding the data is in so we can't convert it.
+ */
+ raw = g_byte_array_sized_new (tp_user_data_size_bytes);
+ g_byte_array_append (raw, &pdu[tp_user_data_offset], tp_user_data_size_bytes);
+ mm_sms_part_take_data (sms_part, raw);
+ break;
+ }
+ }
+ }
+
+ return sms_part;
+}
+
+/**
+ * mm_sms_part_3gpp_encode_address:
+ *
+ * @address: the phone number to encode
+ * @buf: the buffer to encode @address in
+ * @buflen: the size of @buf
+ * @is_smsc: if %TRUE encode size as number of octets of address infromation,
+ * otherwise if %FALSE encode size as number of digits of @address
+ *
+ * Returns: the size in bytes of the data added to @buf
+ **/
+guint
+mm_sms_part_3gpp_encode_address (const gchar *address,
+ guint8 *buf,
+ gsize buflen,
+ gboolean is_smsc)
+{
+ gsize len;
+
+ g_return_val_if_fail (address != NULL, 0);
+ g_return_val_if_fail (buf != NULL, 0);
+ g_return_val_if_fail (buflen >= 2, 0);
+
+ /* Handle number type & plan */
+ buf[1] = 0x80; /* Bit 7 always 1 */
+ if (address[0] == '+') {
+ buf[1] |= SMS_NUMBER_TYPE_INTL;
+ address++;
+ }
+ buf[1] |= SMS_NUMBER_PLAN_TELEPHONE;
+
+ len = sms_string_to_bcd_semi_octets (&buf[2], buflen, address);
+
+ if (is_smsc)
+ buf[0] = len + 1; /* addr length + size byte */
+ else
+ buf[0] = strlen (address); /* number of digits in address */
+
+ return len ? len + 2 : 0; /* addr length + size byte + number type/plan */
+}
+
+/**
+ * mm_sms_part_3gpp_get_submit_pdu:
+ *
+ * @part: the SMS message part
+ * @out_pdulen: on success, the size of the returned PDU in bytes
+ * @out_msgstart: on success, the byte index in the returned PDU where the
+ * message starts (ie, skipping the SMSC length byte and address, if present)
+ * @error: on error, filled with the error that occurred
+ *
+ * Constructs a single-part SMS message with the given details, preferring to
+ * use the UCS2 character set when the message will fit, otherwise falling back
+ * to the GSM character set.
+ *
+ * Returns: the constructed PDU data on success, or %NULL on error
+ **/
+guint8 *
+mm_sms_part_3gpp_get_submit_pdu (MMSmsPart *part,
+ guint *out_pdulen,
+ guint *out_msgstart,
+ GError **error)
+{
+ guint8 *pdu;
+ guint len, offset = 0;
+ guint shift = 0;
+ guint8 *udl_ptr;
+
+ g_return_val_if_fail (mm_sms_part_get_number (part) != NULL, NULL);
+ g_return_val_if_fail (mm_sms_part_get_text (part) != NULL || mm_sms_part_get_data (part) != NULL, NULL);
+
+ if (mm_sms_part_get_pdu_type (part) != MM_SMS_PDU_TYPE_SUBMIT) {
+ g_set_error (error,
+ MM_MESSAGE_ERROR,
+ MM_MESSAGE_ERROR_INVALID_PDU_PARAMETER,
+ "Invalid PDU type to generate a 'submit' PDU: '%s'",
+ mm_sms_pdu_type_get_string (mm_sms_part_get_pdu_type (part)));
+ return NULL;
+ }
+
+ mm_dbg ("Creating PDU for part...");
+
+ /* Build up the PDU */
+ pdu = g_malloc0 (PDU_SIZE);
+
+ if (mm_sms_part_get_smsc (part)) {
+ mm_dbg (" adding SMSC to PDU...");
+ len = mm_sms_part_3gpp_encode_address (mm_sms_part_get_smsc (part), pdu, PDU_SIZE, TRUE);
+ if (len == 0) {
+ g_set_error (error,
+ MM_MESSAGE_ERROR,
+ MM_MESSAGE_ERROR_INVALID_PDU_PARAMETER,
+ "Invalid SMSC address '%s'", mm_sms_part_get_smsc (part));
+ goto error;
+ }
+ offset += len;
+ } else {
+ /* No SMSC, use default */
+ pdu[offset++] = 0x00;
+ }
+
+ if (out_msgstart)
+ *out_msgstart = offset;
+
+ /* ----------- First BYTE ----------- */
+ pdu[offset] = 0;
+
+ /* TP-VP present; format RELATIVE */
+ if (mm_sms_part_get_validity_relative (part) > 0) {
+ mm_dbg (" adding validity to PDU...");
+ pdu[offset] |= 0x10;
+ }
+
+ /* Concatenation sequence only found in multipart SMS */
+ if (mm_sms_part_get_concat_sequence (part)) {
+ mm_dbg (" adding UDHI to PDU...");
+ pdu[offset] |= 0x40; /* UDHI */
+ }
+
+ /* Delivery report requested in singlepart messages or in the last PDU of
+ * multipart messages */
+ if (mm_sms_part_get_delivery_report_request (part) &&
+ (!mm_sms_part_get_concat_sequence (part) ||
+ mm_sms_part_get_concat_max (part) == mm_sms_part_get_concat_sequence (part))) {
+ mm_dbg (" requesting delivery report...");
+ pdu[offset] |= 0x20;
+ }
+
+ /* TP-MTI = SMS-SUBMIT */
+ pdu[offset++] |= 0x01;
+
+
+ /* ----------- TP-MR (1 byte) ----------- */
+
+ pdu[offset++] = 0x00; /* TP-Message-Reference: filled by device */
+
+ /* ----------- Destination address ----------- */
+
+ len = mm_sms_part_3gpp_encode_address (mm_sms_part_get_number (part), &pdu[offset], PDU_SIZE - offset, FALSE);
+ if (len == 0) {
+ g_set_error (error,
+ MM_MESSAGE_ERROR,
+ MM_MESSAGE_ERROR_INVALID_PDU_PARAMETER,
+ "Invalid number '%s'", mm_sms_part_get_number (part));
+ goto error;
+ }
+ offset += len;
+
+ /* ----------- TP-PID (1 byte) ----------- */
+
+ pdu[offset++] = 0x00;
+
+ /* ----------- TP-DCS (1 byte) ----------- */
+ pdu[offset] = 0x00;
+
+ if (mm_sms_part_get_class (part) >= 0 && mm_sms_part_get_class (part) <= 3) {
+ mm_dbg (" using class %d...", mm_sms_part_get_class (part));
+ pdu[offset] |= SMS_DCS_CLASS_VALID;
+ pdu[offset] |= mm_sms_part_get_class (part);
+ }
+
+ switch (mm_sms_part_get_encoding (part)) {
+ case MM_SMS_ENCODING_UCS2:
+ mm_dbg (" using UCS2 encoding...");
+ pdu[offset] |= SMS_DCS_CODING_UCS2;
+ break;
+ case MM_SMS_ENCODING_GSM7:
+ mm_dbg (" using GSM7 encoding...");
+ pdu[offset] |= SMS_DCS_CODING_DEFAULT; /* GSM */
+ break;
+ default:
+ mm_dbg (" using 8bit encoding...");
+ pdu[offset] |= SMS_DCS_CODING_8BIT;
+ break;
+ }
+ offset++;
+
+ /* ----------- TP-Validity-Period (1 byte): 4 days ----------- */
+ /* Only if TP-VPF was set in first byte */
+
+ if (mm_sms_part_get_validity_relative (part) > 0)
+ pdu[offset++] = validity_to_relative (mm_sms_part_get_validity_relative (part));
+
+ /* ----------- TP-User-Data-Length ----------- */
+ /* Set to zero initially, and keep a ptr for easy access later */
+ udl_ptr = &pdu[offset];
+ pdu[offset++] = 0;
+
+ /* Build UDH */
+ if (mm_sms_part_get_concat_sequence (part)) {
+ mm_dbg (" adding UDH header in PDU... (reference: %u, max: %u, sequence: %u)",
+ mm_sms_part_get_concat_reference (part),
+ mm_sms_part_get_concat_max (part),
+ mm_sms_part_get_concat_sequence (part));
+ pdu[offset++] = 0x05; /* udh len */
+ pdu[offset++] = 0x00; /* mid */
+ pdu[offset++] = 0x03; /* data len */
+ pdu[offset++] = (guint8)mm_sms_part_get_concat_reference (part);
+ pdu[offset++] = (guint8)mm_sms_part_get_concat_max (part);
+ pdu[offset++] = (guint8)mm_sms_part_get_concat_sequence (part);
+
+ /* if a UDH is present and the data encoding is the default 7-bit
+ * alphabet, the user data must be 7-bit word aligned after the
+ * UDH. This means up to 6 bits of zeros need to be inserted at the
+ * start of the message.
+ *
+ * In our case the UDH is 6 bytes long, 48bits. The next multiple of
+ * 7 is therefore 49, so we only need to include one bit of padding.
+ */
+ shift = 1;
+ }
+
+ if (mm_sms_part_get_encoding (part) == MM_SMS_ENCODING_GSM7) {
+ guint8 *unpacked, *packed;
+ guint32 unlen = 0, packlen = 0;
+
+ unpacked = mm_charset_utf8_to_unpacked_gsm (mm_sms_part_get_text (part), &unlen);
+ if (!unpacked || unlen == 0) {
+ g_free (unpacked);
+ g_set_error_literal (error,
+ MM_MESSAGE_ERROR,
+ MM_MESSAGE_ERROR_INVALID_PDU_PARAMETER,
+ "Failed to convert message text to GSM");
+ goto error;
+ }
+
+ /* Set real data length, in septets
+ * If we had UDH, add 7 septets
+ */
+ *udl_ptr = mm_sms_part_get_concat_sequence (part) ? (7 + unlen) : unlen;
+ mm_dbg (" user data length is '%u' septets (%s UDH)",
+ *udl_ptr,
+ mm_sms_part_get_concat_sequence (part) ? "with" : "without");
+
+ packed = gsm_pack (unpacked, unlen, shift, &packlen);
+ g_free (unpacked);
+ if (!packed || packlen == 0) {
+ g_free (packed);
+ g_set_error_literal (error,
+ MM_MESSAGE_ERROR,
+ MM_MESSAGE_ERROR_INVALID_PDU_PARAMETER,
+ "Failed to pack message text to GSM");
+ goto error;
+ }
+
+ memcpy (&pdu[offset], packed, packlen);
+ g_free (packed);
+ offset += packlen;
+ } else if (mm_sms_part_get_encoding (part) == MM_SMS_ENCODING_UCS2) {
+ GByteArray *array;
+
+ /* Try to guess a good value for the array */
+ array = g_byte_array_sized_new (strlen (mm_sms_part_get_text (part)) * 2);
+ if (!mm_modem_charset_byte_array_append (array, mm_sms_part_get_text (part), FALSE, MM_MODEM_CHARSET_UCS2)) {
+ g_byte_array_free (array, TRUE);
+ g_set_error_literal (error,
+ MM_MESSAGE_ERROR,
+ MM_MESSAGE_ERROR_INVALID_PDU_PARAMETER,
+ "Failed to convert message text to UCS2");
+ goto error;
+ }
+
+ /* Set real data length, in octets
+ * If we had UDH, add 6 octets
+ */
+ *udl_ptr = mm_sms_part_get_concat_sequence (part) ? (6 + array->len) : array->len;
+ mm_dbg (" user data length is '%u' octets (%s UDH)",
+ *udl_ptr,
+ mm_sms_part_get_concat_sequence (part) ? "with" : "without");
+
+ memcpy (&pdu[offset], array->data, array->len);
+ offset += array->len;
+ g_byte_array_free (array, TRUE);
+ } else if (mm_sms_part_get_encoding (part) == MM_SMS_ENCODING_8BIT) {
+ const GByteArray *data;
+
+ data = mm_sms_part_get_data (part);
+
+ /* Set real data length, in octets
+ * If we had UDH, add 6 octets
+ */
+ *udl_ptr = mm_sms_part_get_concat_sequence (part) ? (6 + data->len) : data->len;
+ mm_dbg (" binary user data length is '%u' octets (%s UDH)",
+ *udl_ptr,
+ mm_sms_part_get_concat_sequence (part) ? "with" : "without");
+
+ memcpy (&pdu[offset], data->data, data->len);
+ offset += data->len;
+ } else
+ g_assert_not_reached ();
+
+ if (out_pdulen)
+ *out_pdulen = offset;
+ return pdu;
+
+error:
+ g_free (pdu);
+ return NULL;
+}
+
+gchar **
+mm_sms_part_3gpp_util_split_text (const gchar *text,
+ MMSmsEncoding *encoding)
+{
+ guint gsm_unsupported = 0;
+ gchar **out;
+ guint n_chunks;
+ guint i;
+ guint j;
+ gsize in_len;
+
+ if (!text)
+ return NULL;
+
+ in_len = strlen (text);
+
+ /* Some info about the rules for splitting.
+ *
+ * The User Data can be up to 140 bytes in the SMS part:
+ * 0) If we only need one chunk, it can be of up to 140 bytes.
+ * If we need more than one chunk, these have to be of 140 - 6 = 134
+ * bytes each, as we need place for the UDH header.
+ * 1) If we're using GSM7 encoding, this gives us up to 160 characters,
+ * as we can pack 160 characters of 7bits each into 140 bytes.
+ * 160 * 7 = 140 * 8 = 1120.
+ * If we only have 134 bytes allowed, that would mean that we can pack
+ * up to 153 input characters:
+ * 134 * 8 = 1072; 1072/7=153.14
+ * 2) If we're using UCS2 encoding, we can pack up to 70 characters in
+ * 140 bytes (each with 2 bytes), or up to 67 characters in 134 bytes.
+ *
+ * This method does the split of the input string into N strings, so that
+ * each of the strings can be placed in a SMS part.
+ */
+
+ /* Check if we can do GSM encoding */
+ mm_charset_get_encoded_len (text,
+ MM_MODEM_CHARSET_GSM,
+ &gsm_unsupported);
+ if (gsm_unsupported > 0) {
+ /* If cannot do it in GSM encoding, do it in UCS-2 */
+ GByteArray *array;
+
+ *encoding = MM_SMS_ENCODING_UCS2;
+
+ /* Guess more or less the size of the output array to avoid multiple
+ * allocations */
+ array = g_byte_array_sized_new (in_len * 2);
+ if (!mm_modem_charset_byte_array_append (array,
+ text,
+ FALSE,
+ MM_MODEM_CHARSET_UCS2)) {
+ g_byte_array_unref (array);
+ return NULL;
+ }
+
+ /* Our bytearray has it in UCS-2 now.
+ * UCS-2 is a fixed-size encoding, which means that the text has exactly
+ * 2 bytes for each unicode point. We can now split this array into
+ * chunks of 67 UCS-2 characters (134 bytes).
+ *
+ * Note that UCS-2 covers unicode points between U+0000 and U+FFFF, which
+ * means that there is no direct relationship between the size of the
+ * input text in UTF-8 and the size of the text in UCS-2. A 3-byte UTF-8
+ * encoded character will still be represented with 2 bytes in UCS-2.
+ */
+ if (array->len <= 140) {
+ out = g_new (gchar *, 2);
+ out[0] = g_strdup (text);
+ out[1] = NULL;
+ } else {
+ n_chunks = array->len / 134;
+ if (array->len % 134 != 0)
+ n_chunks++;
+
+ out = g_new0 (gchar *, n_chunks + 1);
+ for (i = 0, j = 0; i < n_chunks; i++, j += 134) {
+ out[i] = sms_decode_text (&array->data[j],
+ MIN (array->len - j, 134),
+ MM_SMS_ENCODING_UCS2,
+ 0);
+ }
+ }
+ g_byte_array_unref (array);
+ } else {
+ /* Do it with GSM encoding */
+ *encoding = MM_SMS_ENCODING_GSM7;
+
+ if (in_len <= 160) {
+ out = g_new (gchar *, 2);
+ out[0] = g_strdup (text);
+ out[1] = NULL;
+ } else {
+ n_chunks = in_len / 153;
+ if (in_len % 153 != 0)
+ n_chunks++;
+
+ out = g_new0 (gchar *, n_chunks + 1);
+ for (i = 0, j = 0; i < n_chunks; i++, j += 153) {
+ out[i] = g_strndup (&text[j], 153);
+ }
+ }
+ }
+
+ return out;
+}
+
+GByteArray **
+mm_sms_part_3gpp_util_split_data (const guint8 *data,
+ gsize data_len)
+{
+ GByteArray **out;
+
+ /* Some info about the rules for splitting.
+ *
+ * The User Data can be up to 140 bytes in the SMS part:
+ * 0) If we only need one chunk, it can be of up to 140 bytes.
+ * If we need more than one chunk, these have to be of 140 - 6 = 134
+ * bytes each, as we need place for the UDH header.
+ */
+
+ if (data_len <= 140) {
+ out = g_new0 (GByteArray *, 2);
+ out[0] = g_byte_array_append (g_byte_array_sized_new (data_len),
+ data,
+ data_len);
+ } else {
+ guint n_chunks;
+ guint i;
+ guint j;
+
+ n_chunks = data_len / 134;
+ if (data_len % 134 != 0)
+ n_chunks ++;
+
+ out = g_new0 (GByteArray *, n_chunks + 1);
+ for (i = 0, j = 0; i < n_chunks; i++, j+= 134) {
+ out[i] = g_byte_array_append (g_byte_array_sized_new (134),
+ &data[j],
+ MIN (data_len - j, 134));
+ }
+ }
+
+ return out;
+}
diff --git a/src/mm-sms-part-3gpp.h b/src/mm-sms-part-3gpp.h
new file mode 100644
index 0000000..82709a2
--- /dev/null
+++ b/src/mm-sms-part-3gpp.h
@@ -0,0 +1,54 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details:
+ *
+ * Copyright (C) 2011 - 2012 Red Hat, Inc.
+ * Copyright (C) 2013 Google, Inc.
+ */
+
+#ifndef MM_SMS_PART_3GPP_H
+#define MM_SMS_PART_3GPP_H
+
+#include <glib.h>
+#include <ModemManager-enums.h>
+
+#include "mm-sms-part.h"
+
+#define MM_SMS_PART_3GPP_MAX_PDU_LEN 344
+
+MMSmsPart *mm_sms_part_3gpp_new_from_pdu (guint index,
+ const gchar *hexpdu,
+ GError **error);
+
+MMSmsPart *mm_sms_part_3gpp_new_from_binary_pdu (guint index,
+ const guint8 *pdu,
+ gsize pdu_len,
+ GError **error);
+
+guint8 *mm_sms_part_3gpp_get_submit_pdu (MMSmsPart *part,
+ guint *out_pdulen,
+ guint *out_msgstart,
+ GError **error);
+
+/* For testcases only */
+
+guint mm_sms_part_3gpp_encode_address (const gchar *address,
+ guint8 *buf,
+ gsize buflen,
+ gboolean is_smsc);
+
+gchar **mm_sms_part_3gpp_util_split_text (const gchar *text,
+ MMSmsEncoding *encoding);
+
+GByteArray **mm_sms_part_3gpp_util_split_data (const guint8 *data,
+ gsize data_len);
+
+#endif /* MM_SMS_PART_3GPP_H */
diff --git a/src/mm-sms-part-cdma.c b/src/mm-sms-part-cdma.c
new file mode 100644
index 0000000..2f0c99a
--- /dev/null
+++ b/src/mm-sms-part-cdma.c
@@ -0,0 +1,1616 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details:
+ *
+ * Copyright (C) 2013 Google, Inc.
+ */
+
+#include <ctype.h>
+#include <string.h>
+
+#include <glib.h>
+
+#include <ModemManager.h>
+#define _LIBMM_INSIDE_MM
+#include <libmm-glib.h>
+
+#include "mm-charsets.h"
+#include "mm-sms-part-cdma.h"
+#include "mm-log.h"
+
+/*
+ * Documentation that you may want to have around:
+ *
+ * 3GPP2 C.S0015-B: Short Message Service (SMS) for Wideband Spread Spectrum
+ * Systems.
+ *
+ * 3GPP2 C.R1001-G: Administration of Parameter Value Assignments for CDMA2000
+ * Spread Spectrum Standards.
+ *
+ * 3GPP2 X.S0004-550-E: Mobile Application Part (MAP).
+ *
+ * 3GPP2 C.S0005-E: Upper Layer (Layer 3) Signaling Standard for CDMA2000
+ * Spread Spectrum Systems.
+ *
+ * 3GPP2 N.S0005-O: Cellular Radiotelecommunications Intersystem Operations.
+ */
+
+/* 3GPP2 C.S0015-B, section 3.4, table 3.4-1 */
+typedef enum {
+ MESSAGE_TYPE_POINT_TO_POINT = 0,
+ MESSAGE_TYPE_BROADCAST = 1,
+ MESSAGE_TYPE_ACKNOWLEDGE = 2
+} MessageType;
+
+/* 3GPP2 C.S0015-B, section 3.4.3, table 3.4.3-1 */
+typedef enum {
+ PARAMETER_ID_TELESERVICE_ID = 0,
+ PARAMETER_ID_SERVICE_CATEGORY = 1,
+ PARAMETER_ID_ORIGINATING_ADDRESS = 2,
+ PARAMETER_ID_ORIGINATING_SUBADDRESS = 3,
+ PARAMETER_ID_DESTINATION_ADDRESS = 4,
+ PARAMETER_ID_DESTINATION_SUBADDRESS = 5,
+ PARAMETER_ID_BEARER_REPLY_OPTION = 6,
+ PARAMETER_ID_CAUSE_CODES = 7,
+ PARAMETER_ID_BEARER_DATA = 8
+} ParameterId;
+
+/* 3GPP2 C.S0015-B, section 3.4.3.3 */
+typedef enum {
+ DIGIT_MODE_DTMF = 0,
+ DIGIT_MODE_ASCII = 1
+} DigitMode;
+
+/* 3GPP2 C.S0015-B, section 3.4.3.3 */
+typedef enum {
+ NUMBER_MODE_DIGIT = 0,
+ NUMBER_MODE_DATA_NETWORK_ADDRESS = 1
+} NumberMode;
+
+/* 3GPP2 C.S0005-E, section 2.7.1.3.2.4, table 2.7.1.3.2.4-2 */
+typedef enum {
+ NUMBER_TYPE_UNKNOWN = 0,
+ NUMBER_TYPE_INTERNATIONAL = 1,
+ NUMBER_TYPE_NATIONAL = 2,
+ NUMBER_TYPE_NETWORK_SPECIFIC = 3,
+ NUMBER_TYPE_SUBSCRIBER = 4,
+ /* 5 reserved */
+ NUMBER_TYPE_ABBREVIATED = 6,
+ /* 7 reserved */
+} NumberType;
+
+/* 3GPP2 C.S0015-B, section 3.4.3.3, table 3.4.3.3-1 */
+typedef enum {
+ DATA_NETWORK_ADDRESS_TYPE_UNKNOWN = 0,
+ DATA_NETWORK_ADDRESS_TYPE_INTERNET_PROTOCOL = 1,
+ DATA_NETWORK_ADDRESS_TYPE_INTERNET_EMAIL_ADDRESS = 2
+} DataNetworkAddressType;
+
+/* 3GPP2 C.S0005-E, section 2.7.1.3.2.4, table 2.7.1.3.2.4-3 */
+typedef enum {
+ NUMBERING_PLAN_UNKNOWN = 0,
+ NUMBERING_PLAN_ISDN = 1,
+ NUMBERING_PLAN_DATA = 3,
+ NUMBERING_PLAN_TELEX = 4,
+ NUMBERING_PLAN_PRIVATE = 9,
+ /* 15 reserved */
+} NumberingPlan;
+
+/* 3GPP2 C.S0015-B, section 3.4.3.6 */
+typedef enum {
+ ERROR_CLASS_NO_ERROR = 0,
+ /* 1 reserved */
+ ERROR_CLASS_TEMPORARY = 2,
+ ERROR_CLASS_PERMANENT = 3
+} ErrorClass;
+
+/* 3GPP2 N.S0005-O, section 6.5.2.125*/
+typedef enum {
+ CAUSE_CODE_NETWORK_PROBLEM_ADDRESS_VACANT = 0,
+ CAUSE_CODE_NETWORK_PROBLEM_ADDRESS_TRANSLATION_FAILURE = 1,
+ CAUSE_CODE_NETWORK_PROBLEM_NETWORK_RESOURCE_OUTAGE = 2,
+ CAUSE_CODE_NETWORK_PROBLEM_NETWORK_FAILURE = 3,
+ CAUSE_CODE_NETWORK_PROBLEM_INVALID_TELESERVICE_ID = 4,
+ CAUSE_CODE_NETWORK_PROBLEM_OTHER = 5,
+ /* 6 to 31 reserved, treat as CAUSE_CODE_NETWORK_PROBLEM_OTHER */
+ CAUSE_CODE_TERMINAL_PROBLEM_NO_PAGE_RESPONSE = 32,
+ CAUSE_CODE_TERMINAL_PROBLEM_DESTINATION_BUSY = 33,
+ CAUSE_CODE_TERMINAL_PROBLEM_NO_ACKNOWLEDGMENT = 34,
+ CAUSE_CODE_TERMINAL_PROBLEM_DESTINATION_RESOURCE_SHORTAGE = 35,
+ CAUSE_CODE_TERMINAL_PROBLEM_SMS_DELIVERY_POSTPONED = 36,
+ CAUSE_CODE_TERMINAL_PROBLEM_DESTINATION_OUT_OF_SERVICE = 37,
+ CAUSE_CODE_TERMINAL_PROBLEM_DESTINATION_NO_LONGER_AT_THIS_ADDRESS = 38,
+ CAUSE_CODE_TERMINAL_PROBLEM_OTHER = 39,
+ /* 40 to 47 reserved, treat as CAUSE_CODE_TERMINAL_PROBLEM_OTHER */
+ /* 48 to 63 reserved, treat as CAUSE_CODE_TERMINAL_PROBLEM_SMS_DELIVERY_POSTPONED */
+ CAUSE_CODE_RADIO_INTERFACE_PROBLEM_RESOURCE_SHORTAGE = 64,
+ CAUSE_CODE_RADIO_INTERFACE_PROBLEM_INCOMPATIBILITY = 65,
+ CAUSE_CODE_RADIO_INTERFACE_PROBLEM_OTHER = 66,
+ /* 67 to 95 reserved, treat as CAUSE_CODE_RADIO_INTERFACE_PROBLEM_OTHER */
+ CAUSE_CODE_GENERAL_PROBLEM_ENCODING = 96,
+ CAUSE_CODE_GENERAL_PROBLEM_SMS_ORIGINATION_DENIED = 97,
+ CAUSE_CODE_GENERAL_PROBLEM_SMS_TERMINATION_DENIED = 98,
+ CAUSE_CODE_GENERAL_PROBLEM_SUPPLEMENTARY_SERVICE_NOT_SUPPORTED = 99,
+ CAUSE_CODE_GENERAL_PROBLEM_SMS_NOT_SUPPORTED = 100,
+ /* 101 reserved */
+ CAUSE_CODE_GENERAL_PROBLEM_MISSING_EXPECTED_PARAMETER = 102,
+ CAUSE_CODE_GENERAL_PROBLEM_MISSING_MANDATORY_PARAMETER = 103,
+ CAUSE_CODE_GENERAL_PROBLEM_UNRECOGNIZED_PARAMETER_VALUE = 104,
+ CAUSE_CODE_GENERAL_PROBLEM_UNEXPECTED_PARAMETER_VALUE = 105,
+ CAUSE_CODE_GENERAL_PROBLEM_USER_DATA_SIZE_ERROR = 106,
+ CAUSE_CODE_GENERAL_PROBLEM_OTHER = 107,
+ /* 108 to 223 reserved, treat as CAUSE_CODE_GENERAL_PROBLEM_OTHER */
+ /* 224 to 255 reserved for TIA/EIA-41 extension, otherwise treat as CAUSE_CODE_GENERAL_PROBLEM_OTHER */
+} CauseCode;
+
+/* 3GPP2 C.S0015-B, section 4.5, table 4.5-1 */
+typedef enum {
+ SUBPARAMETER_ID_MESSAGE_ID = 0,
+ SUBPARAMETER_ID_USER_DATA = 1,
+ SUBPARAMETER_ID_USER_RESPONSE_CODE = 2,
+ SUBPARAMETER_ID_MESSAGE_CENTER_TIME_STAMP = 3,
+ SUBPARAMETER_ID_VALIDITY_PERIOD_ABSOLUTE = 4,
+ SUBPARAMETER_ID_VALIDITY_PERIOD_RELATIVE = 5,
+ SUBPARAMETER_ID_DEFERRED_DELIVERY_TIME_ABSOLUTE = 6,
+ SUBPARAMETER_ID_DEFERRED_DELIVERY_TIME_RELATIVE = 7,
+ SUBPARAMETER_ID_PRIORITY_INDICATOR = 8,
+ SUBPARAMETER_ID_PRIVACY_INDICATOR = 9,
+ SUBPARAMETER_ID_REPLY_OPTION = 10,
+ SUBPARAMETER_ID_NUMBER_OF_MESSAGES = 11,
+ SUBPARAMETER_ID_ALERT_ON_MESSAGE_DELIVERY = 12,
+ SUBPARAMETER_ID_LANGUAGE_INDICATOR = 13,
+ SUBPARAMETER_ID_CALL_BACK_NUMBER = 14,
+ SUBPARAMETER_ID_MESSAGE_DISPLAY_MODE = 15,
+ SUBPARAMETER_ID_MULTIPLE_ENCODING_USER_DATA = 16,
+ SUBPARAMETER_ID_MESSAGE_DEPOSIT_INDEX = 17,
+ SUBPARAMETER_ID_SERVICE_CATEGORY_PROGRAM_DATA = 18,
+ SUBPARAMETER_ID_SERVICE_CATEGORY_PROGRAM_RESULT = 19,
+ SUBPARAMETER_ID_MESSAGE_STATUS = 20,
+ SUBPARAMETER_ID_TP_FAILURE_CAUSE = 21,
+ SUBPARAMETER_ID_ENHANCED_VMN = 22,
+ SUBPARAMETER_ID_ENHANCED_VMN_ACK = 23,
+} SubparameterId;
+
+/* 3GPP2 C.S0015-B, section 4.5.1, table 4.5.1-1 */
+typedef enum {
+ TELESERVICE_MESSAGE_TYPE_UNKNOWN = 0,
+ TELESERVICE_MESSAGE_TYPE_DELIVER = 1,
+ TELESERVICE_MESSAGE_TYPE_SUBMIT = 2,
+ TELESERVICE_MESSAGE_TYPE_CANCELLATION = 3,
+ TELESERVICE_MESSAGE_TYPE_DELIVERY_ACKNOWLEDGEMENT = 4,
+ TELESERVICE_MESSAGE_TYPE_USER_ACKNOWLEDGEMENT = 5,
+ TELESERVICE_MESSAGE_TYPE_READ_ACKNOWLEDGEMENT = 6,
+} TeleserviceMessageType;
+
+/* C.R1001-G, section 9.1, table 9.1-1 */
+typedef enum {
+ ENCODING_OCTET = 0,
+ ENCODING_EXTENDED_PROTOCOL_MESSAGE = 1,
+ ENCODING_ASCII_7BIT = 2,
+ ENCODING_IA5 = 3,
+ ENCODING_UNICODE = 4,
+ ENCODING_SHIFT_JIS = 5,
+ ENCODING_KOREAN = 6,
+ ENCODING_LATIN_HEBREW = 7,
+ ENCODING_LATIN = 8,
+ ENCODING_GSM_7BIT = 9,
+ ENCODING_GSM_DCS = 10,
+} Encoding;
+
+static const gchar *
+encoding_to_string (Encoding encoding)
+{
+ static const gchar *encoding_str[] = {
+ "octet",
+ "extend protocol message",
+ "7-bit ASCII",
+ "IA5",
+ "unicode",
+ "shift-j is",
+ "korean",
+ "latin/hebrew",
+ "latin",
+ "7-bit GSM",
+ "GSM data coding scheme"
+ };
+
+ if (encoding >= ENCODING_OCTET && encoding <= ENCODING_GSM_DCS)
+ return encoding_str[encoding];
+
+ return "unknown";
+}
+
+/*****************************************************************************/
+/* Read bits; o_bits < 8; n_bits <= 8
+ *
+ * Byte 0 Byte 1
+ * [7|6|5|4|3|2|1|0] [7|6|5|4|3|2|1|0]
+ *
+ * o_bits+n_bits <= 16
+ *
+ */
+static guint8
+read_bits (const guint8 *bytes,
+ guint8 o_bits,
+ guint8 n_bits)
+{
+ guint8 bits_in_first;
+ guint8 bits_in_second;
+
+ g_assert (o_bits < 8);
+ g_assert (n_bits <= 8);
+ g_assert (o_bits + n_bits <= 16);
+
+ /* Read only from the first byte */
+ if (o_bits + n_bits <= 8)
+ return (bytes[0] >> (8 - o_bits - n_bits)) & ((1 << n_bits) - 1);
+
+ /* Read (8 - o_bits) from the first byte and (n_bits - (8 - o_bits)) from the second byte */
+ bits_in_first = 8 - o_bits;
+ bits_in_second = n_bits - bits_in_first;
+ return (read_bits (&bytes[0], o_bits, bits_in_first) << bits_in_second) | read_bits (&bytes[1], 0, bits_in_second);
+}
+
+/*****************************************************************************/
+/* Cause code to delivery state */
+
+static MMSmsDeliveryState
+cause_code_to_delivery_state (guint8 error_class,
+ guint8 cause_code)
+{
+ guint delivery_state = 0;
+
+ switch (error_class) {
+ case ERROR_CLASS_NO_ERROR:
+ return MM_SMS_DELIVERY_STATE_COMPLETED_RECEIVED;
+ case ERROR_CLASS_TEMPORARY:
+ delivery_state += 0x300;
+ case ERROR_CLASS_PERMANENT:
+ delivery_state += 0x200;
+ default:
+ return MM_SMS_DELIVERY_STATE_UNKNOWN;
+ }
+
+ /* Fixes for unknown cause codes */
+
+ if (cause_code >= 6 && cause_code <= 31)
+ /* 6 to 31 reserved, treat as CAUSE_CODE_NETWORK_PROBLEM_OTHER */
+ delivery_state += CAUSE_CODE_NETWORK_PROBLEM_OTHER;
+ else if (cause_code >= 40 && cause_code <= 47)
+ /* 40 to 47 reserved, treat as CAUSE_CODE_TERMINAL_PROBLEM_OTHER */
+ delivery_state += CAUSE_CODE_TERMINAL_PROBLEM_OTHER;
+ else if (cause_code >= 48 && cause_code <= 63)
+ /* 48 to 63 reserved, treat as CAUSE_CODE_TERMINAL_PROBLEM_SMS_DELIVERY_POSTPONED */
+ delivery_state += CAUSE_CODE_TERMINAL_PROBLEM_SMS_DELIVERY_POSTPONED;
+ else if (cause_code >= 67 && cause_code <= 95)
+ /* 67 to 95 reserved, treat as CAUSE_CODE_RADIO_INTERFACE_PROBLEM_OTHER */
+ delivery_state += CAUSE_CODE_RADIO_INTERFACE_PROBLEM_OTHER;
+ else if (cause_code == 101)
+ /* 101 reserved */
+ delivery_state += CAUSE_CODE_GENERAL_PROBLEM_OTHER;
+ else if (cause_code >= 108 && cause_code <= 255)
+ /* 108 to 223 reserved, treat as CAUSE_CODE_GENERAL_PROBLEM_OTHER
+ * 224 to 255 reserved for TIA/EIA-41 extension, otherwise treat as CAUSE_CODE_GENERAL_PROBLEM_OTHER */
+ delivery_state += CAUSE_CODE_GENERAL_PROBLEM_OTHER;
+ else
+ /* direct relationship */
+ delivery_state += cause_code;
+
+ return (MMSmsDeliveryState) delivery_state;
+}
+
+/*****************************************************************************/
+
+MMSmsPart *
+mm_sms_part_cdma_new_from_pdu (guint index,
+ const gchar *hexpdu,
+ GError **error)
+{
+ gsize pdu_len;
+ guint8 *pdu;
+ MMSmsPart *part;
+
+ /* Convert PDU from hex to binary */
+ pdu = (guint8 *) mm_utils_hexstr2bin (hexpdu, &pdu_len);
+ if (!pdu) {
+ g_set_error_literal (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Couldn't convert CDMA PDU from hex to binary");
+ return NULL;
+ }
+
+ part = mm_sms_part_cdma_new_from_binary_pdu (index, pdu, pdu_len, error);
+ g_free (pdu);
+
+ return part;
+}
+
+struct Parameter {
+ guint8 parameter_id;
+ guint8 parameter_len;
+ guint8 parameter_value[];
+} __attribute__((packed));
+
+static void
+read_teleservice_id (MMSmsPart *sms_part,
+ const struct Parameter *parameter)
+{
+ guint16 teleservice_id;
+
+ g_assert (parameter->parameter_id == PARAMETER_ID_TELESERVICE_ID);
+
+ if (parameter->parameter_len != 2) {
+ mm_dbg (" invalid teleservice ID length found (%u != 2): ignoring",
+ parameter->parameter_len);
+ return;
+ }
+
+ memcpy (&teleservice_id, &parameter->parameter_value[0], 2);
+ teleservice_id = GUINT16_FROM_BE (teleservice_id);
+
+ switch (teleservice_id){
+ case MM_SMS_CDMA_TELESERVICE_ID_CMT91:
+ case MM_SMS_CDMA_TELESERVICE_ID_WPT:
+ case MM_SMS_CDMA_TELESERVICE_ID_WMT:
+ case MM_SMS_CDMA_TELESERVICE_ID_VMN:
+ case MM_SMS_CDMA_TELESERVICE_ID_WAP:
+ case MM_SMS_CDMA_TELESERVICE_ID_WEMT:
+ case MM_SMS_CDMA_TELESERVICE_ID_SCPT:
+ case MM_SMS_CDMA_TELESERVICE_ID_CATPT:
+ break;
+ default:
+ mm_dbg (" invalid teleservice ID found (%u): ignoring", teleservice_id);
+ return;
+ }
+
+ mm_dbg (" teleservice ID: %s (%u)",
+ mm_sms_cdma_teleservice_id_get_string (teleservice_id),
+ teleservice_id);
+
+ mm_sms_part_set_cdma_teleservice_id (sms_part,
+ (MMSmsCdmaTeleserviceId)teleservice_id);
+}
+
+static void
+read_service_category (MMSmsPart *sms_part,
+ const struct Parameter *parameter)
+{
+ guint16 service_category;
+
+ g_assert (parameter->parameter_id == PARAMETER_ID_SERVICE_CATEGORY);
+
+ if (parameter->parameter_len != 2) {
+ mm_dbg (" invalid service category length found (%u != 2): ignoring",
+ parameter->parameter_len);
+ return;
+ }
+
+ memcpy (&service_category, &parameter->parameter_value[0], 2);
+ service_category = GUINT16_FROM_BE (service_category);
+
+ switch (service_category) {
+ case MM_SMS_CDMA_SERVICE_CATEGORY_EMERGENCY_BROADCAST:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_ADMINISTRATIVE:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_MAINTENANCE:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_GENERAL_NEWS_LOCAL:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_GENERAL_NEWS_REGIONAL:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_GENERAL_NEWS_NATIONAL:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_GENERAL_NEWS_INTERNATIONAL:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_BUSINESS_NEWS_LOCAL:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_BUSINESS_NEWS_REGIONAL:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_BUSINESS_NEWS_NATIONAL:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_BUSINESS_NEWS_INTERNATIONAL:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_SPORTS_NEWS_LOCAL:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_SPORTS_NEWS_REGIONAL:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_SPORTS_NEWS_NATIONAL:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_SPORTS_NEWS_INTERNATIONAL:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_ENTERTAINMENT_NEWS_LOCAL:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_ENTERTAINMENT_NEWS_REGIONAL:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_ENTERTAINMENT_NEWS_NATIONAL:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_ENTERTAINMENT_NEWS_INTERNATIONAL:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_LOCAL_WEATHER:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_TRAFFIC_REPORT:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_FLIGHT_SCHEDULES:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_RESTAURANTS:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_LODGINGS:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_RETAIL_DIRECTORY:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_ADVERTISEMENTS:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_STOCK_QUOTES:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_EMPLOYMENT:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_HOSPITALS:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_TECHNOLOGY_NEWS:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_MULTICATEGORY:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_PRESIDENTIAL_ALERT:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_EXTREME_THREAT:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_SEVERE_THREAT:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_CHILD_ABDUCTION_EMERGENCY:
+ case MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_TEST:
+ break;
+ default:
+ mm_dbg (" invalid service category found (%u): ignoring", service_category);
+ return;
+ }
+
+ mm_dbg (" service category: %s (%u)",
+ mm_sms_cdma_service_category_get_string (service_category),
+ service_category);
+
+ mm_sms_part_set_cdma_service_category (sms_part,
+ (MMSmsCdmaServiceCategory)service_category);
+}
+
+static guint8
+dtmf_to_ascii (guint8 dtmf)
+{
+ static const gchar dtmf_to_ascii_digits[13] = {
+ '\0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '*', '#' };
+
+ if (dtmf > 0 && dtmf < 13)
+ return dtmf_to_ascii_digits[dtmf];
+
+ mm_dbg (" invalid dtmf digit: %u", dtmf);
+ return '\0';
+}
+
+static void
+read_address (MMSmsPart *sms_part,
+ const struct Parameter *parameter)
+{
+ guint8 digit_mode;
+ guint8 number_mode;
+ guint8 number_type;
+ guint8 numbering_plan;
+ guint8 num_fields;
+ guint byte_offset = 0;
+ guint bit_offset = 0;
+ guint i;
+ gchar *number = NULL;
+
+#define OFFSETS_UPDATE(n_bits) do { \
+ bit_offset += n_bits; \
+ if (bit_offset >= 8) { \
+ bit_offset-=8; \
+ byte_offset++; \
+ } \
+ } while (0)
+
+#define PARAMETER_SIZE_CHECK(required_size) \
+ if (parameter->parameter_len < required_size) { \
+ mm_dbg (" cannot read address, need at least %u bytes (got %u)", \
+ required_size, \
+ parameter->parameter_len); \
+ return; \
+ }
+
+ /* Readability of digit mode and number mode (first 2 bits, i.e. first byte) */
+ PARAMETER_SIZE_CHECK (1);
+
+ /* Digit mode */
+ digit_mode = read_bits (&parameter->parameter_value[byte_offset], bit_offset, 1);
+ OFFSETS_UPDATE (1);
+ g_assert (digit_mode <= 1);
+ switch (digit_mode) {
+ case DIGIT_MODE_DTMF:
+ mm_dbg (" digit mode: dtmf");
+ break;
+ case DIGIT_MODE_ASCII:
+ mm_dbg (" digit mode: ascii");
+ break;
+ default:
+ g_assert_not_reached ();
+ }
+
+ /* Number mode */
+ number_mode = read_bits (&parameter->parameter_value[byte_offset], bit_offset, 1);
+ OFFSETS_UPDATE (1);
+ switch (number_mode) {
+ case NUMBER_MODE_DIGIT:
+ mm_dbg (" number mode: digit");
+ break;
+ case NUMBER_MODE_DATA_NETWORK_ADDRESS:
+ mm_dbg (" number mode: data network address");
+ break;
+ default:
+ g_assert_not_reached ();
+ }
+
+ /* Number type */
+ if (digit_mode == DIGIT_MODE_ASCII) {
+ /* No need for readability check, still in first byte always */
+ number_type = read_bits (&parameter->parameter_value[byte_offset], bit_offset, 3);
+ OFFSETS_UPDATE (3);
+ switch (number_type) {
+ case NUMBER_TYPE_UNKNOWN:
+ mm_dbg (" number type: unknown");
+ break;
+ case NUMBER_TYPE_INTERNATIONAL:
+ mm_dbg (" number type: international");
+ break;
+ case NUMBER_TYPE_NATIONAL:
+ mm_dbg (" number type: national");
+ break;
+ case NUMBER_TYPE_NETWORK_SPECIFIC:
+ mm_dbg (" number type: specific");
+ break;
+ case NUMBER_TYPE_SUBSCRIBER:
+ mm_dbg (" number type: subscriber");
+ break;
+ case NUMBER_TYPE_ABBREVIATED:
+ mm_dbg (" number type: abbreviated");
+ break;
+ default:
+ mm_dbg (" number type unknown (%u)", number_type);
+ break;
+ }
+ } else
+ number_type = 0xFF;
+
+ /* Numbering plan */
+ if (digit_mode == DIGIT_MODE_ASCII && number_mode == NUMBER_MODE_DIGIT) {
+ /* Readability of numbering plan; may go to second byte */
+ PARAMETER_SIZE_CHECK (byte_offset + 1 + ((bit_offset + 4) / 8));
+ numbering_plan = read_bits (&parameter->parameter_value[byte_offset], bit_offset, 4);
+ OFFSETS_UPDATE (4);
+ switch (numbering_plan) {
+ case NUMBERING_PLAN_UNKNOWN:
+ mm_dbg (" numbering plan: unknown");
+ break;
+ case NUMBERING_PLAN_ISDN:
+ mm_dbg (" numbering plan: isdn");
+ break;
+ case NUMBERING_PLAN_DATA:
+ mm_dbg (" numbering plan: data");
+ break;
+ case NUMBERING_PLAN_TELEX:
+ mm_dbg (" numbering plan: telex");
+ break;
+ case NUMBERING_PLAN_PRIVATE:
+ mm_dbg (" numbering plan: private");
+ break;
+ default:
+ mm_dbg (" numbering plan unknown (%u)", numbering_plan);
+ break;
+ }
+ } else
+ numbering_plan = 0xFF;
+
+ /* Readability of num_fields; will go to third byte (((bit_offset + 8) / 8) == 1) */
+ PARAMETER_SIZE_CHECK (byte_offset + 2);
+ num_fields = read_bits (&parameter->parameter_value[byte_offset], bit_offset, 8);
+ OFFSETS_UPDATE (8);
+ mm_dbg (" num fields: %u", num_fields);
+
+ /* Address string */
+
+ if (digit_mode == DIGIT_MODE_DTMF) {
+ /* DTMF */
+ PARAMETER_SIZE_CHECK (byte_offset + 1 + ((bit_offset + (num_fields * 4)) / 8));
+ number = g_malloc (num_fields + 1);
+ for (i = 0; i < num_fields; i++) {
+ number[i] = dtmf_to_ascii (read_bits (&parameter->parameter_value[byte_offset], bit_offset, 4));
+ OFFSETS_UPDATE (4);
+ }
+ number[i] = '\0';
+ } else if (number_mode == NUMBER_MODE_DIGIT) {
+ /* ASCII
+ * TODO: should we expose numbering plan and number type? */
+ PARAMETER_SIZE_CHECK (byte_offset + 1 + ((bit_offset + (num_fields * 8)) / 8));
+ number = g_malloc (num_fields + 1);
+ for (i = 0; i < num_fields; i++) {
+ number[i] = read_bits (&parameter->parameter_value[byte_offset], bit_offset, 8);
+ OFFSETS_UPDATE (8);
+ }
+ number[i] = '\0';
+ } else if (number_type == DATA_NETWORK_ADDRESS_TYPE_INTERNET_EMAIL_ADDRESS) {
+ /* Internet e-mail address (ASCII) */
+ PARAMETER_SIZE_CHECK (byte_offset + 1 + ((bit_offset + (num_fields * 8)) / 8));
+ number = g_malloc (num_fields + 1);
+ for (i = 0; i < num_fields; i++) {
+ number[i] = read_bits (&parameter->parameter_value[byte_offset], bit_offset, 8);
+ OFFSETS_UPDATE (8);
+ }
+ number[i] = '\0';
+ } else if (number_type == DATA_NETWORK_ADDRESS_TYPE_INTERNET_PROTOCOL) {
+ GString *str;
+
+ /* Binary data network address (most significant first)
+ * For now, just print the hex string (e.g. FF:01...) */
+ PARAMETER_SIZE_CHECK (byte_offset + 1 + ((bit_offset + (num_fields * 8)) / 8));
+ str = g_string_sized_new (num_fields * 2);
+ for (i = 0; i < num_fields; i++) {
+ g_string_append_printf (str, "%.2X", read_bits (&parameter->parameter_value[byte_offset], bit_offset, 8));
+ OFFSETS_UPDATE (8);
+ }
+ number = g_string_free (str, FALSE);
+ } else
+ mm_dbg (" data network address number type unknown (%u)", number_type);
+
+ mm_dbg (" address: %s", number);
+
+ mm_sms_part_set_number (sms_part, number);
+ g_free (number);
+
+#undef OFFSETS_UPDATE
+#undef PARAMETER_SIZE_CHECK
+}
+
+static void
+read_bearer_reply_option (MMSmsPart *sms_part,
+ const struct Parameter *parameter)
+{
+ guint8 sequence;
+
+ g_assert (parameter->parameter_id == PARAMETER_ID_BEARER_REPLY_OPTION);
+
+ if (parameter->parameter_len != 1) {
+ mm_dbg (" invalid bearer reply option length found (%u != 1): ignoring",
+ parameter->parameter_len);
+ return;
+ }
+
+ sequence = read_bits (&parameter->parameter_value[0], 0, 6);
+ mm_dbg (" sequence: %u", sequence);
+
+ mm_sms_part_set_message_reference (sms_part, sequence);
+}
+
+static void
+read_cause_codes (MMSmsPart *sms_part,
+ const struct Parameter *parameter)
+{
+ guint8 sequence;
+ guint8 error_class;
+ guint8 cause_code;
+ MMSmsDeliveryState delivery_state;
+
+ g_assert (parameter->parameter_id == PARAMETER_ID_BEARER_REPLY_OPTION);
+
+ if (parameter->parameter_len != 1 && parameter->parameter_len != 2) {
+ mm_dbg (" invalid cause codes length found (%u): ignoring",
+ parameter->parameter_len);
+ return;
+ }
+
+ sequence = read_bits (&parameter->parameter_value[0], 0, 6);
+ mm_dbg (" sequence: %u", sequence);
+
+ error_class = read_bits (&parameter->parameter_value[0], 6, 2);
+ mm_dbg (" error class: %u", error_class);
+
+ if (error_class != ERROR_CLASS_NO_ERROR) {
+ if (parameter->parameter_len != 2) {
+ mm_dbg (" invalid cause codes length found (%u != 2): ignoring",
+ parameter->parameter_len);
+ return;
+ }
+ cause_code = parameter->parameter_value[1];
+ mm_dbg (" cause code: %u", cause_code);
+ } else
+ cause_code = 0;
+
+ delivery_state = cause_code_to_delivery_state (error_class, cause_code);
+ mm_dbg (" delivery state: %s", mm_sms_delivery_state_get_string (delivery_state));
+
+ mm_sms_part_set_message_reference (sms_part, sequence);
+ mm_sms_part_set_delivery_state (sms_part, delivery_state);
+}
+
+static void
+read_bearer_data_message_identifier (MMSmsPart *sms_part,
+ const struct Parameter *subparameter)
+{
+ guint8 message_type;
+ guint16 message_id;
+ guint8 header_ind;
+
+ g_assert (subparameter->parameter_id == SUBPARAMETER_ID_MESSAGE_ID);
+
+ if (subparameter->parameter_len != 3) {
+ mm_dbg (" invalid message identifier length found (%u): ignoring",
+ subparameter->parameter_len);
+ return;
+ }
+
+ message_type = read_bits (&subparameter->parameter_value[0], 0, 4);
+ switch (message_type) {
+ case TELESERVICE_MESSAGE_TYPE_UNKNOWN:
+ mm_dbg (" message type: unknown");
+ break;
+ case TELESERVICE_MESSAGE_TYPE_DELIVER:
+ mm_dbg (" message type: deliver");
+ mm_sms_part_set_pdu_type (sms_part, MM_SMS_PDU_TYPE_CDMA_DELIVER);
+ break;
+ case TELESERVICE_MESSAGE_TYPE_SUBMIT:
+ mm_dbg (" message type: submit");
+ mm_sms_part_set_pdu_type (sms_part, MM_SMS_PDU_TYPE_CDMA_SUBMIT);
+ break;
+ case TELESERVICE_MESSAGE_TYPE_CANCELLATION:
+ mm_dbg (" message type: cancellation");
+ mm_sms_part_set_pdu_type (sms_part, MM_SMS_PDU_TYPE_CDMA_CANCELLATION);
+ break;
+ case TELESERVICE_MESSAGE_TYPE_DELIVERY_ACKNOWLEDGEMENT:
+ mm_dbg (" message type: delivery acknowledgement");
+ mm_sms_part_set_pdu_type (sms_part, MM_SMS_PDU_TYPE_CDMA_DELIVERY_ACKNOWLEDGEMENT);
+ break;
+ case TELESERVICE_MESSAGE_TYPE_USER_ACKNOWLEDGEMENT:
+ mm_dbg (" message type: user acknowledgement");
+ mm_sms_part_set_pdu_type (sms_part, MM_SMS_PDU_TYPE_CDMA_USER_ACKNOWLEDGEMENT);
+ break;
+ case TELESERVICE_MESSAGE_TYPE_READ_ACKNOWLEDGEMENT:
+ mm_dbg (" message type: read acknowledgement");
+ mm_sms_part_set_pdu_type (sms_part, MM_SMS_PDU_TYPE_CDMA_READ_ACKNOWLEDGEMENT);
+ break;
+ default:
+ mm_dbg (" message type unknown (%u)", message_type);
+ break;
+ }
+
+ message_id = ((read_bits (&subparameter->parameter_value[0], 4, 8) << 8) |
+ (read_bits (&subparameter->parameter_value[1], 4, 8)));
+ message_id = GUINT16_FROM_BE (message_id);
+ mm_dbg (" message id: %u", (guint) message_id);
+
+ header_ind = read_bits (&subparameter->parameter_value[2], 4, 1);
+ mm_dbg (" header indicator: %u", header_ind);
+}
+
+static void
+read_bearer_data_user_data (MMSmsPart *sms_part,
+ const struct Parameter *subparameter)
+{
+ guint8 message_encoding;
+ guint8 message_type = 0;
+ guint8 num_fields;
+ guint byte_offset = 0;
+ guint bit_offset = 0;
+
+#define OFFSETS_UPDATE(n_bits) do { \
+ bit_offset += n_bits; \
+ if (bit_offset >= 8) { \
+ bit_offset-=8; \
+ byte_offset++; \
+ } \
+ } while (0)
+
+#define SUBPARAMETER_SIZE_CHECK(required_size) \
+ if (subparameter->parameter_len < required_size) { \
+ mm_dbg (" cannot read user data, need at least %u bytes (got %u)", \
+ required_size, \
+ subparameter->parameter_len); \
+ return; \
+ }
+
+ g_assert (subparameter->parameter_id == SUBPARAMETER_ID_USER_DATA);
+
+ /* Message encoding */
+ SUBPARAMETER_SIZE_CHECK (1);
+ message_encoding = read_bits (&subparameter->parameter_value[byte_offset], bit_offset, 5);
+ OFFSETS_UPDATE (5);
+ mm_dbg (" message encoding: %s", encoding_to_string (message_encoding));
+
+ /* Message type, only if extended protocol message */
+ if (message_encoding == ENCODING_EXTENDED_PROTOCOL_MESSAGE) {
+ SUBPARAMETER_SIZE_CHECK (2);
+ message_type = read_bits (&subparameter->parameter_value[byte_offset], bit_offset, 8);
+ OFFSETS_UPDATE (8);
+ mm_dbg (" message type: %u", message_type);
+ }
+
+ /* Number of fields */
+ SUBPARAMETER_SIZE_CHECK (byte_offset + 1 + ((bit_offset + 8) / 8));
+ num_fields = read_bits (&subparameter->parameter_value[byte_offset], bit_offset, 8);
+ OFFSETS_UPDATE (8);
+ mm_dbg (" num fields: %u", num_fields);
+
+ /* Now, process actual text or data */
+ switch (message_encoding) {
+ case ENCODING_OCTET: {
+ GByteArray *data;
+ guint i;
+
+ SUBPARAMETER_SIZE_CHECK (byte_offset + 1 + ((bit_offset + (num_fields * 8)) / 8));
+
+ data = g_byte_array_sized_new (num_fields);
+ g_byte_array_set_size (data, num_fields);
+ for (i = 0; i < num_fields; i++) {
+ data->data[i] = read_bits (&subparameter->parameter_value[byte_offset], bit_offset, 8);
+ OFFSETS_UPDATE (8);
+ }
+
+ mm_dbg (" data: (%u bytes)", num_fields);
+ mm_sms_part_take_data (sms_part, data);
+ break;
+ }
+
+ case ENCODING_ASCII_7BIT: {
+ gchar *text;
+ guint i;
+
+ SUBPARAMETER_SIZE_CHECK (byte_offset + 1 + ((bit_offset + (num_fields * 7)) / 8));
+
+ text = g_malloc (num_fields + 1);
+ for (i = 0; i < num_fields; i++) {
+ text[i] = read_bits (&subparameter->parameter_value[byte_offset], bit_offset, 7);
+ OFFSETS_UPDATE (7);
+ }
+ text[i] = '\0';
+
+ mm_dbg (" text: '%s'", text);
+ mm_sms_part_take_text (sms_part, text);
+ break;
+ }
+
+ case ENCODING_LATIN: {
+ gchar *latin;
+ gchar *text;
+ guint i;
+
+ SUBPARAMETER_SIZE_CHECK (byte_offset + 1 + ((bit_offset + (num_fields * 8)) / 8));
+
+ latin = g_malloc (num_fields + 1);
+ for (i = 0; i < num_fields; i++) {
+ latin[i] = read_bits (&subparameter->parameter_value[byte_offset], bit_offset, 8);
+ OFFSETS_UPDATE (8);
+ }
+ latin[i] = '\0';
+
+ text = g_convert (latin, -1, "UTF-8", "ISO−8859−1", NULL, NULL, NULL);
+ if (!text) {
+ mm_dbg (" text/data: ignored (latin to UTF-8 conversion error)");
+ } else {
+ mm_dbg (" text: '%s'", text);
+ mm_sms_part_take_text (sms_part, text);
+ }
+
+ g_free (latin);
+ break;
+ }
+
+ case ENCODING_UNICODE: {
+ gchar *utf16;
+ gchar *text;
+ guint i;
+ guint num_bytes;
+
+ /* 2 bytes per field! */
+ num_bytes = num_fields * 2;
+
+ SUBPARAMETER_SIZE_CHECK (byte_offset + 1 + ((bit_offset + (num_bytes * 8)) / 8));
+
+ utf16 = g_malloc (num_bytes);
+ for (i = 0; i < num_bytes; i++) {
+ utf16[i] = read_bits (&subparameter->parameter_value[byte_offset], bit_offset, 8);
+ OFFSETS_UPDATE (8);
+ }
+
+ text = g_convert (utf16, num_bytes, "UTF-8", "UCS-2BE", NULL, NULL, NULL);
+ if (!text) {
+ mm_dbg (" text/data: ignored (UTF-16 to UTF-8 conversion error)");
+ } else {
+ mm_dbg (" text: '%s'", text);
+ mm_sms_part_take_text (sms_part, text);
+ }
+
+ g_free (utf16);
+ break;
+ }
+
+ default:
+ mm_dbg (" text/data: ignored (unsupported encoding)");
+ }
+
+#undef OFFSETS_UPDATE
+#undef SUBPARAMETER_SIZE_CHECK
+}
+
+static void
+read_bearer_data (MMSmsPart *sms_part,
+ const struct Parameter *parameter)
+{
+ guint offset;
+
+#define PARAMETER_SIZE_CHECK(required_size) \
+ if (parameter->parameter_len < required_size) { \
+ mm_dbg (" cannot read bearer data, need at least %u bytes (got %u)", \
+ required_size, \
+ parameter->parameter_len); \
+ return; \
+ }
+
+ offset = 0;
+ while (offset < parameter->parameter_len) {
+ const struct Parameter *subparameter;
+
+ PARAMETER_SIZE_CHECK (offset + 2);
+ subparameter = (const struct Parameter *)&parameter->parameter_value[offset];
+ offset += 2;
+
+ PARAMETER_SIZE_CHECK (offset + subparameter->parameter_len);
+ offset += subparameter->parameter_len;
+
+ switch (subparameter->parameter_id) {
+ case SUBPARAMETER_ID_MESSAGE_ID:
+ mm_dbg (" reading message ID...");
+ read_bearer_data_message_identifier (sms_part, subparameter);
+ break;
+ case SUBPARAMETER_ID_USER_DATA:
+ mm_dbg (" reading user data...");
+ read_bearer_data_user_data (sms_part, subparameter);
+ break;
+ case SUBPARAMETER_ID_USER_RESPONSE_CODE:
+ mm_dbg (" skipping user response code...");
+ break;
+ case SUBPARAMETER_ID_MESSAGE_CENTER_TIME_STAMP:
+ mm_dbg (" skipping message center timestamp...");
+ break;
+ case SUBPARAMETER_ID_VALIDITY_PERIOD_ABSOLUTE:
+ mm_dbg (" skipping absolute validity period...");
+ break;
+ case SUBPARAMETER_ID_VALIDITY_PERIOD_RELATIVE:
+ mm_dbg (" skipping relative validity period...");
+ break;
+ case SUBPARAMETER_ID_DEFERRED_DELIVERY_TIME_ABSOLUTE:
+ mm_dbg (" skipping absolute deferred delivery time...");
+ break;
+ case SUBPARAMETER_ID_DEFERRED_DELIVERY_TIME_RELATIVE:
+ mm_dbg (" skipping relative deferred delivery time...");
+ break;
+ case SUBPARAMETER_ID_PRIORITY_INDICATOR:
+ mm_dbg (" skipping priority indicator...");
+ break;
+ case SUBPARAMETER_ID_PRIVACY_INDICATOR:
+ mm_dbg (" skipping privacy indicator...");
+ break;
+ case SUBPARAMETER_ID_REPLY_OPTION:
+ mm_dbg (" skipping reply option...");
+ break;
+ case SUBPARAMETER_ID_NUMBER_OF_MESSAGES:
+ mm_dbg (" skipping number of messages...");
+ break;
+ case SUBPARAMETER_ID_ALERT_ON_MESSAGE_DELIVERY:
+ mm_dbg (" skipping alert on message delivery...");
+ break;
+ case SUBPARAMETER_ID_LANGUAGE_INDICATOR:
+ mm_dbg (" skipping language indicator...");
+ break;
+ case SUBPARAMETER_ID_CALL_BACK_NUMBER:
+ mm_dbg (" skipping call back number...");
+ break;
+ case SUBPARAMETER_ID_MESSAGE_DISPLAY_MODE:
+ mm_dbg (" skipping message display mode...");
+ break;
+ case SUBPARAMETER_ID_MULTIPLE_ENCODING_USER_DATA:
+ mm_dbg (" skipping multiple encoding user data...");
+ break;
+ case SUBPARAMETER_ID_MESSAGE_DEPOSIT_INDEX:
+ mm_dbg (" skipping message deposit index...");
+ break;
+ case SUBPARAMETER_ID_SERVICE_CATEGORY_PROGRAM_DATA:
+ mm_dbg (" skipping service category program data...");
+ break;
+ case SUBPARAMETER_ID_SERVICE_CATEGORY_PROGRAM_RESULT:
+ mm_dbg (" skipping service category program result...");
+ break;
+ case SUBPARAMETER_ID_MESSAGE_STATUS:
+ mm_dbg (" skipping message status...");
+ break;
+ case SUBPARAMETER_ID_TP_FAILURE_CAUSE:
+ mm_dbg (" skipping TP failure case...");
+ break;
+ case SUBPARAMETER_ID_ENHANCED_VMN:
+ mm_dbg (" skipping enhanced vmn...");
+ break;
+ case SUBPARAMETER_ID_ENHANCED_VMN_ACK:
+ mm_dbg (" skipping enhanced vmn ack...");
+ break;
+ default:
+ mm_dbg (" unknown subparameter found: '%u' (ignoring)",
+ subparameter->parameter_id);
+ break;
+ }
+ }
+
+#undef PARAMETER_SIZE_CHECK
+}
+
+MMSmsPart *
+mm_sms_part_cdma_new_from_binary_pdu (guint index,
+ const guint8 *pdu,
+ gsize pdu_len,
+ GError **error)
+{
+ MMSmsPart *sms_part;
+ guint offset;
+ guint message_type;
+
+ /* Create the new MMSmsPart */
+ sms_part = mm_sms_part_new (index, MM_SMS_PDU_TYPE_UNKNOWN);
+
+ if (index != SMS_PART_INVALID_INDEX)
+ mm_dbg ("Parsing CDMA PDU (%u)...", index);
+ else
+ mm_dbg ("Parsing CDMA PDU...");
+
+#define PDU_SIZE_CHECK(required_size, check_descr_str) \
+ if (pdu_len < required_size) { \
+ g_set_error (error, \
+ MM_CORE_ERROR, \
+ MM_CORE_ERROR_FAILED, \
+ "CDMA PDU too short, %s: %" G_GSIZE_FORMAT " < %u", \
+ check_descr_str, \
+ pdu_len, \
+ required_size); \
+ mm_sms_part_free (sms_part); \
+ return NULL; \
+ }
+
+ offset = 0;
+
+ /* First byte: SMS message type */
+ PDU_SIZE_CHECK (offset + 1, "cannot read SMS message type");
+ message_type = pdu[offset++];
+ switch (message_type) {
+ case MESSAGE_TYPE_POINT_TO_POINT:
+ case MESSAGE_TYPE_BROADCAST:
+ case MESSAGE_TYPE_ACKNOWLEDGE:
+ break;
+ default:
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Invalid SMS message type (%u)",
+ message_type);
+ mm_sms_part_free (sms_part);
+ return NULL;
+ }
+
+ /* Now walk parameters one by one */
+ while (offset < pdu_len) {
+ const struct Parameter *parameter;
+
+ PDU_SIZE_CHECK (offset + 2, "cannot read parameter header");
+ parameter = (const struct Parameter *)&pdu[offset];
+ offset += 2;
+
+ PDU_SIZE_CHECK (offset + parameter->parameter_len, "cannot read parameter value");
+ offset += parameter->parameter_len;
+
+ switch (parameter->parameter_id) {
+ case PARAMETER_ID_TELESERVICE_ID:
+ mm_dbg (" reading teleservice ID...");
+ read_teleservice_id (sms_part, parameter);
+ break;
+ case PARAMETER_ID_SERVICE_CATEGORY:
+ mm_dbg (" reading service category...");
+ read_service_category (sms_part, parameter);
+ break;
+ case PARAMETER_ID_ORIGINATING_ADDRESS:
+ mm_dbg (" reading originating address...");
+ if (mm_sms_part_get_number (sms_part))
+ mm_dbg (" cannot read originating address; an address field was already read");
+ else
+ read_address (sms_part, parameter);
+ break;
+ case PARAMETER_ID_ORIGINATING_SUBADDRESS:
+ mm_dbg (" skipping originating subaddress...");
+ break;
+ case PARAMETER_ID_DESTINATION_ADDRESS:
+ mm_dbg (" reading destination address...");
+ if (mm_sms_part_get_number (sms_part))
+ mm_dbg (" cannot read destination address; an address field was already read");
+ else
+ read_address (sms_part, parameter);
+ break;
+ case PARAMETER_ID_DESTINATION_SUBADDRESS:
+ mm_dbg (" skipping destination subaddress...");
+ break;
+ case PARAMETER_ID_BEARER_REPLY_OPTION:
+ mm_dbg (" reading bearer reply option...");
+ read_bearer_reply_option (sms_part, parameter);
+ break;
+ case PARAMETER_ID_CAUSE_CODES:
+ mm_dbg (" reading cause codes...");
+ read_cause_codes (sms_part, parameter);
+ break;
+ case PARAMETER_ID_BEARER_DATA:
+ mm_dbg (" reading bearer data...");
+ read_bearer_data (sms_part, parameter);
+ break;
+ default:
+ mm_dbg (" unknown parameter found: '%u' (ignoring)",
+ parameter->parameter_id);
+ break;
+ }
+ }
+
+ /* Check mandatory parameters */
+ switch (message_type) {
+ case MESSAGE_TYPE_POINT_TO_POINT:
+ if (mm_sms_part_get_cdma_teleservice_id (sms_part) == MM_SMS_CDMA_TELESERVICE_ID_UNKNOWN)
+ mm_dbg (" mandatory parameter missing: teleservice ID not found or invalid in point-to-point message");
+ break;
+ case MESSAGE_TYPE_BROADCAST:
+ if (mm_sms_part_get_cdma_service_category (sms_part) == MM_SMS_CDMA_SERVICE_CATEGORY_UNKNOWN)
+ mm_dbg (" mandatory parameter missing: service category not found or invalid in broadcast message");
+ break;
+ case MESSAGE_TYPE_ACKNOWLEDGE:
+ if (mm_sms_part_get_message_reference (sms_part) == 0)
+ mm_dbg (" mandatory parameter missing: cause codes not found or invalid in acknowledge message");
+ break;
+ }
+
+#undef PDU_SIZE_CHECK
+
+ return sms_part;
+}
+
+/*****************************************************************************/
+/* Write bits; o_bits < 8; n_bits <= 8
+ *
+ * Byte 0 Byte 1
+ * [7|6|5|4|3|2|1|0] [7|6|5|4|3|2|1|0]
+ *
+ * o_bits+n_bits <= 16
+ *
+ * NOTE! The bits being set should be 0 initially.
+ */
+static void
+write_bits (guint8 *bytes,
+ guint8 o_bits,
+ guint8 n_bits,
+ guint8 bits)
+{
+ guint8 bits_in_first;
+ guint8 bits_in_second;
+
+ g_assert (o_bits < 8);
+ g_assert (n_bits <= 8);
+ g_assert (o_bits + n_bits <= 16);
+
+ /* Write only in the first byte */
+ if (o_bits + n_bits <= 8) {
+ bytes[0] |= (bits & ((1 << n_bits) - 1)) << (8 - o_bits - n_bits);
+ return;
+ }
+
+ /* Write (8 - o_bits) in the first byte and (n_bits - (8 - o_bits)) in the second byte */
+ bits_in_first = 8 - o_bits;
+ bits_in_second = n_bits - bits_in_first;
+
+ write_bits (&bytes[0], o_bits, bits_in_first, (bits >> bits_in_second));
+ write_bits (&bytes[1], 0, bits_in_second, bits);
+}
+
+/*****************************************************************************/
+
+static guint8
+dtmf_from_ascii (guint8 ascii)
+{
+ if (ascii >= '1' && ascii <= '9')
+ return ascii - '0';
+ if (ascii == '0')
+ return 10;
+ if (ascii == '*')
+ return 11;
+ if (ascii == '#')
+ return 12;
+
+ mm_dbg (" invalid ascii digit in dtmf conversion: %c", ascii);
+ return 0;
+}
+
+static gboolean
+write_teleservice_id (MMSmsPart *part,
+ guint8 *pdu,
+ guint *absolute_offset,
+ GError **error)
+{
+ guint16 aux16;
+
+ mm_dbg (" writing teleservice ID...");
+
+ if (mm_sms_part_get_cdma_teleservice_id (part) != MM_SMS_CDMA_TELESERVICE_ID_WMT) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_UNSUPPORTED,
+ "Teleservice '%s' not supported",
+ mm_sms_cdma_teleservice_id_get_string (
+ mm_sms_part_get_cdma_teleservice_id (part)));
+ return FALSE;
+ }
+
+ mm_dbg (" teleservice ID: %s (%u)",
+ mm_sms_cdma_teleservice_id_get_string (MM_SMS_CDMA_TELESERVICE_ID_WMT),
+ MM_SMS_CDMA_TELESERVICE_ID_WMT);
+
+ /* Teleservice ID: WMT always */
+ pdu[0] = PARAMETER_ID_TELESERVICE_ID;
+ pdu[1] = 2; /* parameter_len, always 2 */
+ aux16 = GUINT16_TO_BE (MM_SMS_CDMA_TELESERVICE_ID_WMT);
+ memcpy (&pdu[2], &aux16, 2);
+
+ *absolute_offset += 4;
+ return TRUE;
+}
+
+static gboolean
+write_destination_address (MMSmsPart *part,
+ guint8 *pdu,
+ guint *absolute_offset,
+ GError **error)
+{
+ const gchar *number;
+ guint bit_offset;
+ guint byte_offset;
+ guint n_digits;
+ guint i;
+
+ mm_dbg (" writing destination address...");
+
+#define OFFSETS_UPDATE(n_bits) do { \
+ bit_offset += n_bits; \
+ if (bit_offset >= 8) { \
+ bit_offset-=8; \
+ byte_offset++; \
+ } \
+ } while (0)
+
+ number = mm_sms_part_get_number (part);
+ n_digits = strlen (number);
+
+ pdu[0] = PARAMETER_ID_DESTINATION_ADDRESS;
+ /* Write parameter length at the end */
+
+ byte_offset = 2;
+ bit_offset = 0;
+
+ /* Digit mode: DTMF always */
+ mm_dbg (" digit mode: dtmf");
+ write_bits (&pdu[byte_offset], bit_offset, 1, DIGIT_MODE_DTMF);
+ OFFSETS_UPDATE (1);
+
+ /* Number mode: DIGIT always */
+ mm_dbg (" number mode: digit");
+ write_bits (&pdu[byte_offset], bit_offset, 1, NUMBER_MODE_DIGIT);
+ OFFSETS_UPDATE (1);
+
+ /* Number type and numbering plan only needed in ASCII digit mode, so skip */
+
+ /* Number of fields */
+ if (n_digits > 256) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_UNSUPPORTED,
+ "Number too long (max 256 digits, %u given)",
+ n_digits);
+ return FALSE;
+ }
+ mm_dbg (" num fields: %u", n_digits);
+ write_bits (&pdu[byte_offset], bit_offset, 8, n_digits);
+ OFFSETS_UPDATE (8);
+
+ /* Actual DTMF encoded number */
+ mm_dbg (" address: %s", number);
+ for (i = 0; i < n_digits; i++) {
+ guint8 dtmf;
+
+ dtmf = dtmf_from_ascii (number[i]);
+ if (!dtmf) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_UNSUPPORTED,
+ "Unsupported character in number: '%c'. Cannot convert to DTMF",
+ number[i]);
+ return FALSE;
+ }
+ write_bits (&pdu[byte_offset], bit_offset, 4, dtmf);
+ OFFSETS_UPDATE (4);
+ }
+
+#undef OFFSETS_UPDATE
+
+ /* Write parameter length (remove header length to offset) */
+ byte_offset += !!bit_offset - 2;
+ if (byte_offset > 256) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_UNSUPPORTED,
+ "Number too long (max 256 bytes, %u given)",
+ byte_offset);
+ return FALSE;
+ }
+ pdu[1] = byte_offset;
+
+ *absolute_offset += (2 + pdu[1]);
+ return TRUE;
+}
+
+static gboolean
+write_bearer_data_message_identifier (MMSmsPart *part,
+ guint8 *pdu,
+ guint *parameter_offset,
+ GError **error)
+{
+ pdu[0] = SUBPARAMETER_ID_MESSAGE_ID;
+ pdu[1] = 3; /* subparameter_len, always 3 */
+
+ mm_dbg (" writing message identifier: submit");
+
+ /* Message type */
+ write_bits (&pdu[2], 0, 4, TELESERVICE_MESSAGE_TYPE_SUBMIT);
+
+ /* Skip adding a message id; assume it's filled in by device */
+
+ /* And no need for a header ind value, always false */
+
+ *parameter_offset += 5;
+ return TRUE;
+}
+
+static void
+decide_best_encoding (const gchar *text,
+ GByteArray **out,
+ guint *num_fields,
+ guint *num_bits_per_field,
+ Encoding *encoding)
+{
+ guint latin_unsupported = 0;
+ guint ascii_unsupported = 0;
+ guint i;
+ guint len;
+
+ len = strlen (text);
+
+ /* Check if we can do ASCII-7 */
+ for (i = 0; i < len; i++) {
+ if (text[i] & 0x80) {
+ ascii_unsupported++;
+ break;
+ }
+ }
+
+ /* If ASCII-7 already supported, done we are */
+ if (!ascii_unsupported) {
+ *out = g_byte_array_sized_new (len);
+ g_byte_array_append (*out, (const guint8 *)text, len);
+ *num_fields = len;
+ *num_bits_per_field = 7;
+ *encoding = ENCODING_ASCII_7BIT;
+ return;
+ }
+
+ /* Check if we can do Latin encoding */
+ mm_charset_get_encoded_len (text,
+ MM_MODEM_CHARSET_8859_1,
+ &latin_unsupported);
+ if (!latin_unsupported) {
+ *out = g_byte_array_sized_new (len);
+ mm_modem_charset_byte_array_append (*out,
+ text,
+ FALSE,
+ MM_MODEM_CHARSET_8859_1);
+ *num_fields = (*out)->len;
+ *num_bits_per_field = 8;
+ *encoding = ENCODING_LATIN;
+ return;
+ }
+
+ /* If no Latin and no ASCII, default to UTF-16 */
+ *out = g_byte_array_sized_new (len * 2);
+ mm_modem_charset_byte_array_append (*out,
+ text,
+ FALSE,
+ MM_MODEM_CHARSET_UCS2);
+ *num_fields = (*out)->len / 2;
+ *num_bits_per_field = 16;
+ *encoding = ENCODING_UNICODE;
+}
+
+static gboolean
+write_bearer_data_user_data (MMSmsPart *part,
+ guint8 *pdu,
+ guint *parameter_offset,
+ GError **error)
+{
+ const gchar *text;
+ const GByteArray *data;
+ guint bit_offset = 0;
+ guint byte_offset = 0;
+ guint num_fields;
+ guint num_bits_per_field;
+ guint i;
+ Encoding encoding;
+ GByteArray *converted = NULL;
+ const GByteArray *aux;
+ guint num_bits_per_iter;
+
+ mm_dbg (" writing user data...");
+
+#define OFFSETS_UPDATE(n_bits) do { \
+ bit_offset += n_bits; \
+ if (bit_offset >= 8) { \
+ bit_offset-=8; \
+ byte_offset++; \
+ } \
+ } while (0)
+
+ text = mm_sms_part_get_text (part);
+ data = mm_sms_part_get_data (part);
+ g_assert (text || data);
+ g_assert (!(!text && !data));
+
+ pdu[0] = SUBPARAMETER_ID_USER_DATA;
+ /* Write parameter length at the end */
+ byte_offset = 2;
+ bit_offset = 0;
+
+ /* Text or Data */
+ if (text) {
+ decide_best_encoding (text,
+ &converted,
+ &num_fields,
+ &num_bits_per_field,
+ &encoding);
+ aux = (const GByteArray *)converted;
+ } else {
+ aux = data;
+ num_fields = data->len;
+ num_bits_per_field = 8;
+ encoding = ENCODING_OCTET;
+ }
+
+ /* Message encoding*/
+ mm_dbg (" message encoding: %s", encoding_to_string (encoding));
+ write_bits (&pdu[byte_offset], bit_offset, 5, encoding);
+ OFFSETS_UPDATE (5);
+
+ /* Number of fields */
+ if (num_fields > 256) {
+ if (converted)
+ g_byte_array_unref (converted);
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_UNSUPPORTED,
+ "Data too long (max 256 fields, %u given)",
+ num_fields);
+ return FALSE;
+ }
+ mm_dbg (" num fields: %u", num_fields);
+ write_bits (&pdu[byte_offset], bit_offset, 8, num_fields);
+ OFFSETS_UPDATE (8);
+
+ /* For ASCII-7, write 7 bits in each iteration; for the remaining ones
+ * go byte per byte */
+ if (text)
+ mm_dbg (" text: '%s'", text);
+ else
+ mm_dbg (" data: (%u bytes)", num_fields);
+ num_bits_per_iter = num_bits_per_field < 8 ? num_bits_per_field : 8;
+ for (i = 0; i < aux->len; i++) {
+ write_bits (&pdu[byte_offset], bit_offset, num_bits_per_iter, aux->data[i]);
+ OFFSETS_UPDATE (num_bits_per_iter);
+ }
+
+ if (converted)
+ g_byte_array_unref (converted);
+
+#undef OFFSETS_UPDATE
+
+ /* Write subparameter length (remove header length to offset) */
+ byte_offset += !!bit_offset - 2;
+ if (byte_offset > 256) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_UNSUPPORTED,
+ "Data or Text too long (max 256 bytes, %u given)",
+ byte_offset);
+ return FALSE;
+ }
+ pdu[1] = byte_offset;
+
+ *parameter_offset += (2 + pdu[1]);
+ return TRUE;
+}
+
+static gboolean
+write_bearer_data (MMSmsPart *part,
+ guint8 *pdu,
+ guint *absolute_offset,
+ GError **error)
+{
+ GError *inner_error = NULL;
+ guint offset = 0;
+
+ mm_dbg (" writing bearer data...");
+
+ pdu[0] = PARAMETER_ID_BEARER_DATA;
+ /* Write parameter length at the end */
+
+ offset = 2;
+ if (!write_bearer_data_message_identifier (part, &pdu[offset], &offset, &inner_error))
+ mm_dbg ("Error writing message identifier: %s", inner_error->message);
+ else if (!write_bearer_data_user_data (part, &pdu[offset], &offset, &inner_error))
+ mm_dbg ("Error writing user data: %s", inner_error->message);
+
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ g_prefix_error (error, "Error writing bearer data: ");
+ return FALSE;
+ }
+
+ /* Write parameter length (remove header length to offset) */
+ offset -= 2;
+ if (offset > 256) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_UNSUPPORTED,
+ "Bearer data too long (max 256 bytes, %u given)",
+ offset);
+ return FALSE;
+ }
+ pdu[1] = offset;
+
+ *absolute_offset += (2 + pdu[1]);
+ return TRUE;
+}
+
+guint8 *
+mm_sms_part_cdma_get_submit_pdu (MMSmsPart *part,
+ guint *out_pdulen,
+ GError **error)
+{
+ GError *inner_error = NULL;
+ guint offset = 0;
+ guint8 *pdu;
+
+ g_return_val_if_fail (mm_sms_part_get_number (part) != NULL, NULL);
+ g_return_val_if_fail (mm_sms_part_get_text (part) != NULL || mm_sms_part_get_data (part) != NULL, NULL);
+
+ if (mm_sms_part_get_pdu_type (part) != MM_SMS_PDU_TYPE_CDMA_SUBMIT) {
+ g_set_error (error,
+ MM_MESSAGE_ERROR,
+ MM_MESSAGE_ERROR_INVALID_PDU_PARAMETER,
+ "Invalid PDU type to generate a 'submit' PDU: '%s'",
+ mm_sms_pdu_type_get_string (mm_sms_part_get_pdu_type (part)));
+ return NULL;
+ }
+
+ mm_dbg ("Creating PDU for part...");
+
+ /* Current max size estimations:
+ * Message type: 1 byte
+ * Teleservice ID: 5 bytes
+ * Destination address: 2 + 256 bytes
+ * Bearer data: 2 + 256 bytes
+ */
+ pdu = g_malloc0 (1024);
+
+ /* First byte: SMS message type */
+ pdu[offset++] = MESSAGE_TYPE_POINT_TO_POINT;
+
+ if (!write_teleservice_id (part, &pdu[offset], &offset, &inner_error))
+ mm_dbg ("Error writing Teleservice ID: %s", inner_error->message);
+ else if (!write_destination_address (part, &pdu[offset], &offset, &inner_error))
+ mm_dbg ("Error writing destination address: %s", inner_error->message);
+ else if (!write_bearer_data (part, &pdu[offset], &offset, &inner_error))
+ mm_dbg ("Error writing bearer data: %s", inner_error->message);
+
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ g_prefix_error (error, "Cannot create CDMA SMS part: ");
+ g_free (pdu);
+ return NULL;
+ }
+
+ *out_pdulen = offset;
+ return pdu;
+}
diff --git a/src/mm-sms-part-cdma.h b/src/mm-sms-part-cdma.h
new file mode 100644
index 0000000..14c2c1d
--- /dev/null
+++ b/src/mm-sms-part-cdma.h
@@ -0,0 +1,37 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details:
+ *
+ * Copyright (C) 2013 Google, Inc.
+ */
+
+#ifndef MM_SMS_PART_CDMA_H
+#define MM_SMS_PART_CDMA_H
+
+#include <glib.h>
+#include <ModemManager-enums.h>
+
+#include "mm-sms-part.h"
+
+MMSmsPart *mm_sms_part_cdma_new_from_pdu (guint index,
+ const gchar *hexpdu,
+ GError **error);
+
+MMSmsPart *mm_sms_part_cdma_new_from_binary_pdu (guint index,
+ const guint8 *pdu,
+ gsize pdu_len,
+ GError **error);
+
+guint8 *mm_sms_part_cdma_get_submit_pdu (MMSmsPart *part,
+ guint *out_pdulen,
+ GError **error);
+
+#endif /* MM_SMS_PART_CDMA_H */
diff --git a/src/mm-sms-part.c b/src/mm-sms-part.c
index 77fa3b8..9aafcc3 100644
--- a/src/mm-sms-part.c
+++ b/src/mm-sms-part.c
@@ -27,294 +27,6 @@
#include "mm-charsets.h"
#include "mm-log.h"
-#define PDU_SIZE 200
-
-#define SMS_TP_MTI_MASK 0x03
-#define SMS_TP_MTI_SMS_DELIVER 0x00
-#define SMS_TP_MTI_SMS_SUBMIT 0x01
-#define SMS_TP_MTI_SMS_STATUS_REPORT 0x02
-
-#define SMS_NUMBER_TYPE_MASK 0x70
-#define SMS_NUMBER_TYPE_UNKNOWN 0x00
-#define SMS_NUMBER_TYPE_INTL 0x10
-#define SMS_NUMBER_TYPE_ALPHA 0x50
-
-#define SMS_NUMBER_PLAN_MASK 0x0f
-#define SMS_NUMBER_PLAN_TELEPHONE 0x01
-
-#define SMS_TP_MMS 0x04
-#define SMS_TP_SRI 0x20
-#define SMS_TP_UDHI 0x40
-#define SMS_TP_RP 0x80
-
-#define SMS_DCS_CODING_MASK 0xec
-#define SMS_DCS_CODING_DEFAULT 0x00
-#define SMS_DCS_CODING_8BIT 0x04
-#define SMS_DCS_CODING_UCS2 0x08
-
-#define SMS_DCS_CLASS_VALID 0x10
-#define SMS_DCS_CLASS_MASK 0x03
-
-#define SMS_TIMESTAMP_LEN 7
-#define SMS_MIN_PDU_LEN (7 + SMS_TIMESTAMP_LEN)
-
-static char sms_bcd_chars[] = "0123456789*#abc\0\0";
-
-static void
-sms_semi_octets_to_bcd_string (char *dest, const guint8 *octets, int num_octets)
-{
- int i;
-
- for (i = 0 ; i < num_octets; i++) {
- *dest++ = sms_bcd_chars[octets[i] & 0xf];
- *dest++ = sms_bcd_chars[(octets[i] >> 4) & 0xf];
- }
- *dest++ = '\0';
-}
-
-static gboolean
-char_to_bcd (char in, guint8 *out)
-{
- guint32 z;
-
- if (isdigit (in)) {
- *out = in - 0x30;
- return TRUE;
- }
-
- for (z = 10; z < 16; z++) {
- if (in == sms_bcd_chars[z]) {
- *out = z;
- return TRUE;
- }
- }
- return FALSE;
-}
-
-static gsize
-sms_string_to_bcd_semi_octets (guint8 *buf, gsize buflen, const char *string)
-{
- guint i;
- guint8 bcd;
- gsize addrlen, slen;
-
- addrlen = slen = strlen (string);
- if (addrlen % 2)
- addrlen++;
- g_return_val_if_fail (buflen >= addrlen, 0);
-
- for (i = 0; i < addrlen; i += 2) {
- if (!char_to_bcd (string[i], &bcd))
- return 0;
- buf[i / 2] = bcd & 0xF;
-
- if (i >= slen - 1) {
- /* PDU address gets padded with 0xF if string is odd length */
- bcd = 0xF;
- } else if (!char_to_bcd (string[i + 1], &bcd))
- return 0;
- buf[i / 2] |= bcd << 4;
- }
- return addrlen / 2;
-}
-
-/* len is in semi-octets */
-static char *
-sms_decode_address (const guint8 *address, int len)
-{
- guint8 addrtype, addrplan;
- char *utf8;
-
- addrtype = address[0] & SMS_NUMBER_TYPE_MASK;
- addrplan = address[0] & SMS_NUMBER_PLAN_MASK;
- address++;
-
- if (addrtype == SMS_NUMBER_TYPE_ALPHA) {
- guint8 *unpacked;
- guint32 unpacked_len;
- unpacked = gsm_unpack (address, (len * 4) / 7, 0, &unpacked_len);
- utf8 = (char *)mm_charset_gsm_unpacked_to_utf8 (unpacked,
- unpacked_len);
- g_free(unpacked);
- } else if (addrtype == SMS_NUMBER_TYPE_INTL &&
- addrplan == SMS_NUMBER_PLAN_TELEPHONE) {
- /* International telphone number, format as "+1234567890" */
- utf8 = g_malloc (len + 3); /* '+' + digits + possible trailing 0xf + NUL */
- utf8[0] = '+';
- sms_semi_octets_to_bcd_string (utf8 + 1, address, (len + 1) / 2);
- } else {
- /*
- * All non-alphanumeric types and plans are just digits, but
- * don't apply any special formatting if we don't know the
- * format.
- */
- utf8 = g_malloc (len + 2); /* digits + possible trailing 0xf + NUL */
- sms_semi_octets_to_bcd_string (utf8, address, (len + 1) / 2);
- }
-
- return utf8;
-}
-
-static char *
-sms_decode_timestamp (const guint8 *timestamp)
-{
- /* YYMMDDHHMMSS+ZZ */
- char *timestr;
- int quarters, hours;
-
- timestr = g_malloc0 (16);
- sms_semi_octets_to_bcd_string (timestr, timestamp, 6);
- quarters = ((timestamp[6] & 0x7) * 10) + ((timestamp[6] >> 4) & 0xf);
- hours = quarters / 4;
- if (timestamp[6] & 0x08)
- timestr[12] = '-';
- else
- timestr[12] = '+';
- timestr[13] = (hours / 10) + '0';
- timestr[14] = (hours % 10) + '0';
- /* TODO(njw): Change timestamp rep to something that includes quarter-hours */
- return timestr;
-}
-
-static MMSmsEncoding
-sms_encoding_type (int dcs)
-{
- MMSmsEncoding scheme = MM_SMS_ENCODING_UNKNOWN;
-
- switch ((dcs >> 4) & 0xf) {
- /* General data coding group */
- case 0: case 1:
- case 2: case 3:
- switch (dcs & 0x0c) {
- case 0x08:
- scheme = MM_SMS_ENCODING_UCS2;
- break;
- case 0x00:
- /* fallthrough */
- /* reserved - spec says to treat it as default alphabet */
- case 0x0c:
- scheme = MM_SMS_ENCODING_GSM7;
- break;
- case 0x04:
- scheme = MM_SMS_ENCODING_8BIT;
- break;
- }
- break;
-
- /* Message waiting group (default alphabet) */
- case 0xc:
- case 0xd:
- scheme = MM_SMS_ENCODING_GSM7;
- break;
-
- /* Message waiting group (UCS2 alphabet) */
- case 0xe:
- scheme = MM_SMS_ENCODING_UCS2;
- break;
-
- /* Data coding/message class group */
- case 0xf:
- switch (dcs & 0x04) {
- case 0x00:
- scheme = MM_SMS_ENCODING_GSM7;
- break;
- case 0x04:
- scheme = MM_SMS_ENCODING_8BIT;
- break;
- }
- break;
-
- /* Reserved coding group values - spec says to treat it as default alphabet */
- default:
- scheme = MM_SMS_ENCODING_GSM7;
- break;
- }
-
- return scheme;
-}
-
-static char *
-sms_decode_text (const guint8 *text, int len, MMSmsEncoding encoding, int bit_offset)
-{
- char *utf8;
- guint8 *unpacked;
- guint32 unpacked_len;
-
- if (encoding == MM_SMS_ENCODING_GSM7) {
- mm_dbg ("Converting SMS part text from GSM7 to UTF8...");
- unpacked = gsm_unpack ((const guint8 *) text, len, bit_offset, &unpacked_len);
- utf8 = (char *) mm_charset_gsm_unpacked_to_utf8 (unpacked, unpacked_len);
- mm_dbg (" Got UTF-8 text: '%s'", utf8);
- g_free (unpacked);
- } else if (encoding == MM_SMS_ENCODING_UCS2) {
- mm_dbg ("Converting SMS part text from UCS-2BE to UTF8...");
- utf8 = g_convert ((char *) text, len, "UTF8", "UCS-2BE", NULL, NULL, NULL);
- mm_dbg (" Got UTF-8 text: '%s'", utf8);
- } else {
- g_warn_if_reached ();
- utf8 = g_strdup ("");
- }
-
- return utf8;
-}
-
-static guint
-relative_to_validity (guint8 relative)
-{
- if (relative <= 143)
- return (relative + 1) * 5;
-
- if (relative <= 167)
- return 720 + (relative - 143) * 30;
-
- return (relative - 166) * 1440;
-}
-
-static guint8
-validity_to_relative (guint validity)
-{
- if (validity == 0)
- return 167; /* 24 hours */
-
- if (validity <= 720) {
- /* 5 minute units up to 12 hours */
- if (validity % 5)
- validity += 5;
- return (validity / 5) - 1;
- }
-
- if (validity > 720 && validity <= 1440) {
- /* 12 hours + 30 minute units up to 1 day */
- if (validity % 30)
- validity += 30; /* round up to next 30 minutes */
- validity = MIN (validity, 1440);
- return 143 + ((validity - 720) / 30);
- }
-
- if (validity > 1440 && validity <= 43200) {
- /* 2 days up to 1 month */
- if (validity % 1440)
- validity += 1440; /* round up to next day */
- validity = MIN (validity, 43200);
- return 167 + ((validity - 1440) / 1440);
- }
-
- /* 43200 = 30 days in minutes
- * 10080 = 7 days in minutes
- * 635040 = 63 weeks in minutes
- * 40320 = 4 weeks in minutes
- */
- if (validity > 43200 && validity <= 635040) {
- /* 5 weeks up to 63 weeks */
- if (validity % 10080)
- validity += 10080; /* round up to next week */
- validity = MIN (validity, 635040);
- return 196 + ((validity - 40320) / 10080);
- }
-
- return 255; /* 63 weeks */
-}
-
struct _MMSmsPart {
guint index;
MMSmsPduType pdu_type;
@@ -336,6 +48,10 @@ struct _MMSmsPart {
guint concat_reference;
guint concat_max;
guint concat_sequence;
+
+ /* CDMA specific */
+ MMSmsCdmaTeleserviceId cdma_teleservice_id;
+ MMSmsCdmaServiceCategory cdma_service_category;
};
void
@@ -450,6 +166,11 @@ mm_sms_part_should_concat (MMSmsPart *self)
return self->should_concat;
}
+PART_GET_FUNC (MMSmsCdmaTeleserviceId, cdma_teleservice_id)
+PART_SET_FUNC (MMSmsCdmaTeleserviceId, cdma_teleservice_id)
+PART_GET_FUNC (MMSmsCdmaServiceCategory, cdma_service_category)
+PART_SET_FUNC (MMSmsCdmaServiceCategory, cdma_service_category)
+
MMSmsPart *
mm_sms_part_new (guint index,
MMSmsPduType pdu_type)
@@ -461,843 +182,9 @@ mm_sms_part_new (guint index,
sms_part->pdu_type = pdu_type;
sms_part->encoding = MM_SMS_ENCODING_UNKNOWN;
sms_part->delivery_state = MM_SMS_DELIVERY_STATE_UNKNOWN;
+ sms_part->cdma_teleservice_id = MM_SMS_CDMA_TELESERVICE_ID_UNKNOWN;
+ sms_part->cdma_service_category = MM_SMS_CDMA_SERVICE_CATEGORY_UNKNOWN;
sms_part->class = -1;
return sms_part;
}
-
-MMSmsPart *
-mm_sms_part_new_from_pdu (guint index,
- const gchar *hexpdu,
- GError **error)
-{
- gsize pdu_len;
- guint8 *pdu;
- MMSmsPart *part;
-
- /* Convert PDU from hex to binary */
- pdu = (guint8 *) mm_utils_hexstr2bin (hexpdu, &pdu_len);
- if (!pdu) {
- g_set_error_literal (error,
- MM_CORE_ERROR,
- MM_CORE_ERROR_FAILED,
- "Couldn't convert PDU from hex to binary");
- return NULL;
- }
-
- part = mm_sms_part_new_from_binary_pdu (index, pdu, pdu_len, error);
- g_free (pdu);
-
- return part;
-}
-
-MMSmsPart *
-mm_sms_part_new_from_binary_pdu (guint index,
- const guint8 *pdu,
- gsize pdu_len,
- GError **error)
-{
- MMSmsPart *sms_part;
- guint8 pdu_type;
- guint offset;
- guint smsc_addr_size_bytes;
- guint tp_addr_size_digits;
- guint tp_addr_size_bytes;
- guint8 validity_format = 0;
- gboolean has_udh = FALSE;
- /* The following offsets are OPTIONAL, as STATUS REPORTs may not have
- * them; we use '0' to indicate their absence */
- guint tp_pid_offset = 0;
- guint tp_dcs_offset = 0;
- guint tp_user_data_len_offset = 0;
- MMSmsEncoding user_data_encoding = MM_SMS_ENCODING_UNKNOWN;
-
- /* Create the new MMSmsPart */
- sms_part = mm_sms_part_new (index, MM_SMS_PDU_TYPE_UNKNOWN);
-
- if (index != SMS_PART_INVALID_INDEX)
- mm_dbg ("Parsing PDU (%u)...", index);
- else
- mm_dbg ("Parsing PDU...");
-
-#define PDU_SIZE_CHECK(required_size, check_descr_str) \
- if (pdu_len < required_size) { \
- g_set_error (error, \
- MM_CORE_ERROR, \
- MM_CORE_ERROR_FAILED, \
- "PDU too short, %s: %" G_GSIZE_FORMAT " < %u", \
- check_descr_str, \
- pdu_len, \
- required_size); \
- mm_sms_part_free (sms_part); \
- return NULL; \
- }
-
- offset = 0;
-
- /* ---------------------------------------------------------------------- */
- /* SMSC, in address format, precedes the TPDU
- * First byte represents the number of BYTES for the address value */
- PDU_SIZE_CHECK (1, "cannot read SMSC address length");
- smsc_addr_size_bytes = pdu[offset++];
- if (smsc_addr_size_bytes > 0) {
- PDU_SIZE_CHECK (offset + smsc_addr_size_bytes, "cannot read SMSC address");
- /* SMSC may not be given in DELIVER PDUs */
- mm_sms_part_take_smsc (sms_part,
- sms_decode_address (&pdu[1], 2 * (smsc_addr_size_bytes - 1)));
- mm_dbg (" SMSC address parsed: '%s'", mm_sms_part_get_smsc (sms_part));
- offset += smsc_addr_size_bytes;
- } else
- mm_dbg (" No SMSC address given");
-
-
- /* ---------------------------------------------------------------------- */
- /* TP-MTI (1 byte) */
- PDU_SIZE_CHECK (offset + 1, "cannot read TP-MTI");
-
- pdu_type = (pdu[offset] & SMS_TP_MTI_MASK);
- switch (pdu_type) {
- case SMS_TP_MTI_SMS_DELIVER:
- mm_dbg (" Deliver type PDU detected");
- mm_sms_part_set_pdu_type (sms_part, MM_SMS_PDU_TYPE_DELIVER);
- break;
- case SMS_TP_MTI_SMS_SUBMIT:
- mm_dbg (" Submit type PDU detected");
- mm_sms_part_set_pdu_type (sms_part, MM_SMS_PDU_TYPE_SUBMIT);
- break;
- case SMS_TP_MTI_SMS_STATUS_REPORT:
- mm_dbg (" Status report type PDU detected");
- mm_sms_part_set_pdu_type (sms_part, MM_SMS_PDU_TYPE_STATUS_REPORT);
- break;
- default:
- mm_sms_part_free (sms_part);
- g_set_error (error,
- MM_CORE_ERROR,
- MM_CORE_ERROR_FAILED,
- "Unhandled message type: 0x%02x",
- pdu_type);
- return NULL;
- }
-
- /* Delivery report was requested? */
- if (pdu[offset] & 0x20)
- mm_sms_part_set_delivery_report_request (sms_part, TRUE);
-
- /* PDU with validity? (only in SUBMIT PDUs) */
- if (pdu_type == SMS_TP_MTI_SMS_SUBMIT)
- validity_format = pdu[offset] & 0x18;
-
- /* PDU with user data header? */
- if (pdu[offset] & 0x40)
- has_udh = TRUE;
-
- offset++;
-
- /* ---------------------------------------------------------------------- */
- /* TP-MR (1 byte, in STATUS_REPORT and SUBMIT PDUs */
- if (pdu_type == SMS_TP_MTI_SMS_STATUS_REPORT ||
- pdu_type == SMS_TP_MTI_SMS_SUBMIT) {
- PDU_SIZE_CHECK (offset + 1, "cannot read message reference");
-
- mm_dbg (" message reference: %u", (guint)pdu[offset]);
- mm_sms_part_set_message_reference (sms_part, pdu[offset]);
- offset++;
- }
-
-
- /* ---------------------------------------------------------------------- */
- /* TP-DA or TP-OA or TP-RA
- * First byte represents the number of DIGITS in the number.
- * Round the sender address length up to an even number of
- * semi-octets, and thus an integral number of octets.
- */
- PDU_SIZE_CHECK (offset + 1, "cannot read number of digits in number");
- tp_addr_size_digits = pdu[offset++];
- tp_addr_size_bytes = (tp_addr_size_digits + 1) >> 1;
-
- PDU_SIZE_CHECK (offset + tp_addr_size_bytes, "cannot read number");
- mm_sms_part_take_number (sms_part,
- sms_decode_address (&pdu[offset],
- tp_addr_size_digits));
- mm_dbg (" Number parsed: '%s'", mm_sms_part_get_number (sms_part));
- offset += (1 + tp_addr_size_bytes); /* +1 due to the Type of Address byte */
-
- /* ---------------------------------------------------------------------- */
- /* Get timestamps and indexes for TP-PID, TP-DCS and TP-UDL/TP-UD */
-
- if (pdu_type == SMS_TP_MTI_SMS_DELIVER) {
- PDU_SIZE_CHECK (offset + 9,
- "cannot read PID/DCS/Timestamp"); /* 1+1+7=9 */
-
- /* ------ TP-PID (1 byte) ------ */
- tp_pid_offset = offset++;
-
- /* ------ TP-DCS (1 byte) ------ */
- tp_dcs_offset = offset++;
-
- /* ------ Timestamp (7 bytes) ------ */
- mm_sms_part_take_timestamp (sms_part,
- sms_decode_timestamp (&pdu[offset]));
- offset += 7;
-
- tp_user_data_len_offset = offset;
- } else if (pdu_type == SMS_TP_MTI_SMS_SUBMIT) {
- PDU_SIZE_CHECK (offset + 2 + !!validity_format,
- "cannot read PID/DCS/Validity"); /* 1+1=2 */
-
- /* ------ TP-PID (1 byte) ------ */
- tp_pid_offset = offset++;
-
- /* ------ TP-DCS (1 byte) ------ */
- tp_dcs_offset = offset++;
-
- /* ----------- TP-Validity-Period (1 byte) ----------- */
- if (validity_format) {
- switch (validity_format) {
- case 0x10:
- mm_dbg (" validity available, format relative");
- mm_sms_part_set_validity_relative (sms_part,
- relative_to_validity (pdu[offset]));
- offset++;
- break;
- case 0x08:
- /* TODO: support enhanced format; GSM 03.40 */
- mm_dbg (" validity available, format enhanced (not implemented)");
- /* 7 bytes for enhanced validity */
- offset += 7;
- break;
- case 0x18:
- /* TODO: support absolute format; GSM 03.40 */
- mm_dbg (" validity available, format absolute (not implemented)");
- /* 7 bytes for absolute validity */
- offset += 7;
- break;
- default:
- /* Cannot happen as we AND with the 0x18 mask */
- g_assert_not_reached();
- }
- }
-
- tp_user_data_len_offset = offset;
- }
- else if (pdu_type == SMS_TP_MTI_SMS_STATUS_REPORT) {
- /* We have 2 timestamps in status report PDUs:
- * first, the timestamp for when the PDU was received in the SMSC
- * second, the timestamp for when the PDU was forwarded by the SMSC
- */
- PDU_SIZE_CHECK (offset + 15, "cannot read Timestamps/TP-STATUS"); /* 7+7+1=15 */
-
- /* ------ Timestamp (7 bytes) ------ */
- mm_sms_part_take_timestamp (sms_part,
- sms_decode_timestamp (&pdu[offset]));
- offset += 7;
-
- /* ------ Discharge Timestamp (7 bytes) ------ */
- mm_sms_part_take_discharge_timestamp (sms_part,
- sms_decode_timestamp (&pdu[offset]));
- offset += 7;
-
- /* ----- TP-STATUS (1 byte) ------ */
- mm_dbg (" delivery state: %u", (guint)pdu[offset]);
- mm_sms_part_set_delivery_state (sms_part, pdu[offset]);
- offset++;
-
- /* ------ TP-PI (1 byte) OPTIONAL ------ */
- if (offset < pdu_len) {
- guint next_optional_field_offset = offset + 1;
-
- /* TP-PID? */
- if (pdu[offset] & 0x01)
- tp_pid_offset = next_optional_field_offset++;
-
- /* TP-DCS? */
- if (pdu[offset] & 0x02)
- tp_dcs_offset = next_optional_field_offset++;
-
- /* TP-UserData? */
- if (pdu[offset] & 0x04)
- tp_user_data_len_offset = next_optional_field_offset;
- }
- } else
- g_assert_not_reached ();
-
- if (tp_pid_offset > 0) {
- PDU_SIZE_CHECK (tp_pid_offset + 1, "cannot read TP-PID");
- mm_dbg (" PID: %u", (guint)pdu[tp_pid_offset]);
- }
-
- /* Grab user data encoding and message class */
- if (tp_dcs_offset > 0) {
- PDU_SIZE_CHECK (tp_dcs_offset + 1, "cannot read TP-DCS");
-
- /* Encoding given in the 'alphabet' bits */
- user_data_encoding = sms_encoding_type(pdu[tp_dcs_offset]);
- switch (user_data_encoding) {
- case MM_SMS_ENCODING_GSM7:
- mm_dbg (" user data encoding is GSM7");
- break;
- case MM_SMS_ENCODING_UCS2:
- mm_dbg (" user data encoding is UCS2");
- break;
- case MM_SMS_ENCODING_8BIT:
- mm_dbg (" user data encoding is 8bit");
- break;
- default:
- mm_dbg (" user data encoding is unknown");
- break;
- }
- mm_sms_part_set_encoding (sms_part, user_data_encoding);
-
- /* Class */
- if (pdu[tp_dcs_offset] & SMS_DCS_CLASS_VALID)
- mm_sms_part_set_class (sms_part,
- pdu[tp_dcs_offset] & SMS_DCS_CLASS_MASK);
- }
-
- if (tp_user_data_len_offset > 0) {
- guint tp_user_data_size_elements;
- guint tp_user_data_size_bytes;
- guint tp_user_data_offset;
- guint bit_offset;
-
- PDU_SIZE_CHECK (tp_user_data_len_offset + 1, "cannot read TP-UDL");
- tp_user_data_size_elements = pdu[tp_user_data_len_offset];
- mm_dbg (" user data length: %u elements", tp_user_data_size_elements);
-
- if (user_data_encoding == MM_SMS_ENCODING_GSM7)
- tp_user_data_size_bytes = (7 * (tp_user_data_size_elements + 1 )) / 8;
- else
- tp_user_data_size_bytes = tp_user_data_size_elements;
- mm_dbg (" user data length: %u bytes", tp_user_data_size_bytes);
-
- tp_user_data_offset = tp_user_data_len_offset + 1;
- PDU_SIZE_CHECK (tp_user_data_offset + tp_user_data_size_bytes, "cannot read TP-UD");
-
- bit_offset = 0;
- if (has_udh) {
- guint udhl, end;
-
- udhl = pdu[tp_user_data_offset] + 1;
- end = tp_user_data_offset + udhl;
-
- PDU_SIZE_CHECK (tp_user_data_offset + udhl, "cannot read UDH");
-
- for (offset = tp_user_data_offset + 1; (offset + 1) < end;) {
- guint8 ie_id, ie_len;
-
- ie_id = pdu[offset++];
- ie_len = pdu[offset++];
-
- switch (ie_id) {
- case 0x00:
- if (offset + 2 >= end)
- break;
- /*
- * Ignore the IE if one of the following is true:
- * - it claims to be part 0 of M
- * - it claims to be part N of M, N > M
- */
- if (pdu[offset + 2] == 0 ||
- pdu[offset + 2] > pdu[offset + 1])
- break;
-
- mm_sms_part_set_concat_reference (sms_part, pdu[offset]);
- mm_sms_part_set_concat_max (sms_part, pdu[offset + 1]);
- mm_sms_part_set_concat_sequence (sms_part, pdu[offset + 2]);
- break;
- case 0x08:
- if (offset + 3 >= end)
- break;
- /* Concatenated short message, 16-bit reference */
- if (pdu[offset + 3] == 0 ||
- pdu[offset + 3] > pdu[offset + 2])
- break;
-
- mm_sms_part_set_concat_reference (sms_part, (pdu[offset] << 8) | pdu[offset + 1]);
- mm_sms_part_set_concat_max (sms_part,pdu[offset + 2]);
- mm_sms_part_set_concat_sequence (sms_part, pdu[offset + 3]);
- break;
- }
-
- offset += ie_len;
- }
-
- /*
- * Move past the user data headers to prevent it from being
- * decoded into garbage text.
- */
- tp_user_data_offset += udhl;
- tp_user_data_size_bytes -= udhl;
- if (user_data_encoding == MM_SMS_ENCODING_GSM7) {
- /*
- * Find the number of bits we need to add to the length of the
- * user data to get a multiple of 7 (the padding).
- */
- bit_offset = (7 - udhl % 7) % 7;
- tp_user_data_size_elements -= (udhl * 8 + bit_offset) / 7;
- } else
- tp_user_data_size_elements -= udhl;
- }
-
- switch (user_data_encoding) {
- case MM_SMS_ENCODING_GSM7:
- case MM_SMS_ENCODING_UCS2:
- /* Otherwise if it's 7-bit or UCS2 we can decode it */
- mm_dbg ("Decoding SMS text with '%u' elements", tp_user_data_size_elements);
- mm_sms_part_take_text (sms_part,
- sms_decode_text (&pdu[tp_user_data_offset],
- tp_user_data_size_elements,
- user_data_encoding,
- bit_offset));
- g_warn_if_fail (sms_part->text != NULL);
- break;
-
- default:
- {
- GByteArray *raw;
-
- mm_dbg ("Skipping SMS text: Unknown encoding (0x%02X)", user_data_encoding);
-
- PDU_SIZE_CHECK (tp_user_data_offset + tp_user_data_size_bytes, "cannot read user data");
-
- /* 8-bit encoding is usually binary data, and we have no idea what
- * actual encoding the data is in so we can't convert it.
- */
- raw = g_byte_array_sized_new (tp_user_data_size_bytes);
- g_byte_array_append (raw, &pdu[tp_user_data_offset], tp_user_data_size_bytes);
- mm_sms_part_take_data (sms_part, raw);
- break;
- }
- }
- }
-
- return sms_part;
-}
-
-/**
- * mm_sms_part_encode_address:
- *
- * @address: the phone number to encode
- * @buf: the buffer to encode @address in
- * @buflen: the size of @buf
- * @is_smsc: if %TRUE encode size as number of octets of address infromation,
- * otherwise if %FALSE encode size as number of digits of @address
- *
- * Returns: the size in bytes of the data added to @buf
- **/
-guint
-mm_sms_part_encode_address (const gchar *address,
- guint8 *buf,
- gsize buflen,
- gboolean is_smsc)
-{
- gsize len;
-
- g_return_val_if_fail (address != NULL, 0);
- g_return_val_if_fail (buf != NULL, 0);
- g_return_val_if_fail (buflen >= 2, 0);
-
- /* Handle number type & plan */
- buf[1] = 0x80; /* Bit 7 always 1 */
- if (address[0] == '+') {
- buf[1] |= SMS_NUMBER_TYPE_INTL;
- address++;
- }
- buf[1] |= SMS_NUMBER_PLAN_TELEPHONE;
-
- len = sms_string_to_bcd_semi_octets (&buf[2], buflen, address);
-
- if (is_smsc)
- buf[0] = len + 1; /* addr length + size byte */
- else
- buf[0] = strlen (address); /* number of digits in address */
-
- return len ? len + 2 : 0; /* addr length + size byte + number type/plan */
-}
-
-/**
- * mm_sms_part_get_submit_pdu:
- *
- * @part: the SMS message part
- * @out_pdulen: on success, the size of the returned PDU in bytes
- * @out_msgstart: on success, the byte index in the returned PDU where the
- * message starts (ie, skipping the SMSC length byte and address, if present)
- * @error: on error, filled with the error that occurred
- *
- * Constructs a single-part SMS message with the given details, preferring to
- * use the UCS2 character set when the message will fit, otherwise falling back
- * to the GSM character set.
- *
- * Returns: the constructed PDU data on success, or %NULL on error
- **/
-guint8 *
-mm_sms_part_get_submit_pdu (MMSmsPart *part,
- guint *out_pdulen,
- guint *out_msgstart,
- GError **error)
-{
- guint8 *pdu;
- guint len, offset = 0;
- guint shift = 0;
- guint8 *udl_ptr;
-
- g_return_val_if_fail (part->number != NULL, NULL);
- g_return_val_if_fail (part->text != NULL || part->data != NULL, NULL);
-
- mm_dbg ("Creating PDU for part...");
-
- /* Build up the PDU */
- pdu = g_malloc0 (PDU_SIZE);
-
- if (part->smsc) {
- mm_dbg (" adding SMSC to PDU...");
- len = mm_sms_part_encode_address (part->smsc, pdu, PDU_SIZE, TRUE);
- if (len == 0) {
- g_set_error (error,
- MM_MESSAGE_ERROR,
- MM_MESSAGE_ERROR_INVALID_PDU_PARAMETER,
- "Invalid SMSC address '%s'", part->smsc);
- goto error;
- }
- offset += len;
- } else {
- /* No SMSC, use default */
- pdu[offset++] = 0x00;
- }
-
- if (out_msgstart)
- *out_msgstart = offset;
-
- /* ----------- First BYTE ----------- */
- pdu[offset] = 0;
-
- /* TP-VP present; format RELATIVE */
- if (part->validity_relative > 0) {
- mm_dbg (" adding validity to PDU...");
- pdu[offset] |= 0x10;
- }
-
- /* Concatenation sequence only found in multipart SMS */
- if (part->concat_sequence) {
- mm_dbg (" adding UDHI to PDU...");
- pdu[offset] |= 0x40; /* UDHI */
- }
-
- /* Delivery report requested in singlepart messages or in the last PDU of
- * multipart messages */
- if (part->delivery_report_request &&
- (!part->concat_sequence ||
- part->concat_max == part->concat_sequence)) {
- mm_dbg (" requesting delivery report...");
- pdu[offset] |= 0x20;
- }
-
- /* TP-MTI = SMS-SUBMIT */
- pdu[offset++] |= 0x01;
-
-
- /* ----------- TP-MR (1 byte) ----------- */
-
- pdu[offset++] = 0x00; /* TP-Message-Reference: filled by device */
-
- /* ----------- Destination address ----------- */
-
- len = mm_sms_part_encode_address (part->number, &pdu[offset], PDU_SIZE - offset, FALSE);
- if (len == 0) {
- g_set_error (error,
- MM_MESSAGE_ERROR,
- MM_MESSAGE_ERROR_INVALID_PDU_PARAMETER,
- "Invalid number '%s'", part->number);
- goto error;
- }
- offset += len;
-
- /* ----------- TP-PID (1 byte) ----------- */
-
- pdu[offset++] = 0x00;
-
- /* ----------- TP-DCS (1 byte) ----------- */
- pdu[offset] = 0x00;
-
- if (part->class >= 0 && part->class <= 3) {
- mm_dbg (" using class %d...", part->class);
- pdu[offset] |= SMS_DCS_CLASS_VALID;
- pdu[offset] |= part->class;
- }
-
- if (part->encoding == MM_SMS_ENCODING_UCS2) {
- mm_dbg (" using UCS2 encoding...");
- pdu[offset] |= SMS_DCS_CODING_UCS2;
- } else if (part->encoding == MM_SMS_ENCODING_GSM7) {
- mm_dbg (" using GSM7 encoding...");
- pdu[offset] |= SMS_DCS_CODING_DEFAULT; /* GSM */
- } else {
- mm_dbg (" using 8bit encoding...");
- pdu[offset] |= SMS_DCS_CODING_8BIT;
- }
- offset++;
-
- /* ----------- TP-Validity-Period (1 byte): 4 days ----------- */
- /* Only if TP-VPF was set in first byte */
-
- if (part->validity_relative > 0)
- pdu[offset++] = validity_to_relative (part->validity_relative);
-
- /* ----------- TP-User-Data-Length ----------- */
- /* Set to zero initially, and keep a ptr for easy access later */
- udl_ptr = &pdu[offset];
- pdu[offset++] = 0;
-
- /* Build UDH */
- if (part->concat_sequence) {
- mm_dbg (" adding UDH header in PDU... (reference: %u, max: %u, sequence: %u)",
- part->concat_reference,
- part->concat_max,
- part->concat_sequence);
- pdu[offset++] = 0x05; /* udh len */
- pdu[offset++] = 0x00; /* mid */
- pdu[offset++] = 0x03; /* data len */
- pdu[offset++] = (guint8)part->concat_reference;
- pdu[offset++] = (guint8)part->concat_max;
- pdu[offset++] = (guint8)part->concat_sequence;
-
- /* if a UDH is present and the data encoding is the default 7-bit
- * alphabet, the user data must be 7-bit word aligned after the
- * UDH. This means up to 6 bits of zeros need to be inserted at the
- * start of the message.
- *
- * In our case the UDH is 6 bytes long, 48bits. The next multiple of
- * 7 is therefore 49, so we only need to include one bit of padding.
- */
- shift = 1;
- }
-
- if (part->encoding == MM_SMS_ENCODING_GSM7) {
- guint8 *unpacked, *packed;
- guint32 unlen = 0, packlen = 0;
-
- unpacked = mm_charset_utf8_to_unpacked_gsm (part->text, &unlen);
- if (!unpacked || unlen == 0) {
- g_free (unpacked);
- g_set_error_literal (error,
- MM_MESSAGE_ERROR,
- MM_MESSAGE_ERROR_INVALID_PDU_PARAMETER,
- "Failed to convert message text to GSM");
- goto error;
- }
-
- /* Set real data length, in septets
- * If we had UDH, add 7 septets
- */
- *udl_ptr = part->concat_sequence ? (7 + unlen) : unlen;
- mm_dbg (" user data length is '%u' septets (%s UDH)",
- *udl_ptr,
- part->concat_sequence ? "with" : "without");
-
- packed = gsm_pack (unpacked, unlen, shift, &packlen);
- g_free (unpacked);
- if (!packed || packlen == 0) {
- g_free (packed);
- g_set_error_literal (error,
- MM_MESSAGE_ERROR,
- MM_MESSAGE_ERROR_INVALID_PDU_PARAMETER,
- "Failed to pack message text to GSM");
- goto error;
- }
-
- memcpy (&pdu[offset], packed, packlen);
- g_free (packed);
- offset += packlen;
- } else if (part->encoding == MM_SMS_ENCODING_UCS2) {
- GByteArray *array;
-
- /* Try to guess a good value for the array */
- array = g_byte_array_sized_new (strlen (part->text) * 2);
- if (!mm_modem_charset_byte_array_append (array, part->text, FALSE, MM_MODEM_CHARSET_UCS2)) {
- g_byte_array_free (array, TRUE);
- g_set_error_literal (error,
- MM_MESSAGE_ERROR,
- MM_MESSAGE_ERROR_INVALID_PDU_PARAMETER,
- "Failed to convert message text to UCS2");
- goto error;
- }
-
- /* Set real data length, in octets
- * If we had UDH, add 6 octets
- */
- *udl_ptr = part->concat_sequence ? (6 + array->len) : array->len;
- mm_dbg (" user data length is '%u' octets (%s UDH)",
- *udl_ptr,
- part->concat_sequence ? "with" : "without");
-
- memcpy (&pdu[offset], array->data, array->len);
- offset += array->len;
- g_byte_array_free (array, TRUE);
- } else if (part->encoding == MM_SMS_ENCODING_8BIT) {
- /* Set real data length, in octets
- * If we had UDH, add 6 octets
- */
- *udl_ptr = part->concat_sequence ? (6 + part->data->len) : part->data->len;
- mm_dbg (" binary user data length is '%u' octets (%s UDH)",
- *udl_ptr,
- part->concat_sequence ? "with" : "without");
-
- memcpy (&pdu[offset], part->data->data, part->data->len);
- offset += part->data->len;
- } else
- g_assert_not_reached ();
-
- if (out_pdulen)
- *out_pdulen = offset;
- return pdu;
-
-error:
- g_free (pdu);
- return NULL;
-}
-
-gchar **
-mm_sms_part_util_split_text (const gchar *text,
- MMSmsEncoding *encoding)
-{
- guint gsm_unsupported = 0;
- gchar **out;
- guint n_chunks;
- guint i;
- guint j;
- gsize in_len;
-
- if (!text)
- return NULL;
-
- in_len = strlen (text);
-
- /* Some info about the rules for splitting.
- *
- * The User Data can be up to 140 bytes in the SMS part:
- * 0) If we only need one chunk, it can be of up to 140 bytes.
- * If we need more than one chunk, these have to be of 140 - 6 = 134
- * bytes each, as we need place for the UDH header.
- * 1) If we're using GSM7 encoding, this gives us up to 160 characters,
- * as we can pack 160 characters of 7bits each into 140 bytes.
- * 160 * 7 = 140 * 8 = 1120.
- * If we only have 134 bytes allowed, that would mean that we can pack
- * up to 153 input characters:
- * 134 * 8 = 1072; 1072/7=153.14
- * 2) If we're using UCS2 encoding, we can pack up to 70 characters in
- * 140 bytes (each with 2 bytes), or up to 67 characters in 134 bytes.
- *
- * This method does the split of the input string into N strings, so that
- * each of the strings can be placed in a SMS part.
- */
-
- /* Check if we can do GSM encoding */
- mm_charset_get_encoded_len (text,
- MM_MODEM_CHARSET_GSM,
- &gsm_unsupported);
- if (gsm_unsupported > 0) {
- /* If cannot do it in GSM encoding, do it in UCS-2 */
- GByteArray *array;
-
- *encoding = MM_SMS_ENCODING_UCS2;
-
- /* Guess more or less the size of the output array to avoid multiple
- * allocations */
- array = g_byte_array_sized_new (in_len * 2);
- if (!mm_modem_charset_byte_array_append (array,
- text,
- FALSE,
- MM_MODEM_CHARSET_UCS2)) {
- g_byte_array_unref (array);
- return NULL;
- }
-
- /* Our bytearray has it in UCS-2 now.
- * UCS-2 is a fixed-size encoding, which means that the text has exactly
- * 2 bytes for each unicode point. We can now split this array into
- * chunks of 67 UCS-2 characters (134 bytes).
- *
- * Note that UCS-2 covers unicode points between U+0000 and U+FFFF, which
- * means that there is no direct relationship between the size of the
- * input text in UTF-8 and the size of the text in UCS-2. A 3-byte UTF-8
- * encoded character will still be represented with 2 bytes in UCS-2.
- */
- if (array->len <= 140) {
- out = g_new (gchar *, 2);
- out[0] = g_strdup (text);
- out[1] = NULL;
- } else {
- n_chunks = array->len / 134;
- if (array->len % 134 != 0)
- n_chunks++;
-
- out = g_new0 (gchar *, n_chunks + 1);
- for (i = 0, j = 0; i < n_chunks; i++, j += 134) {
- out[i] = sms_decode_text (&array->data[j],
- MIN (array->len - j, 134),
- MM_SMS_ENCODING_UCS2,
- 0);
- }
- }
- g_byte_array_unref (array);
- } else {
- /* Do it with GSM encoding */
- *encoding = MM_SMS_ENCODING_GSM7;
-
- if (in_len <= 160) {
- out = g_new (gchar *, 2);
- out[0] = g_strdup (text);
- out[1] = NULL;
- } else {
- n_chunks = in_len / 153;
- if (in_len % 153 != 0)
- n_chunks++;
-
- out = g_new0 (gchar *, n_chunks + 1);
- for (i = 0, j = 0; i < n_chunks; i++, j += 153) {
- out[i] = g_strndup (&text[j], 153);
- }
- }
- }
-
- return out;
-}
-
-GByteArray **
-mm_sms_part_util_split_data (const guint8 *data,
- gsize data_len)
-{
- GByteArray **out;
-
- /* Some info about the rules for splitting.
- *
- * The User Data can be up to 140 bytes in the SMS part:
- * 0) If we only need one chunk, it can be of up to 140 bytes.
- * If we need more than one chunk, these have to be of 140 - 6 = 134
- * bytes each, as we need place for the UDH header.
- */
-
- if (data_len <= 140) {
- out = g_new0 (GByteArray *, 2);
- out[0] = g_byte_array_append (g_byte_array_sized_new (data_len),
- data,
- data_len);
- } else {
- guint n_chunks;
- guint i;
- guint j;
-
- n_chunks = data_len / 134;
- if (data_len % 134 != 0)
- n_chunks ++;
-
- out = g_new0 (GByteArray *, n_chunks + 1);
- for (i = 0, j = 0; i < n_chunks; i++, j+= 134) {
- out[i] = g_byte_array_append (g_byte_array_sized_new (134),
- &data[j],
- MIN (data_len - j, 134));
- }
- }
-
- return out;
-}
diff --git a/src/mm-sms-part.h b/src/mm-sms-part.h
index d44ed5b..9626295 100644
--- a/src/mm-sms-part.h
+++ b/src/mm-sms-part.h
@@ -29,25 +29,20 @@ typedef enum {
typedef struct _MMSmsPart MMSmsPart;
-#define SMS_MAX_PDU_LEN 344
#define SMS_PART_INVALID_INDEX G_MAXUINT
+#define MM_SMS_PART_IS_3GPP(part) \
+ (mm_sms_part_get_pdu_type (part) >= MM_SMS_PDU_TYPE_DELIVER && \
+ mm_sms_part_get_pdu_type (part) <= MM_SMS_PDU_TYPE_STATUS_REPORT)
+
+#define MM_SMS_PART_IS_CDMA(part) \
+ (mm_sms_part_get_pdu_type (part) >= MM_SMS_PDU_TYPE_CDMA_DELIVER && \
+ mm_sms_part_get_pdu_type (part) <= MM_SMS_PDU_TYPE_CDMA_READ_ACKNOWLEDGEMENT)
+
MMSmsPart *mm_sms_part_new (guint index,
MMSmsPduType type);
-MMSmsPart *mm_sms_part_new_from_pdu (guint index,
- const gchar *hexpdu,
- GError **error);
-MMSmsPart *mm_sms_part_new_from_binary_pdu (guint index,
- const guint8 *pdu,
- gsize pdu_len,
- GError **error);
void mm_sms_part_free (MMSmsPart *part);
-guint8 *mm_sms_part_get_submit_pdu (MMSmsPart *part,
- guint *out_pdulen,
- guint *out_msgstart,
- GError **error);
-
guint mm_sms_part_get_index (MMSmsPart *part);
void mm_sms_part_set_index (MMSmsPart *part,
guint index);
@@ -129,16 +124,12 @@ void mm_sms_part_set_concat_sequence (MMSmsPart *part,
gboolean mm_sms_part_should_concat (MMSmsPart *part);
-/* For testcases only */
-guint mm_sms_part_encode_address (const gchar *address,
- guint8 *buf,
- gsize buflen,
- gboolean is_smsc);
-
-gchar **mm_sms_part_util_split_text (const gchar *text,
- MMSmsEncoding *encoding);
-
-GByteArray **mm_sms_part_util_split_data (const guint8 *data,
- gsize data_len);
+/* CDMA specific */
+MMSmsCdmaTeleserviceId mm_sms_part_get_cdma_teleservice_id (MMSmsPart *part);
+void mm_sms_part_set_cdma_teleservice_id (MMSmsPart *part,
+ MMSmsCdmaTeleserviceId cdma_teleservice_id);
+MMSmsCdmaServiceCategory mm_sms_part_get_cdma_service_category (MMSmsPart *part);
+void mm_sms_part_set_cdma_service_category (MMSmsPart *part,
+ MMSmsCdmaServiceCategory cdma_service_category);
#endif /* MM_SMS_PART_H */
diff --git a/src/mm-sms-qmi.c b/src/mm-sms-qmi.c
index 85ca516..c7d11c7 100644
--- a/src/mm-sms-qmi.c
+++ b/src/mm-sms-qmi.c
@@ -25,9 +25,12 @@
#include <libmm-glib.h>
#include "mm-modem-helpers-qmi.h"
+#include "mm-iface-modem.h"
#include "mm-iface-modem-messaging.h"
#include "mm-sms-qmi.h"
#include "mm-base-modem.h"
+#include "mm-sms-part-3gpp.h"
+#include "mm-sms-part-cdma.h"
#include "mm-log.h"
G_DEFINE_TYPE (MMSmsQmi, mm_sms_qmi, MM_TYPE_SMS);
@@ -82,6 +85,33 @@ ensure_qmi_client (MMSmsQmi *self,
}
/*****************************************************************************/
+
+static gboolean
+check_sms_type_support (MMSmsQmi *self,
+ MMBaseModem *modem,
+ MMSmsPart *first_part,
+ GError **error)
+{
+ if (MM_SMS_PART_IS_3GPP (first_part) && !mm_iface_modem_is_3gpp (MM_IFACE_MODEM (modem))) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_UNSUPPORTED,
+ "Non-3GPP modem doesn't support 3GPP SMS");
+ return FALSE;
+ }
+
+ if (MM_SMS_PART_IS_CDMA (first_part) && !mm_iface_modem_is_cdma (MM_IFACE_MODEM (modem))) {
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_UNSUPPORTED,
+ "Non-CDMA modem doesn't support CDMA SMS");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/*****************************************************************************/
/* Store the SMS */
typedef struct {
@@ -96,7 +126,7 @@ typedef struct {
static void
sms_store_context_complete_and_free (SmsStoreContext *ctx)
{
- g_simple_async_result_complete (ctx->result);
+ g_simple_async_result_complete_in_idle (ctx->result);
g_object_unref (ctx->result);
g_object_unref (ctx->client);
g_object_unref (ctx->modem);
@@ -159,7 +189,7 @@ static void
sms_store_next_part (SmsStoreContext *ctx)
{
QmiMessageWmsRawWriteInput *input;
- guint8 *pdu;
+ guint8 *pdu = NULL;
guint pdulen = 0;
guint msgstart = 0;
GArray *array;
@@ -173,10 +203,22 @@ sms_store_next_part (SmsStoreContext *ctx)
}
/* Get PDU */
- pdu = mm_sms_part_get_submit_pdu ((MMSmsPart *)ctx->current->data, &pdulen, &msgstart, &error);
+ if (MM_SMS_PART_IS_3GPP ((MMSmsPart *)ctx->current->data))
+ pdu = mm_sms_part_3gpp_get_submit_pdu ((MMSmsPart *)ctx->current->data, &pdulen, &msgstart, &error);
+ else if (MM_SMS_PART_IS_CDMA ((MMSmsPart *)ctx->current->data))
+ pdu = mm_sms_part_cdma_get_submit_pdu ((MMSmsPart *)ctx->current->data, &pdulen, &error);
+
if (!pdu) {
- /* 'error' should already be set */
- g_simple_async_result_take_error (ctx->result, error);
+ if (error)
+ g_simple_async_result_take_error (ctx->result, error);
+ else
+ g_simple_async_result_set_error (ctx->result,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Unknown or unsupported PDU type in SMS part: %s",
+ mm_sms_pdu_type_get_string (
+ mm_sms_part_get_pdu_type (
+ (MMSmsPart *)ctx->current->data)));
sms_store_context_complete_and_free (ctx);
return;
}
@@ -192,7 +234,9 @@ sms_store_next_part (SmsStoreContext *ctx)
qmi_message_wms_raw_write_input_set_raw_message_data (
input,
mm_sms_storage_to_qmi_storage_type (ctx->storage),
- QMI_WMS_MESSAGE_FORMAT_GSM_WCDMA_POINT_TO_POINT,
+ (MM_SMS_PART_IS_3GPP ((MMSmsPart *)ctx->current->data) ?
+ QMI_WMS_MESSAGE_FORMAT_GSM_WCDMA_POINT_TO_POINT :
+ QMI_WMS_MESSAGE_FORMAT_CDMA),
array,
NULL);
qmi_client_wms_raw_write (ctx->client,
@@ -213,6 +257,7 @@ sms_store (MMSms *self,
{
SmsStoreContext *ctx;
QmiClient *client = NULL;
+ GError *error = NULL;
/* Ensure WMS client */
if (!ensure_qmi_client (MM_SMS_QMI (self),
@@ -234,6 +279,15 @@ sms_store (MMSms *self,
NULL);
ctx->current = mm_sms_get_parts (self);
+
+ /* Check whether we support the given SMS type */
+ if (!check_sms_type_support (MM_SMS_QMI (self), ctx->modem, (MMSmsPart *)ctx->current->data, &error)) {
+ g_simple_async_result_take_error (ctx->result, error);
+ sms_store_context_complete_and_free (ctx);
+ return;
+ }
+
+ /* Go on */
sms_store_next_part (ctx);
}
@@ -325,16 +379,29 @@ static void
sms_send_generic (SmsSendContext *ctx)
{
QmiMessageWmsRawSendInput *input;
- guint8 *pdu;
+ guint8 *pdu = NULL;
guint pdulen = 0;
guint msgstart = 0;
GArray *array;
GError *error = NULL;
/* Get PDU */
- pdu = mm_sms_part_get_submit_pdu ((MMSmsPart *)ctx->current->data, &pdulen, &msgstart, &error);
+ if (MM_SMS_PART_IS_3GPP ((MMSmsPart *)ctx->current->data))
+ pdu = mm_sms_part_3gpp_get_submit_pdu ((MMSmsPart *)ctx->current->data, &pdulen, &msgstart, &error);
+ else if (MM_SMS_PART_IS_CDMA ((MMSmsPart *)ctx->current->data))
+ pdu = mm_sms_part_cdma_get_submit_pdu ((MMSmsPart *)ctx->current->data, &pdulen, &error);
+
if (!pdu) {
- g_simple_async_result_take_error (ctx->result, error);
+ if (error)
+ g_simple_async_result_take_error (ctx->result, error);
+ else
+ g_simple_async_result_set_error (ctx->result,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Unknown or unsupported PDU type in SMS part: %s",
+ mm_sms_pdu_type_get_string (
+ mm_sms_part_get_pdu_type (
+ (MMSmsPart *)ctx->current->data)));
sms_send_context_complete_and_free (ctx);
return;
}
@@ -346,10 +413,11 @@ sms_send_generic (SmsSendContext *ctx)
g_free (pdu);
input = qmi_message_wms_raw_send_input_new ();
-
qmi_message_wms_raw_send_input_set_raw_message_data (
input,
- QMI_WMS_MESSAGE_FORMAT_GSM_WCDMA_POINT_TO_POINT,
+ (MM_SMS_PART_IS_3GPP ((MMSmsPart *)ctx->current->data) ?
+ QMI_WMS_MESSAGE_FORMAT_GSM_WCDMA_POINT_TO_POINT :
+ QMI_WMS_MESSAGE_FORMAT_CDMA),
array,
NULL);
@@ -404,6 +472,8 @@ send_from_storage_ready (QmiClientWms *client,
} else {
QmiWmsGsmUmtsRpCause rp_cause;
QmiWmsGsmUmtsTpCause tp_cause;
+ QmiWmsCdmaCauseCode cdma_cause_code;
+ QmiWmsCdmaErrorClass cdma_error_class;
if (qmi_message_wms_send_from_memory_storage_output_get_gsm_wcdma_cause_info (
output,
@@ -417,6 +487,24 @@ send_from_storage_ready (QmiClientWms *client,
qmi_wms_gsm_umts_tp_cause_get_string (tp_cause));
}
+ if (qmi_message_wms_send_from_memory_storage_output_get_cdma_cause_code (
+ output,
+ &cdma_cause_code,
+ NULL)) {
+ mm_warn ("Couldn't send SMS; cause code (%u): '%s'",
+ cdma_cause_code,
+ qmi_wms_cdma_cause_code_get_string (cdma_cause_code));
+ }
+
+ if (qmi_message_wms_send_from_memory_storage_output_get_cdma_error_class (
+ output,
+ &cdma_error_class,
+ NULL)) {
+ mm_warn ("Couldn't send SMS; error class (%u): '%s'",
+ cdma_error_class,
+ qmi_wms_cdma_error_class_get_string (cdma_error_class));
+ }
+
g_prefix_error (&error, "Couldn't write SMS part: ");
g_simple_async_result_take_error (ctx->result, error);
sms_send_context_complete_and_free (ctx);
@@ -448,7 +536,9 @@ sms_send_from_storage (SmsSendContext *ctx)
input,
mm_sms_storage_to_qmi_storage_type (mm_sms_get_storage (ctx->self)),
mm_sms_part_get_index ((MMSmsPart *)ctx->current->data),
- QMI_WMS_MESSAGE_MODE_GSM_WCDMA,
+ (MM_SMS_PART_IS_3GPP ((MMSmsPart *)ctx->current->data) ?
+ QMI_WMS_MESSAGE_MODE_GSM_WCDMA :
+ QMI_WMS_MESSAGE_MODE_CDMA),
NULL);
qmi_client_wms_send_from_memory_storage (
@@ -485,6 +575,7 @@ sms_send (MMSms *self,
{
SmsSendContext *ctx;
QmiClient *client = NULL;
+ GError *error = NULL;
/* Ensure WMS client */
if (!ensure_qmi_client (MM_SMS_QMI (self),
@@ -507,7 +598,15 @@ sms_send (MMSms *self,
/* If the SMS is STORED, try to send from storage */
ctx->from_storage = (mm_sms_get_storage (self) != MM_SMS_STORAGE_UNKNOWN);
- ctx->current = mm_sms_get_parts (self);;
+ ctx->current = mm_sms_get_parts (self);
+
+ /* Check whether we support the given SMS type */
+ if (!check_sms_type_support (MM_SMS_QMI (self), ctx->modem, (MMSmsPart *)ctx->current->data, &error)) {
+ g_simple_async_result_take_error (ctx->result, error);
+ sms_send_context_complete_and_free (ctx);
+ return;
+ }
+
sms_send_next_part (ctx);
}
@@ -612,7 +711,9 @@ delete_next_part (SmsDeletePartsContext *ctx)
NULL);
qmi_message_wms_delete_input_set_message_mode (
input,
- QMI_WMS_MESSAGE_MODE_GSM_WCDMA,
+ (MM_SMS_PART_IS_3GPP ((MMSmsPart *)ctx->current->data) ?
+ QMI_WMS_MESSAGE_MODE_GSM_WCDMA:
+ QMI_WMS_MESSAGE_MODE_CDMA),
NULL);
qmi_client_wms_delete (ctx->client,
input,
diff --git a/src/mm-sms.c b/src/mm-sms.c
index a7b1d64..672d5bc 100644
--- a/src/mm-sms.c
+++ b/src/mm-sms.c
@@ -30,6 +30,7 @@
#include "mm-iface-modem.h"
#include "mm-iface-modem-messaging.h"
#include "mm-sms.h"
+#include "mm-sms-part-3gpp.h"
#include "mm-base-modem-at.h"
#include "mm-base-modem.h"
#include "mm-log.h"
@@ -94,8 +95,8 @@ get_validity_relative (GVariant *tuple)
}
static gboolean
-generate_submit_pdus (MMSms *self,
- GError **error)
+generate_3gpp_submit_pdus (MMSms *self,
+ GError **error)
{
guint i;
guint n_parts;
@@ -123,7 +124,7 @@ generate_submit_pdus (MMSms *self,
g_assert (!(text != NULL && data != NULL));
if (text) {
- split_text = mm_sms_part_util_split_text (text, &encoding);
+ split_text = mm_sms_part_3gpp_util_split_text (text, &encoding);
if (!split_text) {
g_set_error (error,
MM_CORE_ERROR,
@@ -134,7 +135,7 @@ generate_submit_pdus (MMSms *self,
n_parts = g_strv_length (split_text);
} else if (data) {
encoding = MM_SMS_ENCODING_8BIT;
- split_data = mm_sms_part_util_split_data (data, data_len);
+ split_data = mm_sms_part_3gpp_util_split_data (data, data_len);
g_assert (split_data != NULL);
/* noop within the for */
for (n_parts = 0; split_data[n_parts]; n_parts++);
@@ -231,6 +232,90 @@ generate_submit_pdus (MMSms *self,
return TRUE;
}
+static gboolean
+generate_cdma_submit_pdus (MMSms *self,
+ GError **error)
+{
+ const gchar *text;
+ GVariant *data_variant;
+ const guint8 *data;
+ gsize data_len = 0;
+
+ MMSmsPart *part;
+
+ g_assert (self->priv->parts == NULL);
+
+ text = mm_gdbus_sms_get_text (MM_GDBUS_SMS (self));
+ data_variant = mm_gdbus_sms_get_data (MM_GDBUS_SMS (self));
+ data = (data_variant ?
+ g_variant_get_fixed_array (data_variant,
+ &data_len,
+ sizeof (guchar)) :
+ NULL);
+
+ g_assert (text != NULL || data != NULL);
+ g_assert (!(text != NULL && data != NULL));
+
+ /* Create new part */
+ part = mm_sms_part_new (SMS_PART_INVALID_INDEX, MM_SMS_PDU_TYPE_CDMA_SUBMIT);
+ if (text)
+ mm_sms_part_set_text (part, text);
+ else if (data) {
+ GByteArray *part_data;
+
+ part_data = g_byte_array_sized_new (data_len);
+ g_byte_array_append (part_data, data, data_len);
+ mm_sms_part_take_data (part, part_data);
+ } else
+ g_assert_not_reached ();
+ mm_sms_part_set_encoding (part, data ? MM_SMS_ENCODING_8BIT : MM_SMS_ENCODING_UNKNOWN);
+ mm_sms_part_set_number (part, mm_gdbus_sms_get_number (MM_GDBUS_SMS (self)));
+
+ /* If creating a CDMA SMS part but we don't have a Teleservice ID, we default to WMT */
+ if (mm_gdbus_sms_get_teleservice_id (MM_GDBUS_SMS (self)) == MM_SMS_CDMA_TELESERVICE_ID_UNKNOWN) {
+ mm_dbg ("Defaulting to WMT teleservice ID when creating SMS part");
+ mm_sms_part_set_cdma_teleservice_id (part, MM_SMS_CDMA_TELESERVICE_ID_WMT);
+ } else
+ mm_sms_part_set_cdma_teleservice_id (part, mm_gdbus_sms_get_teleservice_id (MM_GDBUS_SMS (self)));
+
+ mm_sms_part_set_cdma_service_category (part, mm_gdbus_sms_get_service_category (MM_GDBUS_SMS (self)));
+
+ mm_dbg ("Created SMS part for CDMA SMS");
+
+ /* Add to the list of parts */
+ self->priv->parts = g_list_append (self->priv->parts, part);
+
+ /* No more parts are expected */
+ self->priv->is_assembled = TRUE;
+
+ return TRUE;
+}
+
+static gboolean
+generate_submit_pdus (MMSms *self,
+ GError **error)
+{
+ MMBaseModem *modem;
+ gboolean is_3gpp;
+
+ /* First; decide which kind of PDU we'll generate, based on the current modem caps */
+
+ g_object_get (self,
+ MM_SMS_MODEM, &modem,
+ NULL);
+ g_assert (modem != NULL);
+
+ is_3gpp = mm_iface_modem_is_3gpp (MM_IFACE_MODEM (modem));
+ g_object_unref (modem);
+
+ /* On a 3GPP-capable modem, create always a 3GPP SMS (even if the modem is 3GPP+3GPP2) */
+ if (is_3gpp)
+ return generate_3gpp_submit_pdus (self, error);
+
+ /* Otherwise, create a 3GPP2 SMS */
+ return generate_cdma_submit_pdus (self, error);
+}
+
/*****************************************************************************/
/* Store SMS (DBus call handling) */
@@ -257,9 +342,12 @@ handle_store_ready (MMSms *self,
{
GError *error = NULL;
- if (!MM_SMS_GET_CLASS (self)->store_finish (self, res, &error))
+ if (!MM_SMS_GET_CLASS (self)->store_finish (self, res, &error)) {
+ /* On error, clear up the parts we generated */
+ g_list_free_full (self->priv->parts, (GDestroyNotify)mm_sms_part_free);
+ self->priv->parts = NULL;
g_dbus_method_invocation_take_error (ctx->invocation, error);
- else {
+ } else {
mm_gdbus_sms_set_storage (MM_GDBUS_SMS (ctx->self), ctx->storage);
/* Transition from Unknown->Stored for SMS which were created by the user */
@@ -297,10 +385,12 @@ prepare_sms_to_be_stored (MMSms *self,
/* If the message is a multipart message, we need to set a proper
* multipart reference. When sending a message which wasn't stored
* yet, we can just get a random multipart reference. */
- self->priv->multipart_reference = reference;
- for (l = self->priv->parts; l; l = g_list_next (l)) {
- mm_sms_part_set_concat_reference ((MMSmsPart *)l->data,
- self->priv->multipart_reference);
+ if (self->priv->is_multipart) {
+ self->priv->multipart_reference = reference;
+ for (l = self->priv->parts; l; l = g_list_next (l)) {
+ mm_sms_part_set_concat_reference ((MMSmsPart *)l->data,
+ self->priv->multipart_reference);
+ }
}
return TRUE;
@@ -426,9 +516,12 @@ handle_send_ready (MMSms *self,
{
GError *error = NULL;
- if (!MM_SMS_GET_CLASS (self)->send_finish (self, res, &error))
+ if (!MM_SMS_GET_CLASS (self)->send_finish (self, res, &error)) {
+ /* On error, clear up the parts we generated */
+ g_list_free_full (self->priv->parts, (GDestroyNotify)mm_sms_part_free);
+ self->priv->parts = NULL;
g_dbus_method_invocation_take_error (ctx->invocation, error);
- else {
+ } else {
/* Transition from Unknown->Sent or Stored->Sent */
if (mm_gdbus_sms_get_state (MM_GDBUS_SMS (ctx->self)) == MM_SMS_STATE_UNKNOWN ||
mm_gdbus_sms_get_state (MM_GDBUS_SMS (ctx->self)) == MM_SMS_STATE_STORED) {
@@ -464,10 +557,12 @@ prepare_sms_to_be_sent (MMSms *self,
/* If the message is a multipart message, we need to set a proper
* multipart reference. When sending a message which wasn't stored
* yet, we can just get a random multipart reference. */
- self->priv->multipart_reference = g_random_int_range (1,255);
- for (l = self->priv->parts; l; l = g_list_next (l)) {
- mm_sms_part_set_concat_reference ((MMSmsPart *)l->data,
- self->priv->multipart_reference);
+ if (self->priv->is_multipart) {
+ self->priv->multipart_reference = g_random_int_range (1,255);
+ for (l = self->priv->parts; l; l = g_list_next (l)) {
+ mm_sms_part_set_concat_reference ((MMSmsPart *)l->data,
+ self->priv->multipart_reference);
+ }
}
return TRUE;
@@ -703,7 +798,7 @@ sms_get_store_or_send_command (MMSmsPart *part,
/* AT+CMGW=<length>[, <stat>]<CR> PDU can be entered. <CTRL-Z>/<ESC> */
- pdu = mm_sms_part_get_submit_pdu (part, &pdulen, &msgstart, error);
+ pdu = mm_sms_part_3gpp_get_submit_pdu (part, &pdulen, &msgstart, error);
if (!pdu)
/* 'error' should already be set */
return FALSE;
@@ -1499,6 +1594,8 @@ assemble_sms (MMSms *self,
g_byte_array_ref (fulldata)),
"smsc", mm_sms_part_get_smsc (sorted_parts[0]),
"class", mm_sms_part_get_class (sorted_parts[0]),
+ "teleservice-id", mm_sms_part_get_cdma_teleservice_id (sorted_parts[0]),
+ "service-category", mm_sms_part_get_cdma_service_category (sorted_parts[0]),
"number", mm_sms_part_get_number (sorted_parts[0]),
"validity", (validity_relative ?
g_variant_new ("(uv)", MM_SMS_VALIDITY_TYPE_RELATIVE, g_variant_new_uint32 (validity_relative)) :
@@ -1725,7 +1822,9 @@ mm_sms_new_from_properties (MMBaseModem *modem,
"state", MM_SMS_STATE_UNKNOWN,
"storage", MM_SMS_STORAGE_UNKNOWN,
"number", mm_sms_properties_get_number (properties),
- "pdu-type", MM_SMS_PDU_TYPE_SUBMIT,
+ "pdu-type", (mm_sms_properties_get_teleservice_id (properties) == MM_SMS_CDMA_TELESERVICE_ID_UNKNOWN ?
+ MM_SMS_PDU_TYPE_SUBMIT :
+ MM_SMS_PDU_TYPE_CDMA_SUBMIT),
"text", text,
"data", (data ?
g_variant_new_from_data (G_VARIANT_TYPE ("ay"),
@@ -1737,7 +1836,10 @@ mm_sms_new_from_properties (MMBaseModem *modem,
NULL),
"smsc", mm_sms_properties_get_smsc (properties),
"class", mm_sms_properties_get_class (properties),
+ "teleservice-id", mm_sms_properties_get_teleservice_id (properties),
+ "service-category", mm_sms_properties_get_service_category (properties),
"delivery-report-request", mm_sms_properties_get_delivery_report_request (properties),
+ "delivery-state", MM_SMS_DELIVERY_STATE_UNKNOWN,
"validity", (mm_sms_properties_get_validity_type (properties) == MM_SMS_VALIDITY_TYPE_RELATIVE ?
g_variant_new ("(uv)", MM_SMS_VALIDITY_TYPE_RELATIVE, g_variant_new_uint32 (mm_sms_properties_get_validity_relative (properties))) :
g_variant_new ("(uv)", MM_SMS_VALIDITY_TYPE_UNKNOWN, g_variant_new_boolean (FALSE))),
diff --git a/src/tests/Makefile.am b/src/tests/Makefile.am
index dc58366..2d13f25 100644
--- a/src/tests/Makefile.am
+++ b/src/tests/Makefile.am
@@ -5,7 +5,8 @@ noinst_PROGRAMS = \
test-charsets \
test-qcdm-serial-port \
test-at-serial-port \
- test-sms-part
+ test-sms-part-3gpp \
+ test-sms-part-cdma
if WITH_QMI
noinst_PROGRAMS += test-modem-helpers-qmi
@@ -139,10 +140,10 @@ endif
################
-test_sms_part_SOURCES = \
- test-sms-part.c
+test_sms_part_3gpp_SOURCES = \
+ test-sms-part-3gpp.c
-test_sms_part_CPPFLAGS = \
+test_sms_part_3gpp_CPPFLAGS = \
$(MM_CFLAGS) \
-I$(top_srcdir) \
-I$(top_srcdir)/src \
@@ -152,11 +153,35 @@ test_sms_part_CPPFLAGS = \
-I$(top_srcdir)/libmm-glib/generated \
-I$(top_builddir)/libmm-glib/generated
-test_sms_part_LDADD = \
+test_sms_part_3gpp_LDADD = \
$(top_builddir)/src/libmodem-helpers.la \
$(MM_LIBS)
if WITH_QMI
-test_sms_part_CPPFLAGS += $(QMI_CFLAGS)
-test_sms_part_LDADD += $(QMI_LIBS)
+test_sms_part_3gpp_CPPFLAGS += $(QMI_CFLAGS)
+test_sms_part_3gpp_LDADD += $(QMI_LIBS)
+endif
+
+################
+
+test_sms_part_cdma_SOURCES = \
+ test-sms-part-cdma.c
+
+test_sms_part_cdma_CPPFLAGS = \
+ $(MM_CFLAGS) \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/src \
+ -I$(top_srcdir)/include \
+ -I$(top_builddir)/include \
+ -I$(top_srcdir)/libmm-glib \
+ -I$(top_srcdir)/libmm-glib/generated \
+ -I$(top_builddir)/libmm-glib/generated
+
+test_sms_part_cdma_LDADD = \
+ $(top_builddir)/src/libmodem-helpers.la \
+ $(MM_LIBS)
+
+if WITH_QMI
+test_sms_part_cdma_CPPFLAGS += $(QMI_CFLAGS)
+test_sms_part_cdma_LDADD += $(QMI_LIBS)
endif
diff --git a/src/tests/Makefile.in b/src/tests/Makefile.in
index 0fdf026..e22942b 100644
--- a/src/tests/Makefile.in
+++ b/src/tests/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -82,7 +82,8 @@ DIST_COMMON = $(top_srcdir)/gtester.make $(srcdir)/Makefile.in \
$(srcdir)/Makefile.am $(top_srcdir)/depcomp
noinst_PROGRAMS = test-modem-helpers$(EXEEXT) test-charsets$(EXEEXT) \
test-qcdm-serial-port$(EXEEXT) test-at-serial-port$(EXEEXT) \
- test-sms-part$(EXEEXT) $(am__EXEEXT_1)
+ test-sms-part-3gpp$(EXEEXT) test-sms-part-cdma$(EXEEXT) \
+ $(am__EXEEXT_1)
@WITH_QMI_TRUE@am__append_1 = test-modem-helpers-qmi
@WITH_QMI_TRUE@am__append_2 = $(QMI_CFLAGS)
@WITH_QMI_TRUE@am__append_3 = $(QMI_LIBS)
@@ -94,17 +95,20 @@ noinst_PROGRAMS = test-modem-helpers$(EXEEXT) test-charsets$(EXEEXT) \
@WITH_QMI_TRUE@am__append_9 = $(QMI_LIBS)
@WITH_QMI_TRUE@am__append_10 = $(QMI_CFLAGS)
@WITH_QMI_TRUE@am__append_11 = $(QMI_LIBS)
+@WITH_QMI_TRUE@am__append_12 = $(QMI_CFLAGS)
+@WITH_QMI_TRUE@am__append_13 = $(QMI_LIBS)
subdir = src/tests
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \
$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
- $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
- $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/introspection.m4 \
+ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
@@ -149,10 +153,18 @@ test_qcdm_serial_port_DEPENDENCIES = $(am__DEPENDENCIES_1) \
$(top_builddir)/src/libserial.la \
$(top_builddir)/src/libmodem-helpers.la \
$(top_builddir)/libqcdm/src/libqcdm.la $(am__DEPENDENCIES_2)
-am_test_sms_part_OBJECTS = test_sms_part-test-sms-part.$(OBJEXT)
-test_sms_part_OBJECTS = $(am_test_sms_part_OBJECTS)
-test_sms_part_DEPENDENCIES = $(top_builddir)/src/libmodem-helpers.la \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
+am_test_sms_part_3gpp_OBJECTS = \
+ test_sms_part_3gpp-test-sms-part-3gpp.$(OBJEXT)
+test_sms_part_3gpp_OBJECTS = $(am_test_sms_part_3gpp_OBJECTS)
+test_sms_part_3gpp_DEPENDENCIES = \
+ $(top_builddir)/src/libmodem-helpers.la $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_2)
+am_test_sms_part_cdma_OBJECTS = \
+ test_sms_part_cdma-test-sms-part-cdma.$(OBJEXT)
+test_sms_part_cdma_OBJECTS = $(am_test_sms_part_cdma_OBJECTS)
+test_sms_part_cdma_DEPENDENCIES = \
+ $(top_builddir)/src/libmodem-helpers.la $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_2)
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
@@ -190,11 +202,13 @@ am__v_CCLD_1 =
SOURCES = $(test_at_serial_port_SOURCES) $(test_charsets_SOURCES) \
$(test_modem_helpers_SOURCES) \
$(test_modem_helpers_qmi_SOURCES) \
- $(test_qcdm_serial_port_SOURCES) $(test_sms_part_SOURCES)
+ $(test_qcdm_serial_port_SOURCES) $(test_sms_part_3gpp_SOURCES) \
+ $(test_sms_part_cdma_SOURCES)
DIST_SOURCES = $(test_at_serial_port_SOURCES) $(test_charsets_SOURCES) \
$(test_modem_helpers_SOURCES) \
$(am__test_modem_helpers_qmi_SOURCES_DIST) \
- $(test_qcdm_serial_port_SOURCES) $(test_sms_part_SOURCES)
+ $(test_qcdm_serial_port_SOURCES) $(test_sms_part_3gpp_SOURCES) \
+ $(test_sms_part_cdma_SOURCES)
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
@@ -278,6 +292,14 @@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
@@ -344,6 +366,9 @@ STRIP = @STRIP@
SYSTEMD_UNIT_DIR = @SYSTEMD_UNIT_DIR@
UDEV_BASE_DIR = @UDEV_BASE_DIR@
USE_NLS = @USE_NLS@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
@@ -482,16 +507,28 @@ test_at_serial_port_LDADD = $(MM_LIBS) \
$(top_builddir)/src/libmodem-helpers.la -lutil $(am__append_9)
################
-test_sms_part_SOURCES = \
- test-sms-part.c
+test_sms_part_3gpp_SOURCES = \
+ test-sms-part-3gpp.c
-test_sms_part_CPPFLAGS = $(MM_CFLAGS) -I$(top_srcdir) \
+test_sms_part_3gpp_CPPFLAGS = $(MM_CFLAGS) -I$(top_srcdir) \
-I$(top_srcdir)/src -I$(top_srcdir)/include \
-I$(top_builddir)/include -I$(top_srcdir)/libmm-glib \
-I$(top_srcdir)/libmm-glib/generated \
-I$(top_builddir)/libmm-glib/generated $(am__append_10)
-test_sms_part_LDADD = $(top_builddir)/src/libmodem-helpers.la \
+test_sms_part_3gpp_LDADD = $(top_builddir)/src/libmodem-helpers.la \
$(MM_LIBS) $(am__append_11)
+
+################
+test_sms_part_cdma_SOURCES = \
+ test-sms-part-cdma.c
+
+test_sms_part_cdma_CPPFLAGS = $(MM_CFLAGS) -I$(top_srcdir) \
+ -I$(top_srcdir)/src -I$(top_srcdir)/include \
+ -I$(top_builddir)/include -I$(top_srcdir)/libmm-glib \
+ -I$(top_srcdir)/libmm-glib/generated \
+ -I$(top_builddir)/libmm-glib/generated $(am__append_12)
+test_sms_part_cdma_LDADD = $(top_builddir)/src/libmodem-helpers.la \
+ $(MM_LIBS) $(am__append_13)
all: all-am
.SUFFIXES:
@@ -557,9 +594,13 @@ test-qcdm-serial-port$(EXEEXT): $(test_qcdm_serial_port_OBJECTS) $(test_qcdm_ser
@rm -f test-qcdm-serial-port$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(test_qcdm_serial_port_OBJECTS) $(test_qcdm_serial_port_LDADD) $(LIBS)
-test-sms-part$(EXEEXT): $(test_sms_part_OBJECTS) $(test_sms_part_DEPENDENCIES) $(EXTRA_test_sms_part_DEPENDENCIES)
- @rm -f test-sms-part$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(test_sms_part_OBJECTS) $(test_sms_part_LDADD) $(LIBS)
+test-sms-part-3gpp$(EXEEXT): $(test_sms_part_3gpp_OBJECTS) $(test_sms_part_3gpp_DEPENDENCIES) $(EXTRA_test_sms_part_3gpp_DEPENDENCIES)
+ @rm -f test-sms-part-3gpp$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_sms_part_3gpp_OBJECTS) $(test_sms_part_3gpp_LDADD) $(LIBS)
+
+test-sms-part-cdma$(EXEEXT): $(test_sms_part_cdma_OBJECTS) $(test_sms_part_cdma_DEPENDENCIES) $(EXTRA_test_sms_part_cdma_DEPENDENCIES)
+ @rm -f test-sms-part-cdma$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_sms_part_cdma_OBJECTS) $(test_sms_part_cdma_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -572,7 +613,8 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_modem_helpers-test-modem-helpers.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_modem_helpers_qmi-test-modem-helpers-qmi.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_qcdm_serial_port-test-qcdm-serial-port.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_sms_part-test-sms-part.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_sms_part_3gpp-test-sms-part-3gpp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_sms_part_cdma-test-sms-part-cdma.Po@am__quote@
.c.o:
@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@@ -668,19 +710,33 @@ test_qcdm_serial_port-test-qcdm-serial-port.obj: test-qcdm-serial-port.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_qcdm_serial_port_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_qcdm_serial_port-test-qcdm-serial-port.obj `if test -f 'test-qcdm-serial-port.c'; then $(CYGPATH_W) 'test-qcdm-serial-port.c'; else $(CYGPATH_W) '$(srcdir)/test-qcdm-serial-port.c'; fi`
-test_sms_part-test-sms-part.o: test-sms-part.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_sms_part_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_sms_part-test-sms-part.o -MD -MP -MF $(DEPDIR)/test_sms_part-test-sms-part.Tpo -c -o test_sms_part-test-sms-part.o `test -f 'test-sms-part.c' || echo '$(srcdir)/'`test-sms-part.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_sms_part-test-sms-part.Tpo $(DEPDIR)/test_sms_part-test-sms-part.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-sms-part.c' object='test_sms_part-test-sms-part.o' libtool=no @AMDEPBACKSLASH@
+test_sms_part_3gpp-test-sms-part-3gpp.o: test-sms-part-3gpp.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_sms_part_3gpp_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_sms_part_3gpp-test-sms-part-3gpp.o -MD -MP -MF $(DEPDIR)/test_sms_part_3gpp-test-sms-part-3gpp.Tpo -c -o test_sms_part_3gpp-test-sms-part-3gpp.o `test -f 'test-sms-part-3gpp.c' || echo '$(srcdir)/'`test-sms-part-3gpp.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_sms_part_3gpp-test-sms-part-3gpp.Tpo $(DEPDIR)/test_sms_part_3gpp-test-sms-part-3gpp.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-sms-part-3gpp.c' object='test_sms_part_3gpp-test-sms-part-3gpp.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_sms_part_3gpp_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_sms_part_3gpp-test-sms-part-3gpp.o `test -f 'test-sms-part-3gpp.c' || echo '$(srcdir)/'`test-sms-part-3gpp.c
+
+test_sms_part_3gpp-test-sms-part-3gpp.obj: test-sms-part-3gpp.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_sms_part_3gpp_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_sms_part_3gpp-test-sms-part-3gpp.obj -MD -MP -MF $(DEPDIR)/test_sms_part_3gpp-test-sms-part-3gpp.Tpo -c -o test_sms_part_3gpp-test-sms-part-3gpp.obj `if test -f 'test-sms-part-3gpp.c'; then $(CYGPATH_W) 'test-sms-part-3gpp.c'; else $(CYGPATH_W) '$(srcdir)/test-sms-part-3gpp.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_sms_part_3gpp-test-sms-part-3gpp.Tpo $(DEPDIR)/test_sms_part_3gpp-test-sms-part-3gpp.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-sms-part-3gpp.c' object='test_sms_part_3gpp-test-sms-part-3gpp.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_sms_part_3gpp_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_sms_part_3gpp-test-sms-part-3gpp.obj `if test -f 'test-sms-part-3gpp.c'; then $(CYGPATH_W) 'test-sms-part-3gpp.c'; else $(CYGPATH_W) '$(srcdir)/test-sms-part-3gpp.c'; fi`
+
+test_sms_part_cdma-test-sms-part-cdma.o: test-sms-part-cdma.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_sms_part_cdma_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_sms_part_cdma-test-sms-part-cdma.o -MD -MP -MF $(DEPDIR)/test_sms_part_cdma-test-sms-part-cdma.Tpo -c -o test_sms_part_cdma-test-sms-part-cdma.o `test -f 'test-sms-part-cdma.c' || echo '$(srcdir)/'`test-sms-part-cdma.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_sms_part_cdma-test-sms-part-cdma.Tpo $(DEPDIR)/test_sms_part_cdma-test-sms-part-cdma.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-sms-part-cdma.c' object='test_sms_part_cdma-test-sms-part-cdma.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_sms_part_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_sms_part-test-sms-part.o `test -f 'test-sms-part.c' || echo '$(srcdir)/'`test-sms-part.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_sms_part_cdma_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_sms_part_cdma-test-sms-part-cdma.o `test -f 'test-sms-part-cdma.c' || echo '$(srcdir)/'`test-sms-part-cdma.c
-test_sms_part-test-sms-part.obj: test-sms-part.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_sms_part_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_sms_part-test-sms-part.obj -MD -MP -MF $(DEPDIR)/test_sms_part-test-sms-part.Tpo -c -o test_sms_part-test-sms-part.obj `if test -f 'test-sms-part.c'; then $(CYGPATH_W) 'test-sms-part.c'; else $(CYGPATH_W) '$(srcdir)/test-sms-part.c'; fi`
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_sms_part-test-sms-part.Tpo $(DEPDIR)/test_sms_part-test-sms-part.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-sms-part.c' object='test_sms_part-test-sms-part.obj' libtool=no @AMDEPBACKSLASH@
+test_sms_part_cdma-test-sms-part-cdma.obj: test-sms-part-cdma.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_sms_part_cdma_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_sms_part_cdma-test-sms-part-cdma.obj -MD -MP -MF $(DEPDIR)/test_sms_part_cdma-test-sms-part-cdma.Tpo -c -o test_sms_part_cdma-test-sms-part-cdma.obj `if test -f 'test-sms-part-cdma.c'; then $(CYGPATH_W) 'test-sms-part-cdma.c'; else $(CYGPATH_W) '$(srcdir)/test-sms-part-cdma.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_sms_part_cdma-test-sms-part-cdma.Tpo $(DEPDIR)/test_sms_part_cdma-test-sms-part-cdma.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-sms-part-cdma.c' object='test_sms_part_cdma-test-sms-part-cdma.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_sms_part_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_sms_part-test-sms-part.obj `if test -f 'test-sms-part.c'; then $(CYGPATH_W) 'test-sms-part.c'; else $(CYGPATH_W) '$(srcdir)/test-sms-part.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_sms_part_cdma_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_sms_part_cdma-test-sms-part-cdma.obj `if test -f 'test-sms-part-cdma.c'; then $(CYGPATH_W) 'test-sms-part-cdma.c'; else $(CYGPATH_W) '$(srcdir)/test-sms-part-cdma.c'; fi`
mostlyclean-libtool:
-rm -f *.lo
diff --git a/src/tests/test-at-serial-port.c b/src/tests/test-at-serial-port.c
index 1e7ff45..0b5f506 100644
--- a/src/tests/test-at-serial-port.c
+++ b/src/tests/test-at-serial-port.c
@@ -71,7 +71,17 @@ _mm_log (const char *loc,
const char *fmt,
...)
{
+#if defined ENABLE_TEST_MESSAGE_TRACES
/* Dummy log function */
+ va_list args;
+ gchar *msg;
+
+ va_start (args, fmt);
+ msg = g_strdup_vprintf (fmt, args);
+ va_end (args);
+ g_print ("%s\n", msg);
+ g_free (msg);
+#endif
}
int main (int argc, char **argv)
diff --git a/src/tests/test-modem-helpers.c b/src/tests/test-modem-helpers.c
index 5d94571..b4ff8a2 100644
--- a/src/tests/test-modem-helpers.c
+++ b/src/tests/test-modem-helpers.c
@@ -840,12 +840,52 @@ test_creg2_iridium_solicited (void *f, gpointer d)
{
RegTestData *data = (RegTestData *) d;
const char *reply = "+CREG:002,001,\"18d8\",\"ffff\"";
- const CregResult result = { 1, 0x18D8, 0xFFFF, MM_MODEM_ACCESS_TECHNOLOGY_UNKNOWN, 4, FALSE, FALSE };
+ const CregResult result = { 1, 0x18D8, 0xFFFF, MM_MODEM_ACCESS_TECHNOLOGY_UNKNOWN, 5, FALSE, FALSE };
test_creg_match ("Iridium, CREG=2", TRUE, reply, data, &result);
}
static void
+test_creg2_no_leading_zeros_solicited (void *f, gpointer d)
+{
+ RegTestData *data = (RegTestData *) d;
+ const char *reply = "+CREG:2,1,0001,0010";
+ const CregResult result = { 1, 0x0001, 0x0010, MM_MODEM_ACCESS_TECHNOLOGY_UNKNOWN, 4, FALSE, FALSE };
+
+ test_creg_match ("solicited CREG=2 with no leading zeros in integer fields", TRUE, reply, data, &result);
+}
+
+static void
+test_creg2_leading_zeros_solicited (void *f, gpointer d)
+{
+ RegTestData *data = (RegTestData *) d;
+ const char *reply = "+CREG:002,001,\"0001\",\"0010\"";
+ const CregResult result = { 1, 0x0001, 0x0010, MM_MODEM_ACCESS_TECHNOLOGY_UNKNOWN, 5, FALSE, FALSE };
+
+ test_creg_match ("solicited CREG=2 with leading zeros in integer fields", TRUE, reply, data, &result);
+}
+
+static void
+test_creg2_no_leading_zeros_unsolicited (void *f, gpointer d)
+{
+ RegTestData *data = (RegTestData *) d;
+ const char *reply = "\r\n+CREG: 1,0001,0010,0\r\n";
+ const CregResult result = { 1, 0x0001, 0x0010, MM_MODEM_ACCESS_TECHNOLOGY_GSM, 6, FALSE, FALSE };
+
+ test_creg_match ("unsolicited CREG=2 with no leading zeros in integer fields", FALSE, reply, data, &result);
+}
+
+static void
+test_creg2_leading_zeros_unsolicited (void *f, gpointer d)
+{
+ RegTestData *data = (RegTestData *) d;
+ const char *reply = "\r\n+CREG: 001,\"0001\",\"0010\",000\r\n";
+ const CregResult result = { 1, 0x0001, 0x0010, MM_MODEM_ACCESS_TECHNOLOGY_GSM, 7, FALSE, FALSE };
+
+ test_creg_match ("unsolicited CREG=2 with leading zeros in integer fields", FALSE, reply, data, &result);
+}
+
+static void
test_cgreg1_solicited (void *f, gpointer d)
{
RegTestData *data = (RegTestData *) d;
@@ -870,7 +910,7 @@ test_cgreg2_f3607gw_solicited (void *f, gpointer d)
{
RegTestData *data = (RegTestData *) d;
const char *reply = "+CGREG: 2,1,\"8BE3\",\"00002B5D\",3";
- const CregResult result = { 1, 0x8BE3, 0x2B5D, MM_MODEM_ACCESS_TECHNOLOGY_EDGE , 6, TRUE, FALSE };
+ const CregResult result = { 1, 0x8BE3, 0x2B5D, MM_MODEM_ACCESS_TECHNOLOGY_EDGE, 8, TRUE, FALSE };
test_creg_match ("Ericsson F3607gw CGREG=2", TRUE, reply, data, &result);
}
@@ -880,7 +920,7 @@ test_cgreg2_f3607gw_unsolicited (void *f, gpointer d)
{
RegTestData *data = (RegTestData *) d;
const char *reply = "\r\n+CGREG: 1,\"8BE3\",\"00002B5D\",3\r\n";
- const CregResult result = { 1, 0x8BE3, 0x2B5D, MM_MODEM_ACCESS_TECHNOLOGY_EDGE , 5, TRUE, FALSE };
+ const CregResult result = { 1, 0x8BE3, 0x2B5D, MM_MODEM_ACCESS_TECHNOLOGY_EDGE, 6, TRUE, FALSE };
test_creg_match ("Ericsson F3607gw CGREG=2", FALSE, reply, data, &result);
}
@@ -900,7 +940,7 @@ test_cgreg2_md400_unsolicited (void *f, gpointer d)
{
RegTestData *data = (RegTestData *) d;
const char *reply = "\r\n+CGREG: 5,\"0502\",\"0404736D\",2\r\n";
- const CregResult result = { 5, 0x0502, 0x0404736D, MM_MODEM_ACCESS_TECHNOLOGY_UMTS, 5, TRUE, FALSE };
+ const CregResult result = { 5, 0x0502, 0x0404736D, MM_MODEM_ACCESS_TECHNOLOGY_UMTS, 6, TRUE, FALSE };
test_creg_match ("Sony-Ericsson MD400 CGREG=2", FALSE, reply, data, &result);
}
@@ -941,7 +981,7 @@ test_creg2_s8500_wave_unsolicited (void *f, gpointer d)
{
RegTestData *data = (RegTestData *) d;
const char *reply = "\r\n+CREG: 2,1,000B,2816, B, C2816\r\n";
- const CregResult result = { 1, 0x000B, 0x2816, MM_MODEM_ACCESS_TECHNOLOGY_GSM, 7, FALSE, FALSE };
+ const CregResult result = { 1, 0x000B, 0x2816, MM_MODEM_ACCESS_TECHNOLOGY_GSM, 9, FALSE, FALSE };
test_creg_match ("Samsung Wave S8500 CREG=2", FALSE, reply, data, &result);
}
@@ -961,7 +1001,7 @@ test_cgreg2_unsolicited_with_rac (void *f, gpointer d)
{
RegTestData *data = (RegTestData *) d;
const char *reply = "\r\n+CGREG: 1,\"1422\",\"00000142\",3,\"00\"\r\n";
- const CregResult result = { 1, 0x1422, 0x0142, MM_MODEM_ACCESS_TECHNOLOGY_EDGE, 8, TRUE, FALSE };
+ const CregResult result = { 1, 0x1422, 0x0142, MM_MODEM_ACCESS_TECHNOLOGY_EDGE, 10, TRUE, FALSE };
test_creg_match ("CGREG=2 with RAC", FALSE, reply, data, &result);
}
@@ -991,7 +1031,7 @@ test_cereg2_solicited (void *f, gpointer d)
{
RegTestData *data = (RegTestData *) d;
const char *reply = "\r\n+CEREG: 2,1, 1F00, 79D903 ,7\r\n";
- const CregResult result = { 1, 0x1F00, 0x79D903, MM_MODEM_ACCESS_TECHNOLOGY_LTE, 6, FALSE, TRUE };
+ const CregResult result = { 1, 0x1F00, 0x79D903, MM_MODEM_ACCESS_TECHNOLOGY_LTE, 8, FALSE, TRUE };
test_creg_match ("CEREG=2", TRUE, reply, data, &result);
}
@@ -1001,17 +1041,37 @@ test_cereg2_unsolicited (void *f, gpointer d)
{
RegTestData *data = (RegTestData *) d;
const char *reply = "\r\n+CEREG: 1, 1F00, 79D903 ,7\r\n";
- const CregResult result = { 1, 0x1F00, 0x79D903, MM_MODEM_ACCESS_TECHNOLOGY_LTE, 5, FALSE, TRUE };
+ const CregResult result = { 1, 0x1F00, 0x79D903, MM_MODEM_ACCESS_TECHNOLOGY_LTE, 6, FALSE, TRUE };
test_creg_match ("CEREG=2", FALSE, reply, data, &result);
}
static void
+test_cereg2_altair_lte_solicited (void *f, gpointer d)
+{
+ RegTestData *data = (RegTestData *) d;
+ const char *reply = "\r\n+CEREG: 1, 2, 0001, 00000100, 7\r\n";
+ const CregResult result = { 2, 0x0001, 0x00000100, MM_MODEM_ACCESS_TECHNOLOGY_LTE, 8, FALSE, TRUE };
+
+ test_creg_match ("Altair LTE CEREG=2", FALSE, reply, data, &result);
+}
+
+static void
+test_cereg2_altair_lte_unsolicited (void *f, gpointer d)
+{
+ RegTestData *data = (RegTestData *) d;
+ const char *reply = "\r\n+CEREG: 2, 0001, 00000100, 7\r\n";
+ const CregResult result = { 2, 0x0001, 0x00000100, MM_MODEM_ACCESS_TECHNOLOGY_LTE, 6, FALSE, TRUE };
+
+ test_creg_match ("Altair LTE CEREG=2", FALSE, reply, data, &result);
+}
+
+static void
test_cereg2_novatel_lte_solicited (void *f, gpointer d)
{
RegTestData *data = (RegTestData *) d;
const char *reply = "\r\n+CEREG: 2,1, 1F00, 20 ,79D903 ,7\r\n";
- const CregResult result = { 1, 0x1F00, 0x79D903, MM_MODEM_ACCESS_TECHNOLOGY_LTE, 10, FALSE, TRUE };
+ const CregResult result = { 1, 0x1F00, 0x79D903, MM_MODEM_ACCESS_TECHNOLOGY_LTE, 12, FALSE, TRUE };
test_creg_match ("Novatel LTE E362 CEREG=2", TRUE, reply, data, &result);
}
@@ -1021,7 +1081,7 @@ test_cereg2_novatel_lte_unsolicited (void *f, gpointer d)
{
RegTestData *data = (RegTestData *) d;
const char *reply = "\r\n+CEREG: 1, 1F00, 20 ,79D903 ,7\r\n";
- const CregResult result = { 1, 0x1F00, 0x79D903, MM_MODEM_ACCESS_TECHNOLOGY_LTE, 9, FALSE, TRUE };
+ const CregResult result = { 1, 0x1F00, 0x79D903, MM_MODEM_ACCESS_TECHNOLOGY_LTE, 11, FALSE, TRUE };
test_creg_match ("Novatel LTE E362 CEREG=2", FALSE, reply, data, &result);
}
@@ -1463,6 +1523,105 @@ test_cind_response_moto_v3m (void *f, gpointer d)
}
/*****************************************************************************/
+/* Test ICCID parsing */
+
+static void
+test_iccid_parse_quoted_swap_19_digit (void *f, gpointer d)
+{
+ const char *raw_iccid = "\"984402003576012594F9\"";
+ const char *expected = "8944200053671052499";
+ char *parsed;
+ GError *error = NULL;
+
+ parsed = mm_3gpp_parse_iccid (raw_iccid, &error);
+ g_assert_no_error (error);
+ g_assert_cmpstr (parsed, ==, expected);
+}
+
+static void
+test_iccid_parse_unquoted_swap_20_digit (void *f, gpointer d)
+{
+ const char *raw_iccid = "98231420326409614067";
+ const char *expected = "89324102234690160476";
+ char *parsed;
+ GError *error = NULL;
+
+ parsed = mm_3gpp_parse_iccid (raw_iccid, &error);
+ g_assert_no_error (error);
+ g_assert_cmpstr (parsed, ==, expected);
+}
+
+static void
+test_iccid_parse_unquoted_unswapped_19_digit (void *f, gpointer d)
+{
+ const char *raw_iccid = "8944200053671052499F";
+ const char *expected = "8944200053671052499";
+ char *parsed;
+ GError *error = NULL;
+
+ parsed = mm_3gpp_parse_iccid (raw_iccid, &error);
+ g_assert_no_error (error);
+ g_assert_cmpstr (parsed, ==, expected);
+}
+
+static void
+test_iccid_parse_quoted_unswapped_20_digit (void *f, gpointer d)
+{
+ const char *raw_iccid = "\"89324102234690160476\"";
+ const char *expected = "89324102234690160476";
+ char *parsed;
+ GError *error = NULL;
+
+ parsed = mm_3gpp_parse_iccid (raw_iccid, &error);
+ g_assert_no_error (error);
+ g_assert_cmpstr (parsed, ==, expected);
+}
+
+static void
+test_iccid_parse_short (void *f, gpointer d)
+{
+ const char *raw_iccid = "982314203264096";
+ char *parsed;
+ GError *error = NULL;
+
+ parsed = mm_3gpp_parse_iccid (raw_iccid, &error);
+ g_assert_error (error, MM_CORE_ERROR, MM_CORE_ERROR_FAILED);
+}
+
+static void
+test_iccid_parse_invalid_chars (void *f, gpointer d)
+{
+ const char *raw_iccid = "98231420326ab9614067";
+ char *parsed;
+ GError *error = NULL;
+
+ parsed = mm_3gpp_parse_iccid (raw_iccid, &error);
+ g_assert_error (error, MM_CORE_ERROR, MM_CORE_ERROR_FAILED);
+}
+
+static void
+test_iccid_parse_quoted_invalid_mii (void *f, gpointer d)
+{
+ const char *raw_iccid = "\"0044200053671052499\"";
+ char *parsed;
+ GError *error = NULL;
+
+ parsed = mm_3gpp_parse_iccid (raw_iccid, &error);
+ g_assert_error (error, MM_CORE_ERROR, MM_CORE_ERROR_FAILED);
+}
+
+static void
+test_iccid_parse_unquoted_invalid_mii (void *f, gpointer d)
+{
+ const char *raw_iccid = "0044200053671052499";
+ char *parsed;
+ GError *error = NULL;
+
+ parsed = mm_3gpp_parse_iccid (raw_iccid, &error);
+ g_assert_error (error, MM_CORE_ERROR, MM_CORE_ERROR_FAILED);
+}
+
+/*****************************************************************************/
/* Test CGDCONT test responses */
static void
@@ -1548,6 +1707,20 @@ test_cgdcont_test_response_multiple_and_ignore (void *f, gpointer d)
test_cgdcont_test_results ("Multiple and Ignore", reply, &expected[0], G_N_ELEMENTS (expected));
}
+static void
+test_cgdcont_test_response_single_context (void *f, gpointer d)
+{
+ const gchar *reply =
+ "+CGDCONT: (1),\"IP\",,,(0),(0)\r\n"
+ "+CGDCONT: (1),\"IPV6\",,,(0),(0)\r\n";
+ static MM3gppPdpContextFormat expected[] = {
+ { 1, 1, MM_BEARER_IP_FAMILY_IPV4 },
+ { 1, 1, MM_BEARER_IP_FAMILY_IPV6 }
+ };
+
+ test_cgdcont_test_results ("Single Context", reply, &expected[0], G_N_ELEMENTS (expected));
+}
+
/*****************************************************************************/
/* Test CGDCONT read responses */
@@ -2158,7 +2331,17 @@ _mm_log (const char *loc,
const char *fmt,
...)
{
+#if defined ENABLE_TEST_MESSAGE_TRACES
/* Dummy log function */
+ va_list args;
+ gchar *msg;
+
+ va_start (args, fmt);
+ msg = g_strdup_vprintf (fmt, args);
+ va_end (args);
+ g_print ("%s\n", msg);
+ g_free (msg);
+#endif
}
#define TESTCASE(t, d) g_test_create_case (#t, 0, d, NULL, (GTestFixtureFunc) t, NULL)
@@ -2222,6 +2405,10 @@ int main (int argc, char **argv)
g_test_suite_add (suite, TESTCASE (test_creg2_s8500_wave_unsolicited, reg_data));
g_test_suite_add (suite, TESTCASE (test_creg2_gobi_weird_solicited, reg_data));
g_test_suite_add (suite, TESTCASE (test_creg2_iridium_solicited, reg_data));
+ g_test_suite_add (suite, TESTCASE (test_creg2_no_leading_zeros_solicited, reg_data));
+ g_test_suite_add (suite, TESTCASE (test_creg2_leading_zeros_solicited, reg_data));
+ g_test_suite_add (suite, TESTCASE (test_creg2_no_leading_zeros_unsolicited, reg_data));
+ g_test_suite_add (suite, TESTCASE (test_creg2_leading_zeros_unsolicited, reg_data));
g_test_suite_add (suite, TESTCASE (test_cgreg1_solicited, reg_data));
g_test_suite_add (suite, TESTCASE (test_cgreg1_unsolicited, reg_data));
@@ -2235,6 +2422,8 @@ int main (int argc, char **argv)
g_test_suite_add (suite, TESTCASE (test_cereg1_unsolicited, reg_data));
g_test_suite_add (suite, TESTCASE (test_cereg2_solicited, reg_data));
g_test_suite_add (suite, TESTCASE (test_cereg2_unsolicited, reg_data));
+ g_test_suite_add (suite, TESTCASE (test_cereg2_altair_lte_solicited, reg_data));
+ g_test_suite_add (suite, TESTCASE (test_cereg2_altair_lte_unsolicited, reg_data));
g_test_suite_add (suite, TESTCASE (test_cereg2_novatel_lte_solicited, reg_data));
g_test_suite_add (suite, TESTCASE (test_cereg2_novatel_lte_unsolicited, reg_data));
@@ -2249,6 +2438,15 @@ int main (int argc, char **argv)
g_test_suite_add (suite, TESTCASE (test_cind_response_linktop_lw273, NULL));
g_test_suite_add (suite, TESTCASE (test_cind_response_moto_v3m, NULL));
+ g_test_suite_add (suite, TESTCASE (test_iccid_parse_quoted_swap_19_digit, NULL));
+ g_test_suite_add (suite, TESTCASE (test_iccid_parse_unquoted_swap_20_digit, NULL));
+ g_test_suite_add (suite, TESTCASE (test_iccid_parse_unquoted_unswapped_19_digit, NULL));
+ g_test_suite_add (suite, TESTCASE (test_iccid_parse_quoted_unswapped_20_digit, NULL));
+ g_test_suite_add (suite, TESTCASE (test_iccid_parse_short, NULL));
+ g_test_suite_add (suite, TESTCASE (test_iccid_parse_invalid_chars, NULL));
+ g_test_suite_add (suite, TESTCASE (test_iccid_parse_quoted_invalid_mii, NULL));
+ g_test_suite_add (suite, TESTCASE (test_iccid_parse_unquoted_invalid_mii, NULL));
+
while (item->devid) {
g_test_suite_add (suite, TESTCASE (test_devid_item, (gconstpointer) item));
item++;
@@ -2259,6 +2457,7 @@ int main (int argc, char **argv)
g_test_suite_add (suite, TESTCASE (test_cgdcont_test_response_single, NULL));
g_test_suite_add (suite, TESTCASE (test_cgdcont_test_response_multiple, NULL));
g_test_suite_add (suite, TESTCASE (test_cgdcont_test_response_multiple_and_ignore, NULL));
+ g_test_suite_add (suite, TESTCASE (test_cgdcont_test_response_single_context, NULL));
g_test_suite_add (suite, TESTCASE (test_cgdcont_read_response_nokia, NULL));
g_test_suite_add (suite, TESTCASE (test_cgdcont_read_response_samsung, NULL));
diff --git a/src/tests/test-qcdm-serial-port.c b/src/tests/test-qcdm-serial-port.c
index 1185838..1875cb5 100644
--- a/src/tests/test-qcdm-serial-port.c
+++ b/src/tests/test-qcdm-serial-port.c
@@ -451,7 +451,17 @@ _mm_log (const char *loc,
const char *fmt,
...)
{
+#if defined ENABLE_TEST_MESSAGE_TRACES
/* Dummy log function */
+ va_list args;
+ gchar *msg;
+
+ va_start (args, fmt);
+ msg = g_strdup_vprintf (fmt, args);
+ va_end (args);
+ g_print ("%s\n", msg);
+ g_free (msg);
+#endif
}
int main (int argc, char **argv)
diff --git a/src/tests/test-sms-part.c b/src/tests/test-sms-part-3gpp.c
index 33287e2..58de8a6 100644
--- a/src/tests/test-sms-part.c
+++ b/src/tests/test-sms-part-3gpp.c
@@ -23,7 +23,7 @@
#define _LIBMM_INSIDE_MM
#include <libmm-glib.h>
-#include "mm-sms-part.h"
+#include "mm-sms-part-3gpp.h"
#include "mm-log.h"
/* If defined will print debugging traces */
@@ -58,7 +58,7 @@ common_test_part_from_hexpdu (const gchar *hexpdu,
MMSmsPart *part;
GError *error = NULL;
- part = mm_sms_part_new_from_pdu (0, hexpdu, &error);
+ part = mm_sms_part_3gpp_new_from_pdu (0, hexpdu, &error);
g_assert_no_error (error);
g_assert (part != NULL);
@@ -356,7 +356,7 @@ test_pdu_insufficient_data (void)
};
hexpdu = mm_utils_bin2hexstr (pdu, sizeof (pdu));
- part = mm_sms_part_new_from_pdu (0, hexpdu, &error);
+ part = mm_sms_part_3gpp_new_from_pdu (0, hexpdu, &error);
g_assert (part == NULL);
/* We don't care for the specific error type */
g_assert (error != NULL);
@@ -464,7 +464,7 @@ common_test_address_encode (const gchar *address,
guint8 buf[20];
gsize enclen;
- enclen = mm_sms_part_encode_address (address, buf, sizeof (buf), smsc);
+ enclen = mm_sms_part_3gpp_encode_address (address, buf, sizeof (buf), smsc);
g_assert_cmpuint (enclen, ==, expected_size);
g_assert_cmpint (memcmp (buf, expected, expected_size), ==, 0);
}
@@ -531,7 +531,7 @@ common_test_create_pdu (const gchar *smsc,
MMSmsEncoding encoding = MM_SMS_ENCODING_UNKNOWN;
/* Detect best encoding */
- mm_sms_part_util_split_text (text, &encoding);
+ mm_sms_part_3gpp_util_split_text (text, &encoding);
mm_sms_part_set_text (part, text);
mm_sms_part_set_encoding (part, encoding);
}
@@ -540,10 +540,10 @@ common_test_create_pdu (const gchar *smsc,
if (class >= 0)
mm_sms_part_set_class (part, class);
- pdu = mm_sms_part_get_submit_pdu (part,
- &len,
- &msgstart,
- &error);
+ pdu = mm_sms_part_3gpp_get_submit_pdu (part,
+ &len,
+ &msgstart,
+ &error);
trace_pdu (pdu, len);
@@ -716,7 +716,7 @@ common_test_text_split (const gchar *text,
MMSmsEncoding out_encoding = MM_SMS_ENCODING_UNKNOWN;
guint i;
- out = mm_sms_part_util_split_text (text, &out_encoding);
+ out = mm_sms_part_3gpp_util_split_text (text, &out_encoding);
g_assert (out != NULL);
g_assert (out_encoding != MM_SMS_ENCODING_UNKNOWN);
@@ -862,39 +862,39 @@ int main (int argc, char **argv)
g_type_init ();
g_test_init (&argc, &argv, NULL);
- g_test_add_func ("/MM/SMS/PDU-Parser/pdu1", test_pdu1);
- g_test_add_func ("/MM/SMS/PDU-Parser/pdu2", test_pdu2);
- g_test_add_func ("/MM/SMS/PDU-Parser/pdu3", test_pdu3);
- g_test_add_func ("/MM/SMS/PDU-Parser/pdu3-nonzero-pid", test_pdu3_nzpid);
- g_test_add_func ("/MM/SMS/PDU-Parser/pdu3-mms", test_pdu3_mms);
- g_test_add_func ("/MM/SMS/PDU-Parser/pdu3-natl", test_pdu3_natl);
- g_test_add_func ("/MM/SMS/PDU-Parser/pdu3-8bit", test_pdu3_8bit);
- g_test_add_func ("/MM/SMS/PDU-Parser/pdu-dcsf1", test_pdu_dcsf1);
- g_test_add_func ("/MM/SMS/PDU-Parser/pdu-dcsf-8bit", test_pdu_dcsf_8bit);
- g_test_add_func ("/MM/SMS/PDU-Parser/pdu-insufficient-data", test_pdu_insufficient_data);
- g_test_add_func ("/MM/SMS/PDU-Parser/pdu-udhi", test_pdu_udhi);
- g_test_add_func ("/MM/SMS/PDU-Parser/pdu-multipart", test_pdu_multipart);
- g_test_add_func ("/MM/SMS/PDU-Parser/pdu-stored-by-us", test_pdu_stored_by_us);
- g_test_add_func ("/MM/SMS/PDU-Parser/pdu-not-stored", test_pdu_not_stored);
-
- g_test_add_func ("/MM/SMS/Address-Encoder/smsc-intl", test_address_encode_smsc_intl);
- g_test_add_func ("/MM/SMS/Address-Encoder/smsc-unknown", test_address_encode_smsc_unknown);
- g_test_add_func ("/MM/SMS/Address-Encoder/intl", test_address_encode_intl);
- g_test_add_func ("/MM/SMS/Address-Encoder/unknown", test_address_encode_unknown);
-
- g_test_add_func ("/MM/SMS/PDU-Creator/UCS2-with-smsc", test_create_pdu_ucs2_with_smsc);
- g_test_add_func ("/MM/SMS/PDU-Creator/UCS2-no-smsc", test_create_pdu_ucs2_no_smsc);
- g_test_add_func ("/MM/SMS/PDU-Creator/GSM-with-smsc", test_create_pdu_gsm_with_smsc);
- g_test_add_func ("/MM/SMS/PDU-Creator/GSM-no-smsc", test_create_pdu_gsm_no_smsc);
- g_test_add_func ("/MM/SMS/PDU-Creator/GSM-3", test_create_pdu_gsm_3);
- g_test_add_func ("/MM/SMS/PDU-Creator/GSM-no-validity", test_create_pdu_gsm_no_validity);
-
- g_test_add_func ("/MM/SMS/Text-Split/short", test_text_split_short);
- g_test_add_func ("/MM/SMS/Text-Split/short-UCS2", test_text_split_short_ucs2);
- g_test_add_func ("/MM/SMS/Text-Split/max-single-pdu", test_text_split_max_single_pdu);
- g_test_add_func ("/MM/SMS/Text-Split/max-single-pdu-UCS2", test_text_split_max_single_pdu_ucs2);
- g_test_add_func ("/MM/SMS/Text-Split/two-pdu", test_text_split_two_pdu);
- g_test_add_func ("/MM/SMS/Text-Split/two-pdu-UCS2", test_text_split_two_pdu_ucs2);
+ g_test_add_func ("/MM/SMS/3GPP/PDU-Parser/pdu1", test_pdu1);
+ g_test_add_func ("/MM/SMS/3GPP/PDU-Parser/pdu2", test_pdu2);
+ g_test_add_func ("/MM/SMS/3GPP/PDU-Parser/pdu3", test_pdu3);
+ g_test_add_func ("/MM/SMS/3GPP/PDU-Parser/pdu3-nonzero-pid", test_pdu3_nzpid);
+ g_test_add_func ("/MM/SMS/3GPP/PDU-Parser/pdu3-mms", test_pdu3_mms);
+ g_test_add_func ("/MM/SMS/3GPP/PDU-Parser/pdu3-natl", test_pdu3_natl);
+ g_test_add_func ("/MM/SMS/3GPP/PDU-Parser/pdu3-8bit", test_pdu3_8bit);
+ g_test_add_func ("/MM/SMS/3GPP/PDU-Parser/pdu-dcsf1", test_pdu_dcsf1);
+ g_test_add_func ("/MM/SMS/3GPP/PDU-Parser/pdu-dcsf-8bit", test_pdu_dcsf_8bit);
+ g_test_add_func ("/MM/SMS/3GPP/PDU-Parser/pdu-insufficient-data", test_pdu_insufficient_data);
+ g_test_add_func ("/MM/SMS/3GPP/PDU-Parser/pdu-udhi", test_pdu_udhi);
+ g_test_add_func ("/MM/SMS/3GPP/PDU-Parser/pdu-multipart", test_pdu_multipart);
+ g_test_add_func ("/MM/SMS/3GPP/PDU-Parser/pdu-stored-by-us", test_pdu_stored_by_us);
+ g_test_add_func ("/MM/SMS/3GPP/PDU-Parser/pdu-not-stored", test_pdu_not_stored);
+
+ g_test_add_func ("/MM/SMS/3GPP/Address-Encoder/smsc-intl", test_address_encode_smsc_intl);
+ g_test_add_func ("/MM/SMS/3GPP/Address-Encoder/smsc-unknown", test_address_encode_smsc_unknown);
+ g_test_add_func ("/MM/SMS/3GPP/Address-Encoder/intl", test_address_encode_intl);
+ g_test_add_func ("/MM/SMS/3GPP/Address-Encoder/unknown", test_address_encode_unknown);
+
+ g_test_add_func ("/MM/SMS/3GPP/PDU-Creator/UCS2-with-smsc", test_create_pdu_ucs2_with_smsc);
+ g_test_add_func ("/MM/SMS/3GPP/PDU-Creator/UCS2-no-smsc", test_create_pdu_ucs2_no_smsc);
+ g_test_add_func ("/MM/SMS/3GPP/PDU-Creator/GSM-with-smsc", test_create_pdu_gsm_with_smsc);
+ g_test_add_func ("/MM/SMS/3GPP/PDU-Creator/GSM-no-smsc", test_create_pdu_gsm_no_smsc);
+ g_test_add_func ("/MM/SMS/3GPP/PDU-Creator/GSM-3", test_create_pdu_gsm_3);
+ g_test_add_func ("/MM/SMS/3GPP/PDU-Creator/GSM-no-validity", test_create_pdu_gsm_no_validity);
+
+ g_test_add_func ("/MM/SMS/3GPP/Text-Split/short", test_text_split_short);
+ g_test_add_func ("/MM/SMS/3GPP/Text-Split/short-UCS2", test_text_split_short_ucs2);
+ g_test_add_func ("/MM/SMS/3GPP/Text-Split/max-single-pdu", test_text_split_max_single_pdu);
+ g_test_add_func ("/MM/SMS/3GPP/Text-Split/max-single-pdu-UCS2", test_text_split_max_single_pdu_ucs2);
+ g_test_add_func ("/MM/SMS/3GPP/Text-Split/two-pdu", test_text_split_two_pdu);
+ g_test_add_func ("/MM/SMS/3GPP/Text-Split/two-pdu-UCS2", test_text_split_two_pdu_ucs2);
return g_test_run ();
}
diff --git a/src/tests/test-sms-part-cdma.c b/src/tests/test-sms-part-cdma.c
new file mode 100644
index 0000000..644de8d
--- /dev/null
+++ b/src/tests/test-sms-part-cdma.c
@@ -0,0 +1,547 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details:
+ *
+ * Copyright (C) 2013 Google, Inc.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <string.h>
+#include <stdio.h>
+#include <locale.h>
+
+#define _LIBMM_INSIDE_MM
+#include <libmm-glib.h>
+
+#include "mm-sms-part-cdma.h"
+#include "mm-log.h"
+
+/* If defined will print debugging traces */
+#ifdef TEST_SMS_PART_ENABLE_TRACE
+#define trace_pdu(pdu, pdu_len) do { \
+ guint i; \
+ \
+ g_print ("\n "); \
+ for (i = 0; i < len; i++) { \
+ g_print (" 0x%02X", pdu[i]); \
+ if (((i + 1) % 12) == 0) \
+ g_print ("\n "); \
+ } \
+ g_print ("\n"); \
+ } while (0)
+#else
+#define trace_pdu(...)
+#endif
+
+/********************* PDU PARSER TESTS *********************/
+
+static void
+common_test_part_from_hexpdu (const gchar *hexpdu,
+ MMSmsCdmaTeleserviceId expected_teleservice_id,
+ MMSmsCdmaServiceCategory expected_service_category,
+ const gchar *expected_address,
+ guint8 expected_bearer_reply_option,
+ const gchar *expected_text)
+{
+ MMSmsPart *part;
+ GError *error = NULL;
+
+ mm_dbg (" ");
+ part = mm_sms_part_cdma_new_from_pdu (0, hexpdu, &error);
+ g_assert_no_error (error);
+ g_assert (part != NULL);
+
+ if (expected_teleservice_id != MM_SMS_CDMA_TELESERVICE_ID_UNKNOWN)
+ g_assert_cmpuint (expected_teleservice_id, ==, mm_sms_part_get_cdma_teleservice_id (part));
+ if (expected_service_category != MM_SMS_CDMA_SERVICE_CATEGORY_UNKNOWN)
+ g_assert_cmpuint (expected_service_category, ==, mm_sms_part_get_cdma_service_category (part));
+ if (expected_address) {
+ if (expected_address[0])
+ g_assert_cmpstr (expected_address, ==, mm_sms_part_get_number (part));
+ else
+ g_assert (mm_sms_part_get_number (part) == NULL);
+ }
+ if (expected_bearer_reply_option)
+ g_assert_cmpuint (expected_bearer_reply_option, ==, mm_sms_part_get_message_reference (part));
+ if (expected_text)
+ g_assert_cmpstr (expected_text, ==, mm_sms_part_get_text (part));
+
+ mm_sms_part_free (part);
+}
+
+static void
+common_test_part_from_pdu (const guint8 *pdu,
+ gsize pdu_size,
+ MMSmsCdmaTeleserviceId expected_teleservice_id,
+ MMSmsCdmaServiceCategory expected_service_category,
+ const gchar *expected_address,
+ guint8 expected_bearer_reply_option,
+ const gchar *expected_text)
+{
+ gchar *hexpdu;
+
+ hexpdu = mm_utils_bin2hexstr (pdu, pdu_size);
+ common_test_part_from_hexpdu (hexpdu,
+ expected_teleservice_id,
+ expected_service_category,
+ expected_address,
+ expected_bearer_reply_option,
+ expected_text);
+ g_free (hexpdu);
+}
+
+static void
+common_test_invalid_part_from_hexpdu (const gchar *hexpdu)
+{
+ MMSmsPart *part;
+ GError *error = NULL;
+
+ mm_dbg (" ");
+ part = mm_sms_part_cdma_new_from_pdu (0, hexpdu, &error);
+ g_assert (part == NULL);
+ /* We don't care for the specific error type */
+ g_assert (error != NULL);
+ g_error_free (error);
+}
+
+static void
+common_test_invalid_part_from_pdu (const guint8 *pdu,
+ gsize pdu_size)
+{
+ gchar *hexpdu;
+
+ hexpdu = mm_utils_bin2hexstr (pdu, pdu_size);
+ common_test_invalid_part_from_hexpdu (hexpdu);
+ g_free (hexpdu);
+}
+
+static void
+test_pdu1 (void)
+{
+ static const guint8 pdu[] = {
+ /* message type */
+ 0x00,
+ /* teleservice id */
+ 0x00, 0x02,
+ 0x10, 0x02,
+ /* originating address */
+ 0x02, 0x07,
+ 0x02, 0x8C, 0xE9, 0x5D, 0xCC, 0x65, 0x80,
+ /* bearer reply option */
+ 0x06, 0x01,
+ 0xFC,
+ /* bearer data */
+ 0x08, 0x15,
+ 0x00, 0x03, 0x16, 0x8D, 0x30, 0x01, 0x06,
+ 0x10, 0x24, 0x18, 0x30, 0x60, 0x80, 0x03,
+ 0x06, 0x10, 0x10, 0x04, 0x04, 0x48, 0x47
+ };
+
+ common_test_part_from_pdu (
+ pdu, sizeof (pdu),
+ MM_SMS_CDMA_TELESERVICE_ID_WMT,
+ MM_SMS_CDMA_SERVICE_CATEGORY_UNKNOWN,
+ "3305773196",
+ 63,
+ "AAAA");
+}
+
+static void
+test_invalid_parameter_length (void)
+{
+ static const guint8 pdu[] = {
+ /* message type */
+ 0x00,
+ /* teleservice id */
+ 0x00, 0x02,
+ 0x10, 0x02,
+ /* originating address */
+ 0x02, 0x07,
+ 0x02, 0x8C, 0xE9, 0x5D, 0xCC, 0x65, 0x80,
+ /* bearer reply option */
+ 0x06, 0x01,
+ 0xFC,
+ /* bearer data */
+ 0x08, 0x20, /* wrong parameter length! */
+ 0x00, 0x03, 0x16, 0x8D, 0x30, 0x01, 0x06,
+ 0x10, 0x24, 0x18, 0x30, 0x60, 0x80, 0x03,
+ 0x06, 0x10, 0x10, 0x04, 0x04, 0x48, 0x47
+ };
+
+ common_test_invalid_part_from_pdu (pdu, sizeof (pdu));
+}
+
+static void
+test_invalid_address_length (void)
+{
+ static const guint8 pdu[] = {
+ /* message type */
+ 0x00,
+ /* teleservice id */
+ 0x00, 0x02,
+ 0x10, 0x02,
+ /* originating address (wrong num_fields) */
+ 0x02, 0x07,
+ 0x03, 0x8C, 0xE9, 0x5D, 0xCC, 0x65, 0x80,
+ /* bearer reply option */
+ 0x06, 0x01,
+ 0xFC,
+ /* bearer data */
+ 0x08, 0x15,
+ 0x00, 0x03, 0x16, 0x8D, 0x30, 0x01, 0x06,
+ 0x10, 0x24, 0x18, 0x30, 0x60, 0x80, 0x03,
+ 0x06, 0x10, 0x10, 0x04, 0x04, 0x48, 0x47
+ };
+
+ common_test_part_from_pdu (
+ pdu, sizeof (pdu),
+ MM_SMS_CDMA_TELESERVICE_ID_WMT,
+ MM_SMS_CDMA_SERVICE_CATEGORY_UNKNOWN,
+ "",
+ 63,
+ NULL);
+}
+
+static void
+test_created_by_us (void)
+{
+ static const guint8 pdu[] = {
+ /* message type */
+ 0x00,
+ /* teleservice id */
+ 0x00, 0x02,
+ 0x10, 0x02,
+ /* destination address */
+ 0x04, 0x07,
+ 0x02, 0x8C, 0xE9, 0x5D, 0xCC, 0x65, 0x80,
+ /* bearer data */
+ 0x08, 0x0D,
+ 0x00, 0x03, 0x20, 0x00, 0x00, /* message id */
+ 0x01, 0x06, 0x10, 0x24, 0x18, 0x30, 0x60, 0x80 /* user_data */
+ };
+
+ common_test_part_from_pdu (
+ pdu, sizeof (pdu),
+ MM_SMS_CDMA_TELESERVICE_ID_WMT,
+ MM_SMS_CDMA_SERVICE_CATEGORY_UNKNOWN,
+ "3305773196",
+ 0,
+ "AAAA");
+}
+
+static void
+test_latin_encoding (void)
+{
+ static const guint8 pdu[] = {
+ /* message type */
+ 0x00,
+ /* teleservice id */
+ 0x00, 0x02,
+ 0x10, 0x02,
+ /* originating address */
+ 0x02, 0x07,
+ 0x02, 0x8C, 0xE9, 0x5D, 0xCC, 0x65, 0x80,
+ /* bearer reply option */
+ 0x06, 0x01,
+ 0xFC,
+ /* bearer data */
+ 0x08, 0x39,
+ /* message id */
+ 0x00, 0x03,
+ 0x13, 0x8D, 0x20,
+ /* user data */
+ 0x01, 0x27,
+ 0x41, 0x29, 0x19, 0x22, 0xE1, 0x19, 0x1A, 0xE1,
+ 0x1A, 0x01, 0x19, 0xA1, 0x19, 0xA1, 0xA9, 0xB1,
+ 0xB9, 0xE9, 0x53, 0x4B, 0x23, 0xAB, 0x53, 0x23,
+ 0xAB, 0x23, 0x2B, 0xAB, 0xAB, 0x2B, 0x23, 0xAB,
+ 0x53, 0x23, 0x2B, 0xAB, 0x53, 0xAB, 0x20,
+ /* message center timestamp */
+ 0x03, 0x06,
+ 0x13, 0x10, 0x23, 0x20, 0x06, 0x37,
+ /* priority indicator */
+ 0x08, 0x01,
+ 0x00
+ };
+
+ common_test_part_from_pdu (
+ pdu, sizeof (pdu),
+ MM_SMS_CDMA_TELESERVICE_ID_WMT,
+ MM_SMS_CDMA_SERVICE_CATEGORY_UNKNOWN,
+ "3305773196",
+ 63,
+ /* this is ASCII-7 but message uses latin encoding */
+ "#$\\##\\#@#4#4567=*idujdudeuuedujdeujud");
+}
+
+static void
+test_latin_encoding_2 (void)
+{
+ static const guint8 pdu[] = {
+ /* message type */
+ 0x00,
+ /* teleservice id */
+ 0x00, 0x02,
+ 0x10, 0x02,
+ /* originating address */
+ 0x02, 0x07,
+ 0x02, 0x8C, 0xE9, 0x5D, 0xCC, 0x65, 0x80,
+ /* bearer reply option */
+ 0x06, 0x01,
+ 0xFC,
+ /* bearer data */
+ 0x08, 0x1C,
+ /* message id */
+ 0x00, 0x03,
+ 0x13, 0x8D, 0x20,
+ /* user data */
+ 0x01, 0x0A,
+ 0x40, 0x42, 0x1B, 0x0B, 0x6B, 0x83, 0x2F, 0x9B,
+ 0x71, 0x08,
+ /* message center timestamp */
+ 0x03, 0x06,
+ 0x13, 0x10, 0x23, 0x20, 0x06, 0x37,
+ /* priority indicator */
+ 0x08, 0x01,
+ 0x00
+ };
+
+ common_test_part_from_pdu (
+ pdu, sizeof (pdu),
+ MM_SMS_CDMA_TELESERVICE_ID_WMT,
+ MM_SMS_CDMA_SERVICE_CATEGORY_UNKNOWN,
+ "3305773196",
+ 63,
+ /* this is latin and message uses latin encoding */
+ "Campeón!");
+}
+
+static void
+test_unicode_encoding (void)
+{
+ static const guint8 pdu[] = {
+ /* message type */
+ 0x00,
+ /* teleservice id */
+ 0x00, 0x02,
+ 0x10, 0x02,
+ /* originating address */
+ 0x02, 0x07,
+ 0x02, 0x8C, 0xE9, 0x5D, 0xCC, 0x65, 0x80,
+ /* bearer reply option */
+ 0x06, 0x01,
+ 0xFC,
+ /* bearer data */
+ 0x08, 0x28,
+ /* message id */
+ 0x00, 0x03,
+ 0x1B, 0x73, 0xF0,
+ /* user data */
+ 0x01, 0x16,
+ 0x20, 0x52, 0x71, 0x6A, 0xB8, 0x5A, 0xA7, 0x92,
+ 0xDB, 0xC3, 0x37, 0xC4, 0xB7, 0xDA, 0xDA, 0x82,
+ 0x98, 0xB4, 0x50, 0x42, 0x94, 0x18,
+ /* message center timestamp */
+ 0x03, 0x06,
+ 0x13, 0x10, 0x24, 0x10, 0x45, 0x28,
+ /* priority indicator */
+ 0x08, 0x01,
+ 0x00
+ };
+
+ common_test_part_from_pdu (
+ pdu, sizeof (pdu),
+ MM_SMS_CDMA_TELESERVICE_ID_WMT,
+ MM_SMS_CDMA_SERVICE_CATEGORY_UNKNOWN,
+ "3305773196",
+ 63,
+ "中國哲學書電子化計劃");
+}
+
+/********************* PDU CREATOR TESTS *********************/
+
+static void
+common_test_create_pdu (MMSmsCdmaTeleserviceId teleservice_id,
+ const gchar *number,
+ const gchar *text,
+ const guint8 *data,
+ gsize data_size,
+ const guint8 *expected,
+ gsize expected_size)
+{
+ MMSmsPart *part;
+ guint8 *pdu;
+ guint len = 0;
+ GError *error = NULL;
+
+ g_assert (number != NULL);
+
+ part = mm_sms_part_new (0, MM_SMS_PDU_TYPE_CDMA_SUBMIT);
+ mm_sms_part_set_cdma_teleservice_id (part, teleservice_id);
+ mm_sms_part_set_number (part, number);
+ if (text)
+ mm_sms_part_set_text (part, text);
+ else {
+ GByteArray *data_bytearray;
+
+ data_bytearray = g_byte_array_sized_new (data_size);
+ g_byte_array_append (data_bytearray, data, data_size);
+ mm_sms_part_take_data (part, data_bytearray);
+ }
+
+ pdu = mm_sms_part_cdma_get_submit_pdu (part, &len, &error);
+
+ trace_pdu (pdu, len);
+
+ g_assert_no_error (error);
+ g_assert (pdu != NULL);
+ g_assert_cmpuint (len, ==, expected_size);
+ g_assert_cmpint (memcmp (pdu, expected, len), ==, 0);
+
+ g_free (pdu);
+}
+
+static void
+test_create_pdu_text_ascii_encoding (void)
+{
+ static const char *number = "3305773196";
+ static const char *text = "AAAA";
+ static const guint8 expected[] = {
+ /* message type */
+ 0x00,
+ /* teleservice id */
+ 0x00, 0x02,
+ 0x10, 0x02,
+ /* destination address */
+ 0x04, 0x07,
+ 0x02, 0x8C, 0xE9, 0x5D, 0xCC, 0x65, 0x80,
+ /* bearer data */
+ 0x08, 0x0D,
+ 0x00, 0x03, 0x20, 0x00, 0x00, /* message id */
+ 0x01, 0x06, 0x10, 0x24, 0x18, 0x30, 0x60, 0x80 /* user_data */
+ };
+
+ common_test_create_pdu (MM_SMS_CDMA_TELESERVICE_ID_WMT,
+ number,
+ text,
+ NULL, 0,
+ expected, sizeof (expected));
+}
+
+static void
+test_create_pdu_text_latin_encoding (void)
+{
+ static const char *number = "3305773196";
+ static const char *text = "Campeón!";
+ static const guint8 expected[] = {
+ /* message type */
+ 0x00,
+ /* teleservice id */
+ 0x00, 0x02,
+ 0x10, 0x02,
+ /* destination address */
+ 0x04, 0x07,
+ 0x02, 0x8C, 0xE9, 0x5D, 0xCC, 0x65, 0x80,
+ /* bearer data */
+ 0x08, 0x11,
+ /* message id */
+ 0x00, 0x03,
+ 0x20, 0x00, 0x00,
+ /* user data */
+ 0x01, 0x0A,
+ 0x40, 0x42, 0x1B, 0x0B, 0x6B, 0x83, 0x2F, 0x9B,
+ 0x71, 0x08
+ };
+
+ common_test_create_pdu (MM_SMS_CDMA_TELESERVICE_ID_WMT,
+ number,
+ text,
+ NULL, 0,
+ expected, sizeof (expected));
+}
+
+static void
+test_create_pdu_text_unicode_encoding (void)
+{
+ static const char *number = "3305773196";
+ static const char *text = "中國哲學書電子化計劃";
+ static const guint8 expected[] = {
+ /* message type */
+ 0x00,
+ /* teleservice id */
+ 0x00, 0x02,
+ 0x10, 0x02,
+ /* destination address */
+ 0x04, 0x07,
+ 0x02, 0x8C, 0xE9, 0x5D, 0xCC, 0x65, 0x80,
+ /* bearer data */
+ 0x08, 0x1D,
+ /* message id */
+ 0x00, 0x03,
+ 0x20, 0x00, 0x00,
+ /* user data */
+ 0x01, 0x16,
+ 0x20, 0x52, 0x71, 0x6A, 0xB8, 0x5A, 0xA7, 0x92,
+ 0xDB, 0xC3, 0x37, 0xC4, 0xB7, 0xDA, 0xDA, 0x82,
+ 0x98, 0xB4, 0x50, 0x42, 0x94, 0x18
+ };
+
+ common_test_create_pdu (MM_SMS_CDMA_TELESERVICE_ID_WMT,
+ number,
+ text,
+ NULL, 0,
+ expected, sizeof (expected));
+}
+
+/************************************************************/
+
+void
+_mm_log (const char *loc,
+ const char *func,
+ guint32 level,
+ const char *fmt,
+ ...)
+{
+#if defined ENABLE_TEST_MESSAGE_TRACES
+ /* Dummy log function */
+ va_list args;
+ gchar *msg;
+
+ va_start (args, fmt);
+ msg = g_strdup_vprintf (fmt, args);
+ va_end (args);
+ g_print ("%s\n", msg);
+ g_free (msg);
+#endif
+}
+
+int main (int argc, char **argv)
+{
+ setlocale (LC_ALL, "");
+
+ g_type_init ();
+ g_test_init (&argc, &argv, NULL);
+
+ g_test_add_func ("/MM/SMS/CDMA/PDU-Parser/pdu1", test_pdu1);
+ g_test_add_func ("/MM/SMS/CDMA/PDU-Parser/invalid-parameter-length", test_invalid_parameter_length);
+ g_test_add_func ("/MM/SMS/CDMA/PDU-Parser/invalid-address-length", test_invalid_address_length);
+ g_test_add_func ("/MM/SMS/CDMA/PDU-Parser/created-by-us", test_created_by_us);
+ g_test_add_func ("/MM/SMS/CDMA/PDU-Parser/latin-encoding", test_latin_encoding);
+ g_test_add_func ("/MM/SMS/CDMA/PDU-Parser/latin-encoding-2", test_latin_encoding_2);
+ g_test_add_func ("/MM/SMS/CDMA/PDU-Parser/unicode-encoding", test_unicode_encoding);
+
+ g_test_add_func ("/MM/SMS/CDMA/PDU-Creator/ascii-encoding", test_create_pdu_text_ascii_encoding);
+ g_test_add_func ("/MM/SMS/CDMA/PDU-Creator/latin-encoding", test_create_pdu_text_latin_encoding);
+ g_test_add_func ("/MM/SMS/CDMA/PDU-Creator/unicode-encoding", test_create_pdu_text_unicode_encoding);
+
+ return g_test_run ();
+}
diff --git a/test/Makefile.in b/test/Makefile.in
index 180b6d6..3cc2574 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -86,12 +86,13 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \
$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
- $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
- $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/introspection.m4 \
+ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
@@ -227,6 +228,14 @@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
@@ -293,6 +302,9 @@ STRIP = @STRIP@
SYSTEMD_UNIT_DIR = @SYSTEMD_UNIT_DIR@
UDEV_BASE_DIR = @UDEV_BASE_DIR@
USE_NLS = @USE_NLS@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
diff --git a/uml290/Makefile.in b/uml290/Makefile.in
index 6b9dc7b..a9cd5fd 100644
--- a/uml290/Makefile.in
+++ b/uml290/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -86,12 +86,13 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \
$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
- $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
- $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/introspection.m4 \
+ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
@@ -227,6 +228,14 @@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
@@ -293,6 +302,9 @@ STRIP = @STRIP@
SYSTEMD_UNIT_DIR = @SYSTEMD_UNIT_DIR@
UDEV_BASE_DIR = @UDEV_BASE_DIR@
USE_NLS = @USE_NLS@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
diff --git a/vapi/Makefile.am b/vapi/Makefile.am
new file mode 100644
index 0000000..70c063b
--- /dev/null
+++ b/vapi/Makefile.am
@@ -0,0 +1,22 @@
+VAPIGEN_VAPIS = libmm-glib.vapi
+
+if ENABLE_VAPIGEN
+include $(VAPIGEN_MAKEFILE)
+
+libmm-glib.vapi: $(top_builddir)/libmm-glib/ModemManager-1.0.gir libmm-glib.deps ModemManager-1.0.metadata
+
+libmm_glib_vapi_METADATADIRS = $(srcdir)
+libmm_glib_vapi_FILES = $(top_builddir)/libmm-glib/ModemManager-1.0.gir
+libmm_glib_vapi_VAPIDIRS = $(builddir)
+libmm_glib_vapi_DEPS = gio-2.0
+
+vapidir = $(datadir)/vala/vapi
+vapi_DATA = $(VAPIGEN_VAPIS) $(VAPIGEN_VAPIS:.vapi=.deps)
+
+endif
+
+CLEANFILES = $(VAPIGEN_VAPIS)
+
+EXTRA_DIST = \
+ ModemManager-1.0.metadata \
+ libmm-glib.deps
diff --git a/vapi/Makefile.in b/vapi/Makefile.in
new file mode 100644
index 0000000..7910e96
--- /dev/null
+++ b/vapi/Makefile.in
@@ -0,0 +1,578 @@
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = vapi
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \
+ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
+ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/introspection.m4 \
+ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(vapidir)"
+DATA = $(vapi_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_SYS_DIR = @DBUS_SYS_DIR@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GREP = @GREP@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+GUDEV_CFLAGS = @GUDEV_CFLAGS@
+GUDEV_LIBS = @GUDEV_LIBS@
+HTML_DIR = @HTML_DIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBMM_GLIB_CFLAGS = @LIBMM_GLIB_CFLAGS@
+LIBMM_GLIB_LIBS = @LIBMM_GLIB_LIBS@
+LIBMM_LIBS = @LIBMM_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MBIM_CFLAGS = @MBIM_CFLAGS@
+MBIM_LIBS = @MBIM_LIBS@
+MKDIR_P = @MKDIR_P@
+MMCLI_CFLAGS = @MMCLI_CFLAGS@
+MMCLI_LIBS = @MMCLI_LIBS@
+MM_CFLAGS = @MM_CFLAGS@
+MM_DEFAULT_USER_POLICY = @MM_DEFAULT_USER_POLICY@
+MM_GLIB_LT_AGE = @MM_GLIB_LT_AGE@
+MM_GLIB_LT_CURRENT = @MM_GLIB_LT_CURRENT@
+MM_GLIB_LT_REVISION = @MM_GLIB_LT_REVISION@
+MM_LIBS = @MM_LIBS@
+MM_MAJOR_VERSION = @MM_MAJOR_VERSION@
+MM_MICRO_VERSION = @MM_MICRO_VERSION@
+MM_MINOR_VERSION = @MM_MINOR_VERSION@
+MM_VERSION = @MM_VERSION@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POLKIT_CFLAGS = @POLKIT_CFLAGS@
+POLKIT_LIBS = @POLKIT_LIBS@
+POSUB = @POSUB@
+QMI_CFLAGS = @QMI_CFLAGS@
+QMI_LIBS = @QMI_LIBS@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SYSTEMD_UNIT_DIR = @SYSTEMD_UNIT_DIR@
+UDEV_BASE_DIR = @UDEV_BASE_DIR@
+USE_NLS = @USE_NLS@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+VAPIGEN_VAPIS = libmm-glib.vapi
+@ENABLE_VAPIGEN_TRUE@libmm_glib_vapi_METADATADIRS = $(srcdir)
+@ENABLE_VAPIGEN_TRUE@libmm_glib_vapi_FILES = $(top_builddir)/libmm-glib/ModemManager-1.0.gir
+@ENABLE_VAPIGEN_TRUE@libmm_glib_vapi_VAPIDIRS = $(builddir)
+@ENABLE_VAPIGEN_TRUE@libmm_glib_vapi_DEPS = gio-2.0
+@ENABLE_VAPIGEN_TRUE@vapidir = $(datadir)/vala/vapi
+@ENABLE_VAPIGEN_TRUE@vapi_DATA = $(VAPIGEN_VAPIS) $(VAPIGEN_VAPIS:.vapi=.deps)
+CLEANFILES = $(VAPIGEN_VAPIS)
+EXTRA_DIST = \
+ ModemManager-1.0.metadata \
+ libmm-glib.deps
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu vapi/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu vapi/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-vapiDATA: $(vapi_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(vapi_DATA)'; test -n "$(vapidir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(vapidir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(vapidir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(vapidir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(vapidir)" || exit $$?; \
+ done
+
+uninstall-vapiDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(vapi_DATA)'; test -n "$(vapidir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(vapidir)'; $(am__uninstall_files_from_dir)
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(vapidir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-vapiDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-vapiDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ cscopelist-am ctags-am distclean distclean-generic \
+ distclean-libtool distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip install-vapiDATA installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am tags-am uninstall uninstall-am uninstall-vapiDATA
+
+
+@ENABLE_VAPIGEN_TRUE@include $(VAPIGEN_MAKEFILE)
+
+@ENABLE_VAPIGEN_TRUE@libmm-glib.vapi: $(top_builddir)/libmm-glib/ModemManager-1.0.gir libmm-glib.deps ModemManager-1.0.metadata
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/vapi/ModemManager-1.0.metadata b/vapi/ModemManager-1.0.metadata
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/vapi/ModemManager-1.0.metadata
diff --git a/vapi/libmm-glib.deps b/vapi/libmm-glib.deps
new file mode 100644
index 0000000..cd10dfd
--- /dev/null
+++ b/vapi/libmm-glib.deps
@@ -0,0 +1 @@
+gio-2.0