2
Copyright 2008 Will Stephenson <wstephenson@kde.org>
3
Copyright 2010 Lamarque Souza <lamarque@gmail.com>
5
This program is free software; you can redistribute it and/or
6
modify it under the terms of the GNU General Public License as
7
published by the Free Software Foundation; either version 2 of
8
the License or (at your option) version 3 or any later version
9
accepted by the membership of KDE e.V. (or its successor approved
10
by the membership of KDE e.V.), which shall act as a proxy
11
defined in Section 14 of version 3 of the license.
13
This program is distributed in the hope that it will be useful,
14
but WITHOUT ANY WARRANTY; without even the implied warranty of
15
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
GNU General Public License for more details.
18
You should have received a copy of the GNU General Public License
19
along with this program. If not, see <http://www.gnu.org/licenses/>.
25
#include "modeminterface.h"
26
#include "modeminterface_p.h"
28
MMModemInterfacePrivate::MMModemInterfacePrivate( const QString & path, QObject * owner ) : modemIface(MMModemManager::DBUS_SERVICE, path, QDBusConnection::systemBus()), modemSimpleIface(MMModemManager::DBUS_SERVICE, path, QDBusConnection::systemBus()), udi(path), manager(0)
33
MMModemInterfacePrivate::~MMModemInterfacePrivate()
38
MMModemInterface::MMModemInterface(const QString & path, MMModemManager * manager, QObject * parent) : QObject(parent), d_ptr(new MMModemInterfacePrivate(path, this))
40
Q_D(MMModemInterface);
45
MMModemInterface::MMModemInterface(MMModemInterfacePrivate & dd, MMModemManager * manager, QObject * parent) : QObject(parent), d_ptr(&dd)
47
Q_D(MMModemInterface);
52
MMModemInterface::~MMModemInterface()
57
void MMModemInterface::init()
59
Q_D(MMModemInterface);
60
d->device = d->modemIface.device();
61
d->masterDevice = d->modemIface.masterDevice();
62
d->driver = d->modemIface.driver();
63
d->type = (Solid::Control::ModemInterface::Type) d->modemIface.type();
64
d->enabled = d->modemIface.enabled();
65
d->unlockRequired = d->modemIface.unlockRequired();
66
d->ipMethod = (Solid::Control::ModemInterface::Method) d->modemIface.ipMethod();
68
d->modemIface.connection().connect(MMModemManager::DBUS_SERVICE,
69
d->udi, QLatin1String("org.freedesktop.DBus.Properties"),
70
QLatin1String("MmPropertiesChanged"), QLatin1String("sa{sv}"),
71
this, SLOT(propertiesChanged(const QString &,const QVariantMap &)));
74
QString MMModemInterface::udi() const
76
Q_D(const MMModemInterface);
81
/*** From org.freedesktop.ModemManager.Modem ***/
83
void MMModemInterface::enable(const bool enable)
85
Q_D(MMModemInterface);
86
d->modemIface.Enable(enable);
89
void MMModemInterface::connectModem(const QString & number)
91
Q_D(MMModemInterface);
92
d->modemIface.Connect(number);
95
void MMModemInterface::disconnectModem()
97
Q_D(MMModemInterface);
98
d->modemIface.Disconnect();
101
Solid::Control::ModemInterface::Ip4ConfigType MMModemInterface::getIp4Config()
103
Q_D(MMModemInterface);
104
QDBusReply<Ip4ConfigType> config = d->modemIface.GetIP4Config();
106
if (config.isValid()) {
107
return config.value();
110
return Ip4ConfigType();
113
Solid::Control::ModemInterface::InfoType MMModemInterface::getInfo()
115
Q_D(MMModemInterface);
116
QDBusReply<InfoType> info = d->modemIface.GetInfo();
118
if (info.isValid()) {
125
QString MMModemInterface::device() const
127
Q_D(const MMModemInterface);
131
QString MMModemInterface::masterDevice() const
133
Q_D(const MMModemInterface);
134
return d->masterDevice;
137
QString MMModemInterface::driver() const
139
Q_D(const MMModemInterface);
143
Solid::Control::ModemInterface::Type MMModemInterface::type() const
145
Q_D(const MMModemInterface);
149
bool MMModemInterface::enabled() const
151
Q_D(const MMModemInterface);
155
QString MMModemInterface::unlockRequired() const
157
Q_D(const MMModemInterface);
158
return d->unlockRequired;
161
Solid::Control::ModemInterface::Method MMModemInterface::ipMethod() const
163
Q_D(const MMModemInterface);
167
void MMModemInterface::propertiesChanged(const QString & interface, const QVariantMap & properties)
169
Q_D(MMModemInterface);
170
kDebug(1441) << interface << properties.keys();
172
if (interface == QString("org.freedesktop.ModemManager.Modem")) {
173
QLatin1String device("Device");
174
QLatin1String masterDevice("MasterDevice");
175
QLatin1String driver("Driver");
176
QLatin1String type("Type");
177
QLatin1String enabled("Enabled");
178
QLatin1String unlockRequired("UnlockRequired");
179
QLatin1String ipMethod("IpMethod");
181
QVariantMap::const_iterator it = properties.find(device);
182
if ( it != properties.end()) {
183
d->device = it->toString();
184
emit deviceChanged(d->device);
186
it = properties.find(masterDevice);
187
if ( it != properties.end()) {
188
d->masterDevice = it->toString();
189
emit masterDeviceChanged(d->masterDevice);
191
it = properties.find(driver);
192
if ( it != properties.end()) {
193
d->driver = it->toString();
194
emit driverChanged(d->driver);
196
it = properties.find(type);
197
if ( it != properties.end()) {
198
d->type = (Solid::Control::ModemInterface::Type) it->toInt();
199
emit typeChanged(d->type);
201
it = properties.find(enabled);
202
if ( it != properties.end()) {
203
d->enabled = it->toBool();
204
emit enabledChanged(d->enabled);
206
it = properties.find(unlockRequired);
207
if ( it != properties.end()) {
208
d->unlockRequired = it->toString();
209
emit unlockRequiredChanged(d->unlockRequired);
211
it = properties.find(ipMethod);
212
if ( it != properties.end()) {
213
d->ipMethod = (Solid::Control::ModemInterface::Method) it->toInt();
214
emit ipMethodChanged(d->ipMethod);
220
/*** From org.freedesktop.ModemManager.Modem.Simple ***/
222
void MMModemInterface::connectModem(const QVariantMap & properties)
224
Q_D(MMModemInterface);
225
d->modemSimpleIface.Connect(properties);
228
QVariantMap MMModemInterface::getStatus()
230
Q_D(MMModemInterface);
232
QDBusReply<QVariantMap> status = d->modemSimpleIface.GetStatus();
234
if (status.isValid()) {
235
return status.value();
238
return QVariantMap();
241
#include "modeminterface.moc"