File indexing completed on 2024-04-14 03:57:22

0001 /*
0002     SPDX-FileCopyrightText: 2010 Lamarque Souza <lamarque@kde.org>
0003     SPDX-FileCopyrightText: 2013 Lukas Tinkl <ltinkl@redhat.com>
0004     SPDX-FileCopyrightText: 2013-2015 Jan Grulich <jgrulich@redhat.com>
0005 
0006     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0007 */
0008 
0009 #ifndef MODEMMANAGERQT_GENERIC_TYPES_H
0010 #define MODEMMANAGERQT_GENERIC_TYPES_H
0011 
0012 #include <ModemManager/ModemManager.h>
0013 #include <modemmanagerqt_export.h>
0014 
0015 #include <QDBusArgument>
0016 #include <QDBusObjectPath>
0017 #include <QMetaType>
0018 
0019 // Enums from ModemManager-enums.h which needs to be defined all the time,
0020 // because it's not possible to use MM_CHECK_VERSION for signals
0021 #if !MM_CHECK_VERSION(1, 2, 0)
0022 typedef enum { /*< underscore_name=mm_modem_3gpp_subscription_state >*/
0023                MM_MODEM_3GPP_SUBSCRIPTION_STATE_UNKNOWN = 0,
0024                MM_MODEM_3GPP_SUBSCRIPTION_STATE_UNPROVISIONED = 1,
0025                MM_MODEM_3GPP_SUBSCRIPTION_STATE_PROVISIONED = 2,
0026                MM_MODEM_3GPP_SUBSCRIPTION_STATE_OUT_OF_DATA = 3,
0027 } MMModem3gppSubscriptionState;
0028 
0029 typedef enum { /*< underscore_name=mm_sms_cdma_service_category >*/
0030                MM_SMS_CDMA_SERVICE_CATEGORY_UNKNOWN = 0x0000,
0031                MM_SMS_CDMA_SERVICE_CATEGORY_EMERGENCY_BROADCAST = 0x0001,
0032                MM_SMS_CDMA_SERVICE_CATEGORY_ADMINISTRATIVE = 0x0002,
0033                MM_SMS_CDMA_SERVICE_CATEGORY_MAINTENANCE = 0x0003,
0034                MM_SMS_CDMA_SERVICE_CATEGORY_GENERAL_NEWS_LOCAL = 0x0004,
0035                MM_SMS_CDMA_SERVICE_CATEGORY_GENERAL_NEWS_REGIONAL = 0x0005,
0036                MM_SMS_CDMA_SERVICE_CATEGORY_GENERAL_NEWS_NATIONAL = 0x0006,
0037                MM_SMS_CDMA_SERVICE_CATEGORY_GENERAL_NEWS_INTERNATIONAL = 0x0007,
0038                MM_SMS_CDMA_SERVICE_CATEGORY_BUSINESS_NEWS_LOCAL = 0x0008,
0039                MM_SMS_CDMA_SERVICE_CATEGORY_BUSINESS_NEWS_REGIONAL = 0x0009,
0040                MM_SMS_CDMA_SERVICE_CATEGORY_BUSINESS_NEWS_NATIONAL = 0x000A,
0041                MM_SMS_CDMA_SERVICE_CATEGORY_BUSINESS_NEWS_INTERNATIONAL = 0x000B,
0042                MM_SMS_CDMA_SERVICE_CATEGORY_SPORTS_NEWS_LOCAL = 0x000C,
0043                MM_SMS_CDMA_SERVICE_CATEGORY_SPORTS_NEWS_REGIONAL = 0x000D,
0044                MM_SMS_CDMA_SERVICE_CATEGORY_SPORTS_NEWS_NATIONAL = 0x000E,
0045                MM_SMS_CDMA_SERVICE_CATEGORY_SPORTS_NEWS_INTERNATIONAL = 0x000F,
0046                MM_SMS_CDMA_SERVICE_CATEGORY_ENTERTAINMENT_NEWS_LOCAL = 0x0010,
0047                MM_SMS_CDMA_SERVICE_CATEGORY_ENTERTAINMENT_NEWS_REGIONAL = 0x0011,
0048                MM_SMS_CDMA_SERVICE_CATEGORY_ENTERTAINMENT_NEWS_NATIONAL = 0x0012,
0049                MM_SMS_CDMA_SERVICE_CATEGORY_ENTERTAINMENT_NEWS_INTERNATIONAL = 0x0013,
0050                MM_SMS_CDMA_SERVICE_CATEGORY_LOCAL_WEATHER = 0x0014,
0051                MM_SMS_CDMA_SERVICE_CATEGORY_TRAFFIC_REPORT = 0x0015,
0052                MM_SMS_CDMA_SERVICE_CATEGORY_FLIGHT_SCHEDULES = 0x0016,
0053                MM_SMS_CDMA_SERVICE_CATEGORY_RESTAURANTS = 0x0017,
0054                MM_SMS_CDMA_SERVICE_CATEGORY_LODGINGS = 0x0018,
0055                MM_SMS_CDMA_SERVICE_CATEGORY_RETAIL_DIRECTORY = 0x0019,
0056                MM_SMS_CDMA_SERVICE_CATEGORY_ADVERTISEMENTS = 0x001A,
0057                MM_SMS_CDMA_SERVICE_CATEGORY_STOCK_QUOTES = 0x001B,
0058                MM_SMS_CDMA_SERVICE_CATEGORY_EMPLOYMENT = 0x001C,
0059                MM_SMS_CDMA_SERVICE_CATEGORY_HOSPITALS = 0x001D,
0060                MM_SMS_CDMA_SERVICE_CATEGORY_TECHNOLOGY_NEWS = 0x001E,
0061                MM_SMS_CDMA_SERVICE_CATEGORY_MULTICATEGORY = 0x001F,
0062                MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_PRESIDENTIAL_ALERT = 0x1000,
0063                MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_EXTREME_THREAT = 0x1001,
0064                MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_SEVERE_THREAT = 0x1002,
0065                MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_CHILD_ABDUCTION_EMERGENCY = 0x1003,
0066                MM_SMS_CDMA_SERVICE_CATEGORY_CMAS_TEST = 0x1004,
0067 } MMSmsCdmaServiceCategory;
0068 
0069 typedef enum { /*< underscore_name=mm_sms_cdma_teleservice_id >*/
0070                MM_SMS_CDMA_TELESERVICE_ID_UNKNOWN = 0x0000,
0071                MM_SMS_CDMA_TELESERVICE_ID_CMT91 = 0x1000,
0072                MM_SMS_CDMA_TELESERVICE_ID_WPT = 0x1001,
0073                MM_SMS_CDMA_TELESERVICE_ID_WMT = 0x1002,
0074                MM_SMS_CDMA_TELESERVICE_ID_VMN = 0x1003,
0075                MM_SMS_CDMA_TELESERVICE_ID_WAP = 0x1004,
0076                MM_SMS_CDMA_TELESERVICE_ID_WEMT = 0x1005,
0077                MM_SMS_CDMA_TELESERVICE_ID_SCPT = 0x1006,
0078                MM_SMS_CDMA_TELESERVICE_ID_CATPT = 0x1007,
0079 } MMSmsCdmaTeleserviceId;
0080 #endif
0081 
0082 namespace ModemManager
0083 {
0084 typedef QMap<QString, QVariantMap> MMVariantMapMap;
0085 typedef QMap<QDBusObjectPath, MMVariantMapMap> DBUSManagerStruct;
0086 typedef QList<uint> UIntList;
0087 typedef QList<QList<uint>> UIntListList;
0088 
0089 typedef struct {
0090     QString name;
0091     MMModemPortType type;
0092 } Port;
0093 typedef QList<Port> PortList;
0094 
0095 typedef struct {
0096     uint signal;
0097     bool recent;
0098 } SignalQualityPair;
0099 
0100 typedef struct {
0101     uint allowed; // bitfield
0102     MMModemMode preferred;
0103 } CurrentModesType;
0104 typedef QList<CurrentModesType> SupportedModesType;
0105 
0106 #if MM_CHECK_VERSION(1, 2, 0)
0107 typedef struct {
0108     MMOmaSessionType type;
0109     uint id;
0110 } OmaSessionType;
0111 typedef QList<OmaSessionType> OmaSessionTypes;
0112 #endif
0113 typedef QMap<MMModemLock, uint> UnlockRetriesMap;
0114 typedef QList<QVariantMap> QVariantMapList;
0115 typedef QMap<MMModemLocationSource, QVariant> LocationInformationMap;
0116 typedef struct {
0117     MMSmsValidityType validity;
0118     uint value;
0119 } ValidityPair;
0120 }
0121 
0122 // Flags
0123 Q_DECLARE_METATYPE(QFlags<MMModemAccessTechnology>)
0124 Q_DECLARE_METATYPE(QFlags<MMModemCapability>)
0125 Q_DECLARE_METATYPE(QFlags<MMModemMode>)
0126 Q_DECLARE_METATYPE(QFlags<MMBearerIpFamily>)
0127 Q_DECLARE_METATYPE(QFlags<MMModem3gppFacility>)
0128 Q_DECLARE_METATYPE(QFlags<MMModemLocationSource>)
0129 #if MM_CHECK_VERSION(1, 2, 0)
0130 Q_DECLARE_METATYPE(QFlags<MMOmaFeature>)
0131 #endif
0132 
0133 // ModemManager enums
0134 Q_DECLARE_METATYPE(QList<MMModemBand>)
0135 Q_DECLARE_METATYPE(QList<MMModemCapability>)
0136 Q_DECLARE_METATYPE(MMModemLock)
0137 Q_DECLARE_METATYPE(MMModemPowerState)
0138 Q_DECLARE_METATYPE(MMModemState)
0139 Q_DECLARE_METATYPE(MMModemStateChangeReason)
0140 Q_DECLARE_METATYPE(MMModemStateFailedReason)
0141 Q_DECLARE_METATYPE(MMModem3gppRegistrationState)
0142 #if MM_CHECK_VERSION(1, 2, 0)
0143 Q_DECLARE_METATYPE(MMModem3gppSubscriptionState)
0144 #endif
0145 Q_DECLARE_METATYPE(MMModem3gppUssdSessionState)
0146 Q_DECLARE_METATYPE(MMModemCdmaActivationState)
0147 Q_DECLARE_METATYPE(MMCdmaActivationError)
0148 Q_DECLARE_METATYPE(MMModemCdmaRegistrationState)
0149 Q_DECLARE_METATYPE(MMModemLocationSource)
0150 #if MM_CHECK_VERSION(1, 2, 0)
0151 Q_DECLARE_METATYPE(MMOmaSessionType)
0152 Q_DECLARE_METATYPE(MMOmaSessionState)
0153 Q_DECLARE_METATYPE(MMOmaSessionStateFailedReason)
0154 #endif
0155 Q_DECLARE_METATYPE(MMSmsDeliveryState)
0156 Q_DECLARE_METATYPE(MMSmsPduType)
0157 Q_DECLARE_METATYPE(MMSmsState)
0158 Q_DECLARE_METATYPE(MMSmsStorage)
0159 #if MM_CHECK_VERSION(1, 2, 0)
0160 Q_DECLARE_METATYPE(MMSmsCdmaServiceCategory)
0161 Q_DECLARE_METATYPE(MMSmsCdmaTeleserviceId)
0162 #endif
0163 #if MM_CHECK_VERSION(1, 6, 0)
0164 Q_DECLARE_METATYPE(MMCallState)
0165 Q_DECLARE_METATYPE(MMCallStateReason)
0166 Q_DECLARE_METATYPE(MMCallDirection)
0167 #endif
0168 #if MM_CHECK_VERSION(1, 20, 0)
0169 Q_DECLARE_METATYPE(MMSimType)
0170 Q_DECLARE_METATYPE(MMSimEsimStatus)
0171 Q_DECLARE_METATYPE(MMSimRemovability)
0172 #endif
0173 
0174 // Others
0175 Q_DECLARE_METATYPE(ModemManager::DBUSManagerStruct)
0176 Q_DECLARE_METATYPE(ModemManager::Port)
0177 Q_DECLARE_METATYPE(ModemManager::PortList)
0178 Q_DECLARE_METATYPE(ModemManager::SignalQualityPair)
0179 Q_DECLARE_METATYPE(ModemManager::CurrentModesType)
0180 Q_DECLARE_METATYPE(ModemManager::SupportedModesType)
0181 #if MM_CHECK_VERSION(1, 2, 0)
0182 Q_DECLARE_METATYPE(ModemManager::OmaSessionType)
0183 Q_DECLARE_METATYPE(ModemManager::OmaSessionTypes)
0184 #endif
0185 Q_DECLARE_METATYPE(ModemManager::UnlockRetriesMap)
0186 Q_DECLARE_METATYPE(ModemManager::LocationInformationMap)
0187 Q_DECLARE_METATYPE(ModemManager::ValidityPair)
0188 
0189 // Port
0190 MODEMMANAGERQT_EXPORT QDBusArgument &operator<<(QDBusArgument &arg, const ModemManager::Port &port);
0191 MODEMMANAGERQT_EXPORT const QDBusArgument &operator>>(const QDBusArgument &arg, ModemManager::Port &port);
0192 
0193 // CurrentModesType
0194 MODEMMANAGERQT_EXPORT QDBusArgument &operator<<(QDBusArgument &arg, const ModemManager::CurrentModesType &mode);
0195 MODEMMANAGERQT_EXPORT const QDBusArgument &operator>>(const QDBusArgument &arg, ModemManager::CurrentModesType &mode);
0196 
0197 // SignalQualityPair
0198 MODEMMANAGERQT_EXPORT QDBusArgument &operator<<(QDBusArgument &arg, const ModemManager::SignalQualityPair &sqp);
0199 MODEMMANAGERQT_EXPORT const QDBusArgument &operator>>(const QDBusArgument &arg, ModemManager::SignalQualityPair &sqp);
0200 
0201 // ValidityPair
0202 MODEMMANAGERQT_EXPORT QDBusArgument &operator<<(QDBusArgument &arg, const ModemManager::ValidityPair &vp);
0203 MODEMMANAGERQT_EXPORT const QDBusArgument &operator>>(const QDBusArgument &arg, ModemManager::ValidityPair &vp);
0204 
0205 #if MM_CHECK_VERSION(1, 2, 0)
0206 // OmaSessionType
0207 MODEMMANAGERQT_EXPORT QDBusArgument &operator<<(QDBusArgument &arg, const ModemManager::OmaSessionType &sessionType);
0208 MODEMMANAGERQT_EXPORT const QDBusArgument &operator>>(const QDBusArgument &arg, ModemManager::OmaSessionType &sessionType);
0209 #endif
0210 
0211 // UnlockRetriesMap
0212 MODEMMANAGERQT_EXPORT QDBusArgument &operator<<(QDBusArgument &argument, const ModemManager::UnlockRetriesMap &unlockRetriesMap);
0213 MODEMMANAGERQT_EXPORT const QDBusArgument &operator>>(const QDBusArgument &argument, ModemManager::UnlockRetriesMap &unlockRetriesMap);
0214 
0215 // QVariantMapList
0216 MODEMMANAGERQT_EXPORT QDBusArgument &operator<<(QDBusArgument &argument, const ModemManager::QVariantMapList &variantMapList);
0217 MODEMMANAGERQT_EXPORT const QDBusArgument &operator>>(const QDBusArgument &argument, ModemManager::QVariantMapList &variantMapList);
0218 
0219 // LocationInformationMap
0220 MODEMMANAGERQT_EXPORT QDBusArgument &operator<<(QDBusArgument &argument, const ModemManager::LocationInformationMap &locationMap);
0221 MODEMMANAGERQT_EXPORT const QDBusArgument &operator>>(const QDBusArgument &argument, ModemManager::LocationInformationMap &locationMap);
0222 
0223 MODEMMANAGERQT_EXPORT void registerModemManagerTypes();
0224 
0225 #endif // MODEMMANAGERQT_GENERIC_TYPES_P_H