File indexing completed on 2025-03-23 06:52:22
0001 /* 0002 SPDX-FileCopyrightText: 2013, 2014 Lukas Tinkl <ltinkl@redhat.com> 0003 SPDX-FileCopyrightText: 2013-2015 Jan Grulich <jgrulich@redhat.com> 0004 0005 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0006 */ 0007 0008 #ifndef MODEMMANAGERQT_MODEMDEVICE_H 0009 #define MODEMMANAGERQT_MODEMDEVICE_H 0010 0011 #include <ModemManager/ModemManager.h> 0012 0013 #include <modemmanagerqt_export.h> 0014 0015 #include <QObject> 0016 #include <QSharedPointer> 0017 0018 #include "bearer.h" 0019 #include "generictypes.h" 0020 #include "interface.h" 0021 #include "modem.h" 0022 #include "modemmessaging.h" 0023 #include "sim.h" 0024 0025 namespace ModemManager 0026 { 0027 class ModemDevicePrivate; 0028 0029 class MODEMMANAGERQT_EXPORT ModemDevice : public QObject 0030 { 0031 Q_OBJECT 0032 Q_DECLARE_PRIVATE(ModemDevice) 0033 0034 Q_PROPERTY(QString uni READ uni) 0035 public: 0036 typedef QSharedPointer<ModemDevice> Ptr; 0037 typedef QList<Ptr> List; 0038 0039 enum InterfaceType { 0040 ModemInterface, 0041 SimpleInterface, 0042 GsmInterface, 0043 GsmUssdInterface, 0044 CdmaInterface, 0045 MessagingInterface, 0046 LocationInterface, 0047 TimeInterface, 0048 FirmwareInterface, 0049 OmaInterface, 0050 SignalInterface, 0051 VoiceInterface, 0052 }; 0053 0054 explicit ModemDevice(const QString &path, QObject *parent = nullptr); 0055 ~ModemDevice() override; 0056 0057 QString uni() const; 0058 0059 bool hasInterface(InterfaceType type) const; 0060 ModemManager::Interface::List interfaces() const; 0061 ModemManager::Interface::Ptr interface(InterfaceType type) const; 0062 0063 ModemManager::ModemMessaging::Ptr messagingInterface(); 0064 ModemManager::Modem::Ptr modemInterface(); 0065 0066 ModemManager::Bearer::Ptr findBearer(const QString &uni); 0067 ModemManager::Bearer::List bearers() const; 0068 ModemManager::Sim::Ptr sim() const; 0069 0070 bool isGsmModem() const; 0071 bool isCdmaModem() const; 0072 0073 Q_SIGNALS: 0074 void simAdded(const QString &udi); 0075 void simRemoved(const QString &udi); 0076 0077 void bearerAdded(const QString &udi); // TODO emit these signals in the next version 0078 void bearerRemoved(const QString &udi); 0079 0080 void interfaceAdded(InterfaceType type); 0081 void interfaceRemoved(InterfaceType type); 0082 0083 protected: 0084 MODEMMANAGERQT_NO_EXPORT explicit ModemDevice(ModemDevicePrivate &dd, QObject *parent = nullptr); 0085 0086 private: 0087 ModemDevicePrivate *const d_ptr; 0088 }; 0089 } // namespace ModemManager 0090 0091 #endif