File indexing completed on 2025-04-27 06:56:26
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