/* SPDX-FileCopyrightText: 2008, 2011 Will Stephenson SPDX-FileCopyrightText: 2010 Lamarque Souza SPDX-FileCopyrightText: 2013 Lukas Tinkl SPDX-FileCopyrightText: 2013-2015 Jan Grulich SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL */ #ifndef MODEMMANAGERQT_MODEM3GPP_H #define MODEMMANAGERQT_MODEM3GPP_H #include #include #include #include #include "generictypes.h" #include "interface.h" namespace ModemManager { class Modem3gppPrivate; /** * @brief The Modem3gpp class * * This class provides access to specific actions that may be performed in modems with 3GPP capabilities. */ class MODEMMANAGERQT_EXPORT Modem3gpp : public Interface { Q_OBJECT Q_DECLARE_PRIVATE(Modem3gpp) Q_FLAGS(MMModem3gppFacility) public: typedef QSharedPointer Ptr; typedef QList List; Q_DECLARE_FLAGS(FacilityLocks, MMModem3gppFacility) explicit Modem3gpp(const QString &path, QObject *parent = nullptr); ~Modem3gpp() override; /** * @return the IMEI of the device */ QString imei() const; /** * @return mobile registration status as defined in 3GPP TS 27.007 section 10.1.19 */ MMModem3gppRegistrationState registrationState() const; /** * @return code of the operator to which the mobile is currently registered. * * Returned in the format "MCCMNC", where MCC is the three-digit ITU E.212 * Mobile Country Code and MNC is the two- or three-digit GSM Mobile Network * Code. e.g. e"31026" or "310260". * * If the MCC and MNC are not known or the mobile is not registered to a * mobile network, this property will be an empty string. */ QString operatorCode() const; /** * @return name of the operator to which the mobile is currently registered. * * If the operator name is not known or the mobile is not registered to a * mobile network, this property will be an empty string. */ QString operatorName() const; /** * @return country code of the operator to which the mobile is currently registered. * * Returned in the format "ISO 3166-1 alpha-2" according to the MMC mapping from Wikipedia. * Country Code is the two-letter country codes defined in ISO 3166-1, part of the ISO 3166 standard, * e.g. "RU" or "FI". * * If the MCC is not known or the mobile is not registered to a * mobile network, this property will be an empty string. */ QString countryCode() const; /** * @return QFlags of MMModem3gppFacility values for which PIN locking is enabled */ FacilityLocks enabledFacilityLocks() const; #if MM_CHECK_VERSION(1, 2, 0) /** * @return Value representing the subscription status of the account and whether there is any data remaining. */ MMModem3gppSubscriptionState subscriptionState() const; #endif /** * Register the device to network. * * @param networkId The operator ID (ie, "MCCMNC", like "310260") to register. An empty string can be used to register to the home network. */ void registerToNetwork(const QString &networkId = QString()); /** * Scan for available networks. * * @return a QList with the results, where each map may contain these values: * * "status": A MMModem3gppNetworkAvailability value representing network * availability status, given as an unsigned integer (signature "u"). This * key will always be present. * * "operator-long": Long-format name of operator, given as a string value * (signature "s"). If the name is unknown, this field should not be present. * * "operator-short": Short-format name of operator, given as a string value * (signature "s"). If the name is unknown, this field should not be present. * * "operator-code": Mobile code of the operator, given as a string value * (signature "s"). Returned in the format "MCCMNC", where MCC is the * three-digit ITU E.212 Mobile Country Code and MNC is the two- or * three-digit GSM Mobile Network Code. e.g. "31026" or "310260". * * "access-technology": A MMModemAccessTechnology value representing the * generic access technology used by this mobile network, given as an * unsigned integer (signature "u"). */ QDBusPendingReply scan(); /** * Sets the timeout in milliseconds for all async method DBus calls. * -1 means the default DBus timeout (usually 25 seconds). */ void setTimeout(int timeout); /** * Returns the current value of the DBus timeout in milliseconds. * -1 means the default DBus timeout (usually 25 seconds). */ int timeout() const; Q_SIGNALS: void imeiChanged(const QString &imei); void registrationStateChanged(MMModem3gppRegistrationState registrationState); void operatorCodeChanged(const QString &operatorCode); void operatorNameChanged(const QString &operatorName); void countryCodeChanged(const QString &countryCode); void enabledFacilityLocksChanged(QFlags locks); void subscriptionStateChanged(MMModem3gppSubscriptionState subscriptionState); }; Q_DECLARE_OPERATORS_FOR_FLAGS(Modem3gpp::FacilityLocks) } // namespace ModemManager #endif