File indexing completed on 2025-02-02 14:20:52
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 <QDBusObjectPath> 0016 #include <QObject> 0017 #include <QSharedPointer> 0018 0019 #include "bearer.h" 0020 #include "generictypes.h" 0021 #include "interface.h" 0022 #include "modem.h" 0023 #include "modemmessaging.h" 0024 #include "sim.h" 0025 0026 namespace ModemManager 0027 { 0028 class ModemDevicePrivate; 0029 0030 class MODEMMANAGERQT_EXPORT ModemDevice : public QObject 0031 { 0032 Q_OBJECT 0033 Q_DECLARE_PRIVATE(ModemDevice) 0034 0035 Q_PROPERTY(QString uni READ uni) 0036 public: 0037 typedef QSharedPointer<ModemDevice> Ptr; 0038 typedef QList<Ptr> List; 0039 0040 enum InterfaceType { 0041 ModemInterface, 0042 SimpleInterface, 0043 GsmInterface, 0044 GsmUssdInterface, 0045 CdmaInterface, 0046 MessagingInterface, 0047 LocationInterface, 0048 TimeInterface, 0049 FirmwareInterface, 0050 OmaInterface, 0051 SignalInterface, 0052 VoiceInterface, 0053 }; 0054 0055 explicit ModemDevice(const QString &path, QObject *parent = nullptr); 0056 ~ModemDevice() override; 0057 0058 QString uni() const; 0059 0060 bool hasInterface(InterfaceType type) const; 0061 ModemManager::Interface::List interfaces() const; 0062 ModemManager::Interface::Ptr interface(InterfaceType type) const; 0063 0064 ModemManager::ModemMessaging::Ptr messagingInterface(); 0065 ModemManager::Modem::Ptr modemInterface(); 0066 0067 ModemManager::Bearer::Ptr findBearer(const QString &uni); 0068 ModemManager::Bearer::List bearers() const; 0069 ModemManager::Sim::Ptr sim() const; 0070 0071 bool isGsmModem() const; 0072 bool isCdmaModem() const; 0073 0074 Q_SIGNALS: 0075 void simAdded(const QString &udi); 0076 void simRemoved(const QString &udi); 0077 0078 void bearerAdded(const QString &udi); // TODO emit these signals in the next version 0079 void bearerRemoved(const QString &udi); 0080 0081 void interfaceAdded(InterfaceType type); 0082 void interfaceRemoved(InterfaceType type); 0083 0084 protected: 0085 MODEMMANAGERQT_NO_EXPORT explicit ModemDevice(ModemDevicePrivate &dd, QObject *parent = nullptr); 0086 0087 private: 0088 ModemDevicePrivate *const d_ptr; 0089 }; 0090 } // namespace ModemManager 0091 0092 #endif