1 /****************************************************************************
2 **
3 ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
4 ** Copyright (C) 2014 BlackBerry Limited. All rights reserved.
5 ** Contact: http://www.qt-project.org/legal
6 **
7 ** This file is part of the QtSystems module of the Qt Toolkit.
8 **
9 ** $QT_BEGIN_LICENSE:LGPL$
10 ** Commercial License Usage
11 ** Licensees holding valid commercial Qt licenses may use this file in
12 ** accordance with the commercial license agreement provided with the
13 ** Software or, alternatively, in accordance with the terms contained in
14 ** a written agreement between you and Digia. For licensing terms and
15 ** conditions see http://qt.digia.com/licensing. For further information
16 ** use the contact form at http://qt.digia.com/contact-us.
17 **
18 ** GNU Lesser General Public License Usage
19 ** Alternatively, this file may be used under the terms of the GNU Lesser
20 ** General Public License version 2.1 as published by the Free Software
21 ** Foundation and appearing in the file LICENSE.LGPL included in the
22 ** packaging of this file. Please review the following information to
23 ** ensure the GNU Lesser General Public License version 2.1 requirements
24 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
25 **
26 ** In addition, as a special exception, Digia gives you certain additional
27 ** rights. These rights are described in the Digia Qt LGPL Exception
28 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
29 **
30 ** GNU General Public License Usage
31 ** Alternatively, this file may be used under the terms of the GNU
32 ** General Public License version 3.0 as published by the Free Software
33 ** Foundation and appearing in the file LICENSE.GPL included in the
34 ** packaging of this file. Please review the following information to
35 ** ensure the GNU General Public License version 3.0 requirements will be
36 ** met: http://www.gnu.org/copyleft/gpl.html.
37 **
38 **
39 ** $QT_END_LICENSE$
40 **
41 ****************************************************************************/
42
43 #include "qsysteminfo_simulator_p.h"
44 #include "qsysteminfobackend_simulator_p.h"
45 #include "qsysteminfoconnection_simulator_p.h"
46
47 #if !defined(QT_NO_OFONO)
48 # include "qnetworkinfo_linux_p.h"
49 #endif
50
51 #include <QtCore/qmetaobject.h>
52
53 QT_BEGIN_NAMESPACE
54
55 // QBatteryInfoSimulator
56
QBatteryInfoSimulator(QBatteryInfo * parent)57 QBatteryInfoSimulator::QBatteryInfoSimulator(QBatteryInfo *parent)
58 : QObject(parent)
59 , q_ptr(parent)
60 , batteryInfoSimulatorBackend(QBatteryInfoSimulatorBackend::getSimulatorBackend())
61 {
62 SystemInfoConnection::ensureSimulatorConnection();
63 }
64
QBatteryInfoSimulator(int batteryIndex,QBatteryInfo * parent)65 QBatteryInfoSimulator::QBatteryInfoSimulator(int batteryIndex, QBatteryInfo *parent)
66 : QObject(parent)
67 , q_ptr(parent)
68 , batteryInfoSimulatorBackend(QBatteryInfoSimulatorBackend::getSimulatorBackend())
69 {
70 SystemInfoConnection::ensureSimulatorConnection();
71 setBatteryIndex(batteryIndex);
72 }
73
~QBatteryInfoSimulator()74 QBatteryInfoSimulator::~QBatteryInfoSimulator()
75 {
76 }
77
batteryCount()78 int QBatteryInfoSimulator::batteryCount()
79 {
80 if (batteryInfoSimulatorBackend)
81 return batteryInfoSimulatorBackend->getBatteryCount();
82
83 return -1;
84 }
85
batteryIndex() const86 int QBatteryInfoSimulator::batteryIndex() const
87 {
88 if (batteryInfoSimulatorBackend)
89 return batteryInfoSimulatorBackend->getBatteryIndex();
90
91 return -1;
92 }
93
isValid()94 bool QBatteryInfoSimulator::isValid()
95 {
96 // valid if the index < total count.
97 return (batteryIndex() >= 0) && (batteryIndex() < batteryCount());
98 }
99
setBatteryIndex(int batteryIndex)100 void QBatteryInfoSimulator::setBatteryIndex(int batteryIndex)
101 {
102 if (batteryInfoSimulatorBackend)
103 batteryInfoSimulatorBackend->setBatteryIndex(batteryIndex);
104 }
105
level()106 int QBatteryInfoSimulator::level()
107 {
108 if (batteryInfoSimulatorBackend)
109 return batteryInfoSimulatorBackend->getLevel(batteryInfoSimulatorBackend->getBatteryIndex());
110
111 return -1;
112 }
113
currentFlow(int battery)114 int QBatteryInfoSimulator::currentFlow(int battery)
115 {
116 if (batteryInfoSimulatorBackend)
117 return batteryInfoSimulatorBackend->getCurrentFlow(battery);
118
119 return 0;
120 }
121
currentFlow()122 int QBatteryInfoSimulator::currentFlow()
123 {
124 return currentFlow(batteryInfoSimulatorBackend->getBatteryIndex());
125 }
126
cycleCount()127 int QBatteryInfoSimulator::cycleCount()
128 {
129 if (batteryInfoSimulatorBackend)
130 return batteryInfoSimulatorBackend->getCycleCount(batteryInfoSimulatorBackend->getBatteryIndex());
131
132 return -1;
133 }
134
maximumCapacity(int battery)135 int QBatteryInfoSimulator::maximumCapacity(int battery)
136 {
137 if (batteryInfoSimulatorBackend)
138 return batteryInfoSimulatorBackend->getMaximumCapacity(battery);
139
140 return -1;
141 }
142
maximumCapacity()143 int QBatteryInfoSimulator::maximumCapacity()
144 {
145 return maximumCapacity(batteryInfoSimulatorBackend->getBatteryIndex());
146 }
147
remainingCapacity(int battery)148 int QBatteryInfoSimulator::remainingCapacity(int battery)
149 {
150 if (batteryInfoSimulatorBackend)
151 return batteryInfoSimulatorBackend->getRemainingCapacity(battery);
152
153 return -1;
154 }
155
remainingCapacity()156 int QBatteryInfoSimulator::remainingCapacity()
157 {
158 return remainingCapacity(batteryInfoSimulatorBackend->getBatteryIndex());
159 }
160
remainingChargingTime(int battery)161 int QBatteryInfoSimulator::remainingChargingTime(int battery)
162 {
163 if (batteryInfoSimulatorBackend)
164 return batteryInfoSimulatorBackend->getRemainingChargingTime(battery);
165
166 return -1;
167 }
168
remainingChargingTime()169 int QBatteryInfoSimulator::remainingChargingTime()
170 {
171 return remainingChargingTime(batteryInfoSimulatorBackend->getBatteryIndex());
172 }
173
voltage(int battery)174 int QBatteryInfoSimulator::voltage(int battery)
175 {
176 if (batteryInfoSimulatorBackend)
177 return batteryInfoSimulatorBackend->getVoltage(battery);
178
179 return -1;
180 }
181
voltage()182 int QBatteryInfoSimulator::voltage()
183 {
184 return voltage(batteryInfoSimulatorBackend->getBatteryIndex());
185 }
186
chargerType()187 QBatteryInfo::ChargerType QBatteryInfoSimulator::chargerType()
188 {
189 if (batteryInfoSimulatorBackend)
190 return batteryInfoSimulatorBackend->getChargerType();
191
192 return QBatteryInfo::UnknownCharger;
193 }
194
chargingState(int battery)195 QBatteryInfo::ChargingState QBatteryInfoSimulator::chargingState(int battery)
196 {
197 if (batteryInfoSimulatorBackend)
198 return batteryInfoSimulatorBackend->getChargingState(battery);
199
200 return QBatteryInfo::UnknownChargingState;
201 }
202
chargingState()203 QBatteryInfo::ChargingState QBatteryInfoSimulator::chargingState()
204 {
205 return chargingState(batteryInfoSimulatorBackend->getBatteryIndex());
206 }
207
levelStatus(int battery)208 QBatteryInfo::LevelStatus QBatteryInfoSimulator::levelStatus(int battery)
209 {
210 if (batteryInfoSimulatorBackend)
211 return batteryInfoSimulatorBackend->getLevelStatus(battery);
212
213 return QBatteryInfo::LevelUnknown;
214 }
215
levelStatus()216 QBatteryInfo::LevelStatus QBatteryInfoSimulator::levelStatus()
217 {
218 return levelStatus(batteryInfoSimulatorBackend->getBatteryIndex());
219 }
220
health()221 QBatteryInfo::Health QBatteryInfoSimulator::health()
222 {
223 if (batteryInfoSimulatorBackend)
224 return batteryInfoSimulatorBackend->getHealth(batteryInfoSimulatorBackend->getBatteryIndex());
225
226 return QBatteryInfo::HealthUnknown;
227 }
228
temperature()229 float QBatteryInfoSimulator::temperature()
230 {
231 if (batteryInfoSimulatorBackend)
232 return batteryInfoSimulatorBackend->getTemperature(batteryInfoSimulatorBackend->getBatteryIndex());
233
234 return -1.0f;
235 }
236
237 extern QMetaMethod proxyToSourceSignal(const QMetaMethod &, QObject *);
238
connectNotify(const QMetaMethod & signal)239 void QBatteryInfoSimulator::connectNotify(const QMetaMethod &signal)
240 {
241 static const QMetaMethod batteryCountChangedSignal = QMetaMethod::fromSignal(&QBatteryInfoSimulator::batteryCountChanged);
242 static const QMetaMethod chargerTypeChangedSignal = QMetaMethod::fromSignal(&QBatteryInfoSimulator::chargerTypeChanged);
243 static const QMetaMethod chargingStateChangedSignal = QMetaMethod::fromSignal(&QBatteryInfoSimulator::chargingStateChanged);
244 static const QMetaMethod currentFlowChangedSignal = QMetaMethod::fromSignal(&QBatteryInfoSimulator::currentFlowChanged);
245 static const QMetaMethod remainingCapacityChangedSignal = QMetaMethod::fromSignal(&QBatteryInfoSimulator::remainingCapacityChanged);
246 static const QMetaMethod remainingChargingTimeChangedSignal = QMetaMethod::fromSignal(&QBatteryInfoSimulator::remainingChargingTimeChanged);
247 static const QMetaMethod voltageChangedSignal = QMetaMethod::fromSignal(&QBatteryInfoSimulator::voltageChanged);
248 static const QMetaMethod levelStatusChangedSignal = QMetaMethod::fromSignal(&QBatteryInfoSimulator::levelStatusChanged);
249
250 if (batteryInfoSimulatorBackend && (signal == batteryCountChangedSignal
251 || signal == currentFlowChangedSignal
252 || signal == voltageChangedSignal
253 || signal == remainingCapacityChangedSignal
254 || signal == remainingChargingTimeChangedSignal
255 || signal == chargerTypeChangedSignal
256 || signal == chargingStateChangedSignal
257 || signal == levelStatusChangedSignal)) {
258 QMetaMethod sourceSignal = proxyToSourceSignal(signal, batteryInfoSimulatorBackend);
259 connect(batteryInfoSimulatorBackend, sourceSignal, this, signal);
260 }
261 }
262
disconnectNotify(const QMetaMethod & signal)263 void QBatteryInfoSimulator::disconnectNotify(const QMetaMethod &signal)
264 {
265 static const QMetaMethod batteryCountChangedSignal = QMetaMethod::fromSignal(&QBatteryInfoSimulator::batteryCountChanged);
266 static const QMetaMethod chargerTypeChangedSignal = QMetaMethod::fromSignal(&QBatteryInfoSimulator::chargerTypeChanged);
267 static const QMetaMethod chargingStateChangedSignal = QMetaMethod::fromSignal(&QBatteryInfoSimulator::chargingStateChanged);
268 static const QMetaMethod currentFlowChangedSignal = QMetaMethod::fromSignal(&QBatteryInfoSimulator::currentFlowChanged);
269 static const QMetaMethod remainingCapacityChangedSignal = QMetaMethod::fromSignal(&QBatteryInfoSimulator::remainingCapacityChanged);
270 static const QMetaMethod remainingChargingTimeChangedSignal = QMetaMethod::fromSignal(&QBatteryInfoSimulator::remainingChargingTimeChanged);
271 static const QMetaMethod voltageChangedSignal = QMetaMethod::fromSignal(&QBatteryInfoSimulator::voltageChanged);
272 static const QMetaMethod levelStatusChangedSignal = QMetaMethod::fromSignal(&QBatteryInfoSimulator::levelStatusChanged);
273
274 if (batteryInfoSimulatorBackend && (signal == batteryCountChangedSignal
275 || signal == currentFlowChangedSignal
276 || signal == voltageChangedSignal
277 || signal == remainingCapacityChangedSignal
278 || signal == remainingChargingTimeChangedSignal
279 || signal == chargerTypeChangedSignal
280 || signal == chargingStateChangedSignal
281 || signal == levelStatusChangedSignal)) {
282 QMetaMethod sourceSignal = proxyToSourceSignal(signal, batteryInfoSimulatorBackend);
283 disconnect(batteryInfoSimulatorBackend, sourceSignal, this, signal);
284 }
285 }
286
287
288 // QDeviceInfoSimulator
289
QDeviceInfoSimulator(QDeviceInfo * parent)290 QDeviceInfoSimulator::QDeviceInfoSimulator(QDeviceInfo *parent)
291 : QObject(parent)
292 , q_ptr(parent)
293 , deviceInfoSimulatorBackend(QDeviceInfoSimulatorBackend::getSimulatorBackend())
294 {
295 SystemInfoConnection::ensureSimulatorConnection();
296 }
297
~QDeviceInfoSimulator()298 QDeviceInfoSimulator::~QDeviceInfoSimulator()
299 {
300 }
301
hasFeature(QDeviceInfo::Feature feature)302 bool QDeviceInfoSimulator::hasFeature(QDeviceInfo::Feature feature)
303 {
304 if (deviceInfoSimulatorBackend)
305 return deviceInfoSimulatorBackend->hasFeature(feature);
306
307 return false;
308 }
309
activatedLocks()310 QDeviceInfo::LockTypeFlags QDeviceInfoSimulator::activatedLocks()
311 {
312 if (deviceInfoSimulatorBackend)
313 return deviceInfoSimulatorBackend->getActivatedLocks();
314
315 return QDeviceInfo::NoLock;
316 }
317
enabledLocks()318 QDeviceInfo::LockTypeFlags QDeviceInfoSimulator::enabledLocks()
319 {
320 if (deviceInfoSimulatorBackend)
321 return deviceInfoSimulatorBackend->getEnabledLocks();
322
323 return QDeviceInfo::NoLock;
324 }
325
thermalState()326 QDeviceInfo::ThermalState QDeviceInfoSimulator::thermalState()
327 {
328 if (deviceInfoSimulatorBackend)
329 return deviceInfoSimulatorBackend->getThermalState();
330
331 return QDeviceInfo::UnknownThermal;
332 }
333
imeiCount()334 int QDeviceInfoSimulator::imeiCount()
335 {
336 if (deviceInfoSimulatorBackend)
337 return deviceInfoSimulatorBackend->getImeiCount();
338
339 return -1;
340 }
341
imei(int interface)342 QString QDeviceInfoSimulator::imei(int interface)
343 {
344 if (deviceInfoSimulatorBackend)
345 return deviceInfoSimulatorBackend->getImei(interface);
346
347 return QString();
348 }
349
manufacturer()350 QString QDeviceInfoSimulator::manufacturer()
351 {
352 if (deviceInfoSimulatorBackend)
353 return deviceInfoSimulatorBackend->getManufacturer();
354
355 return QString();
356 }
357
model()358 QString QDeviceInfoSimulator::model()
359 {
360 if (deviceInfoSimulatorBackend)
361 return deviceInfoSimulatorBackend->getModel();
362
363 return QString();
364 }
365
productName()366 QString QDeviceInfoSimulator::productName()
367 {
368 if (deviceInfoSimulatorBackend)
369 return deviceInfoSimulatorBackend->getProductName();
370
371 return QString();
372 }
373
uniqueDeviceID()374 QString QDeviceInfoSimulator::uniqueDeviceID()
375 {
376 if (deviceInfoSimulatorBackend)
377 return deviceInfoSimulatorBackend->getUniqueDeviceID();
378
379 return QString();
380 }
381
version(QDeviceInfo::Version type)382 QString QDeviceInfoSimulator::version(QDeviceInfo::Version type)
383 {
384 if (deviceInfoSimulatorBackend)
385 return deviceInfoSimulatorBackend->getVersion(type);
386
387 return QString();
388 }
389
operatingSystemName()390 QString QDeviceInfoSimulator::operatingSystemName()
391 {
392 return QString();
393 }
394
boardName()395 QString QDeviceInfoSimulator::boardName()
396 {
397 return QString();
398 }
399
connectNotify(const QMetaMethod & signal)400 void QDeviceInfoSimulator::connectNotify(const QMetaMethod &signal)
401 {
402 static const QMetaMethod activatedLocksChangedSignal = QMetaMethod::fromSignal(&QDeviceInfoSimulator::activatedLocksChanged);
403 static const QMetaMethod enabledLocksChangedSignal = QMetaMethod::fromSignal(&QDeviceInfoSimulator::enabledLocksChanged);
404 static const QMetaMethod thermalStateChangedSignal = QMetaMethod::fromSignal(&QDeviceInfoSimulator::thermalStateChanged);
405
406 if (signal == activatedLocksChangedSignal || signal == enabledLocksChangedSignal) {
407 if (deviceInfoSimulatorBackend) {
408 QMetaMethod sourceSignal = proxyToSourceSignal(signal, deviceInfoSimulatorBackend);
409 connect(deviceInfoSimulatorBackend, sourceSignal, this, signal);
410 }
411 return;
412 }
413
414 if (deviceInfoSimulatorBackend && signal == thermalStateChangedSignal) {
415 QMetaMethod sourceSignal = proxyToSourceSignal(signal, deviceInfoSimulatorBackend);
416 connect(deviceInfoSimulatorBackend, sourceSignal, this, signal);
417 }
418 }
419
disconnectNotify(const QMetaMethod & signal)420 void QDeviceInfoSimulator::disconnectNotify(const QMetaMethod &signal)
421 {
422 static const QMetaMethod activatedLocksChangedSignal = QMetaMethod::fromSignal(&QDeviceInfoSimulator::activatedLocksChanged);
423 static const QMetaMethod enabledLocksChangedSignal = QMetaMethod::fromSignal(&QDeviceInfoSimulator::enabledLocksChanged);
424 static const QMetaMethod thermalStateChangedSignal = QMetaMethod::fromSignal(&QDeviceInfoSimulator::thermalStateChanged);
425
426 if (signal == activatedLocksChangedSignal || signal == enabledLocksChangedSignal) {
427 if (deviceInfoSimulatorBackend) {
428 QMetaMethod sourceSignal = proxyToSourceSignal(signal, deviceInfoSimulatorBackend);
429 disconnect(deviceInfoSimulatorBackend, sourceSignal, this, signal);
430 }
431 return;
432 }
433
434 if (deviceInfoSimulatorBackend && signal == thermalStateChangedSignal) {
435 QMetaMethod sourceSignal = proxyToSourceSignal(signal, deviceInfoSimulatorBackend);
436 disconnect(deviceInfoSimulatorBackend, sourceSignal, this, signal);
437 }
438 }
439
currentBluetoothPowerState()440 bool QDeviceInfoSimulator::currentBluetoothPowerState()
441 {
442 return false;
443 }
444
445 // QNetworkInfoSimulator
446
QNetworkInfoSimulator(QNetworkInfo * parent)447 QNetworkInfoSimulator::QNetworkInfoSimulator(QNetworkInfo *parent)
448 : QObject(parent)
449 , q_ptr(parent)
450 , networkInfoSimulatorBackend(QNetworkInfoSimulatorBackend::getSimulatorBackend())
451 #if !defined(QT_NO_OFONO)
452 , d_ptr(new QNetworkInfoPrivate())
453 #endif
454 {
455 SystemInfoConnection::ensureSimulatorConnection();
456 }
457
~QNetworkInfoSimulator()458 QNetworkInfoSimulator::~QNetworkInfoSimulator()
459 {
460 #if !defined(QT_NO_OFONO)
461 delete d_ptr;
462 #endif
463 }
464
networkInterfaceCount(QNetworkInfo::NetworkMode mode)465 int QNetworkInfoSimulator::networkInterfaceCount(QNetworkInfo::NetworkMode mode)
466 {
467 #if !defined(QT_NO_OFONO)
468 if (mode != QNetworkInfo::WlanMode) {
469 if (d_ptr)
470 return d_ptr->networkInterfaceCount(mode);
471 else
472 return -1;
473 }
474 #endif
475 if (networkInfoSimulatorBackend)
476 return networkInfoSimulatorBackend->getNetworkInterfaceCount(mode);
477 return -1;
478 }
479
networkSignalStrength(QNetworkInfo::NetworkMode mode,int interface)480 int QNetworkInfoSimulator::networkSignalStrength(QNetworkInfo::NetworkMode mode, int interface)
481 {
482 #if !defined(QT_NO_OFONO)
483 if (mode != QNetworkInfo::WlanMode) {
484 if (d_ptr)
485 return d_ptr->networkSignalStrength(mode, interface);
486 else
487 return -1;
488 }
489 #endif
490 if (networkInfoSimulatorBackend)
491 return networkInfoSimulatorBackend->getNetworkSignalStrength(mode, interface);
492 return -1;
493 }
494
currentCellDataTechnology(int interface)495 QNetworkInfo::CellDataTechnology QNetworkInfoSimulator::currentCellDataTechnology(int interface)
496 {
497 #if !defined(QT_NO_OFONO)
498 if (d_ptr)
499 return d_ptr->currentCellDataTechnology(interface);
500 else
501 return QNetworkInfo::UnknownDataTechnology;
502 #endif
503 if (networkInfoSimulatorBackend)
504 return networkInfoSimulatorBackend->getCurrentCellDataTechnology(interface);
505 return QNetworkInfo::UnknownDataTechnology;
506 }
507
currentNetworkMode()508 QNetworkInfo::NetworkMode QNetworkInfoSimulator::currentNetworkMode()
509 {
510 QNetworkInfo::NetworkMode mode = QNetworkInfo::UnknownMode;
511 if (networkInfoSimulatorBackend)
512 mode = networkInfoSimulatorBackend->getCurrentNetworkMode();
513 #if !defined(QT_NO_OFONO)
514 QNetworkInfo::NetworkMode mode2 = QNetworkInfo::UnknownMode;
515 if (d_ptr)
516 mode2 = d_ptr->currentNetworkMode();
517 switch (mode) {
518 case QNetworkInfo::WlanMode:
519 if (mode2 == QNetworkInfo::EthernetMode)
520 mode = mode2;
521 break;
522 default:
523 mode = mode2;
524 break;
525 }
526
527 #endif
528 return mode;
529 }
530
networkStatus(QNetworkInfo::NetworkMode mode,int interface)531 QNetworkInfo::NetworkStatus QNetworkInfoSimulator::networkStatus(QNetworkInfo::NetworkMode mode, int interface)
532 {
533 #if !defined(QT_NO_OFONO)
534 if (mode != QNetworkInfo::WlanMode) {
535 if (d_ptr)
536 return d_ptr->networkStatus(mode, interface);
537 else
538 return QNetworkInfo::UnknownStatus;
539 }
540 #endif
541 if (networkInfoSimulatorBackend)
542 return networkInfoSimulatorBackend->getNetworkStatus(mode, interface);
543 return QNetworkInfo::UnknownStatus;
544 }
545
546 #ifndef QT_NO_NETWORKINTERFACE
interfaceForMode(QNetworkInfo::NetworkMode mode,int interface)547 QNetworkInterface QNetworkInfoSimulator::interfaceForMode(QNetworkInfo::NetworkMode mode, int interface)
548 {
549 #if !defined(QT_NO_OFONO)
550 if (mode != QNetworkInfo::WlanMode) {
551 if (d_ptr)
552 return d_ptr->interfaceForMode(mode, interface);
553 else
554 return QNetworkInterface();
555 }
556 #endif
557 if (networkInfoSimulatorBackend)
558 return networkInfoSimulatorBackend->getInterfaceForMode(mode, interface);
559 return QNetworkInterface();
560 }
561 #endif // QT_NO_NETWORKINTERFACE
562
cellId(int interface)563 QString QNetworkInfoSimulator::cellId(int interface)
564 {
565 #if !defined(QT_NO_OFONO)
566 if (d_ptr)
567 return d_ptr->cellId(interface);
568 else
569 return QString();
570 #endif
571 if (networkInfoSimulatorBackend)
572 return networkInfoSimulatorBackend->getCellId(interface);
573 return QString();
574 }
575
currentMobileCountryCode(int interface)576 QString QNetworkInfoSimulator::currentMobileCountryCode(int interface)
577 {
578 #if !defined(QT_NO_OFONO)
579 if (d_ptr)
580 return d_ptr->currentMobileCountryCode(interface);
581 else
582 return QString();
583 #endif
584 if (networkInfoSimulatorBackend)
585 return networkInfoSimulatorBackend->getCurrentMobileCountryCode(interface);
586 return QString();
587 }
588
currentMobileNetworkCode(int interface)589 QString QNetworkInfoSimulator::currentMobileNetworkCode(int interface)
590 {
591 #if !defined(QT_NO_OFONO)
592 if (d_ptr)
593 return d_ptr->currentMobileNetworkCode(interface);
594 else
595 return QString();
596 #endif
597 if (networkInfoSimulatorBackend)
598 return networkInfoSimulatorBackend->getCurrentMobileNetworkCode(interface);
599 return QString();
600 }
601
homeMobileCountryCode(int interface)602 QString QNetworkInfoSimulator::homeMobileCountryCode(int interface)
603 {
604 #if !defined(QT_NO_OFONO)
605 if (d_ptr)
606 return d_ptr->homeMobileCountryCode(interface);
607 else
608 return QString();
609 #endif
610 if (networkInfoSimulatorBackend)
611 return networkInfoSimulatorBackend->getHomeMobileCountryCode(interface);
612 return QString();
613 }
614
homeMobileNetworkCode(int interface)615 QString QNetworkInfoSimulator::homeMobileNetworkCode(int interface)
616 {
617 #if !defined(QT_NO_OFONO)
618 if (d_ptr)
619 return d_ptr->homeMobileNetworkCode(interface);
620 else
621 return QString();
622 #endif
623 if (networkInfoSimulatorBackend)
624 return networkInfoSimulatorBackend->getHomeMobileNetworkCode(interface);
625 return QString();
626 }
627
imsi(int interface)628 QString QNetworkInfoSimulator::imsi(int interface)
629 {
630 #if !defined(QT_NO_OFONO)
631 if (d_ptr)
632 return d_ptr->imsi(interface);
633 else
634 return QString();
635 #endif
636 if (networkInfoSimulatorBackend)
637 return networkInfoSimulatorBackend->getImsi(interface);
638 return QString();
639 }
640
locationAreaCode(int interface)641 QString QNetworkInfoSimulator::locationAreaCode(int interface)
642 {
643 #if !defined(QT_NO_OFONO)
644 if (d_ptr)
645 return d_ptr->locationAreaCode(interface);
646 else
647 return QString();
648 #endif
649 if (networkInfoSimulatorBackend)
650 return networkInfoSimulatorBackend->getLocationAreaCode(interface);
651 return QString();
652 }
653
macAddress(QNetworkInfo::NetworkMode mode,int interface)654 QString QNetworkInfoSimulator::macAddress(QNetworkInfo::NetworkMode mode, int interface)
655 {
656 #if !defined(QT_NO_OFONO)
657 if (mode != QNetworkInfo::WlanMode) {
658 if (d_ptr)
659 return d_ptr->macAddress(mode, interface);
660 else
661 return QString();
662 }
663 #endif
664 if (networkInfoSimulatorBackend)
665 return networkInfoSimulatorBackend->getMacAddress(mode, interface);
666 return QString();
667 }
668
networkName(QNetworkInfo::NetworkMode mode,int interface)669 QString QNetworkInfoSimulator::networkName(QNetworkInfo::NetworkMode mode, int interface)
670 {
671 #if !defined(QT_NO_OFONO)
672 if (mode != QNetworkInfo::WlanMode) {
673 if (d_ptr)
674 return d_ptr->networkName(mode, interface);
675 else
676 return QString();
677 }
678 #endif
679 if (networkInfoSimulatorBackend)
680 return networkInfoSimulatorBackend->getNetworkName(mode, interface);
681 return QString();
682 }
683
connectNotify(const QMetaMethod & signal)684 void QNetworkInfoSimulator::connectNotify(const QMetaMethod &signal)
685 {
686 static const QMetaMethod networkInterfaceCountChangedSignal = QMetaMethod::fromSignal(&QNetworkInfoSimulator::networkInterfaceCountChanged);
687 static const QMetaMethod currentNetworkModeChangedSignal = QMetaMethod::fromSignal(&QNetworkInfoSimulator::currentNetworkModeChanged);
688 static const QMetaMethod networkNameChangedSignal = QMetaMethod::fromSignal(&QNetworkInfoSimulator::networkNameChanged);
689 static const QMetaMethod networkSignalStrengthChangedSignal = QMetaMethod::fromSignal(&QNetworkInfoSimulator::networkSignalStrengthChanged);
690 static const QMetaMethod networkStatusChangedSignal = QMetaMethod::fromSignal(&QNetworkInfoSimulator::networkStatusChanged);
691
692 #if !defined(QT_NO_OFONO)
693 if (signal == networkInterfaceCountChangedSignal) {
694 if (networkInfoSimulatorBackend)
695 connect(networkInfoSimulatorBackend, SIGNAL(networkInterfaceCountChanged(QNetworkInfo::NetworkMode,int)), this, SLOT(onNetworkInterfaceCountChanged(QNetworkInfo::NetworkMode,int)), Qt::UniqueConnection);
696 if (d_ptr)
697 connect(d_ptr, SIGNAL(networkInterfaceCountChanged(QNetworkInfo::NetworkMode,int)), this, SLOT(onNetworkInterfaceCountChanged(QNetworkInfo::NetworkMode,int)), Qt::UniqueConnection);
698 return;
699 } else if (signal == currentNetworkModeChangedSignal) {
700 if (networkInfoSimulatorBackend)
701 connect(networkInfoSimulatorBackend, SIGNAL(currentNetworkModeChanged(QNetworkInfo::NetworkMode)), this, SLOT(onCurrentNetworkModeChanged(QNetworkInfo::NetworkMode)), Qt::UniqueConnection);
702 if (d_ptr)
703 connect(d_ptr, SIGNAL(currentNetworkModeChanged(QNetworkInfo::NetworkMode)), this, SLOT(onCurrentNetworkModeChanged(QNetworkInfo::NetworkMode)), Qt::UniqueConnection);
704 return;
705 } else if (signal == networkNameChangedSignal) {
706 if (networkInfoSimulatorBackend)
707 connect(networkInfoSimulatorBackend, SIGNAL(networkNameChanged(QNetworkInfo::NetworkMode,int,QString)), this, SLOT(onNetworkNameChanged(QNetworkInfo::NetworkMode,int,QString)), Qt::UniqueConnection);
708 if (d_ptr)
709 connect(d_ptr, SIGNAL(networkNameChanged(QNetworkInfo::NetworkMode,int,QString)), this, SLOT(onNetworkNameChanged(QNetworkInfo::NetworkMode,int,QString)), Qt::UniqueConnection);
710 return;
711 } else if (signal == networkSignalStrengthChangedSignal) {
712 if (networkInfoSimulatorBackend)
713 connect(networkInfoSimulatorBackend, SIGNAL(networkSignalStrengthChanged(QNetworkInfo::NetworkMode,int,int)), this, SLOT(onNetworkSignalStrengthChanged(QNetworkInfo::NetworkMode,int,int)), Qt::UniqueConnection);
714 if (d_ptr)
715 connect(d_ptr, SIGNAL(networkSignalStrengthChanged(QNetworkInfo::NetworkMode,int,int)), this, SLOT(onNetworkSignalStrengthChanged(QNetworkInfo::NetworkMode,int,int)), Qt::UniqueConnection);
716 return;
717 } else if (signal == networkStatusChangedSignal) {
718 if (networkInfoSimulatorBackend)
719 connect(networkInfoSimulatorBackend, SIGNAL(networkStatusChanged(QNetworkInfo::NetworkMode,int,QNetworkInfo::NetworkStatus)), this, SLOT(onNetworkStatusChanged(QNetworkInfo::NetworkMode,int,QNetworkInfo::NetworkStatus)), Qt::UniqueConnection);
720 if (d_ptr)
721 connect(d_ptr, SIGNAL(networkStatusChanged(QNetworkInfo::NetworkMode,int,QNetworkInfo::NetworkStatus)), this, SLOT(onNetworkStatusChanged(QNetworkInfo::NetworkMode,int,QNetworkInfo::NetworkStatus)), Qt::UniqueConnection);
722 return;
723 }
724 #endif
725 if (networkInfoSimulatorBackend) {
726 QMetaMethod sourceSignal = proxyToSourceSignal(signal, networkInfoSimulatorBackend);
727 connect(networkInfoSimulatorBackend, sourceSignal, this, signal, Qt::UniqueConnection);
728 }
729 }
730
disconnectNotify(const QMetaMethod & signal)731 void QNetworkInfoSimulator::disconnectNotify(const QMetaMethod &signal)
732 {
733 static const QMetaMethod networkInterfaceCountChangedSignal = QMetaMethod::fromSignal(&QNetworkInfoSimulator::networkInterfaceCountChanged);
734 static const QMetaMethod currentNetworkModeChangedSignal = QMetaMethod::fromSignal(&QNetworkInfoSimulator::currentNetworkModeChanged);
735 static const QMetaMethod networkNameChangedSignal = QMetaMethod::fromSignal(&QNetworkInfoSimulator::networkNameChanged);
736 static const QMetaMethod networkSignalStrengthChangedSignal = QMetaMethod::fromSignal(&QNetworkInfoSimulator::networkSignalStrengthChanged);
737 static const QMetaMethod networkStatusChangedSignal = QMetaMethod::fromSignal(&QNetworkInfoSimulator::networkStatusChanged);
738
739 #if !defined(QT_NO_OFONO)
740 if (signal == networkInterfaceCountChangedSignal) {
741 if (networkInfoSimulatorBackend)
742 disconnect(networkInfoSimulatorBackend, SIGNAL(networkInterfaceCountChanged(QNetworkInfo::NetworkMode,int)), this, SLOT(onNetworkInterfaceCountChanged(QNetworkInfo::NetworkMode,int)));
743 if (d_ptr)
744 disconnect(d_ptr, SIGNAL(networkInterfaceCountChanged(QNetworkInfo::NetworkMode,int)), this, SLOT(onNetworkInterfaceCountChanged(QNetworkInfo::NetworkMode,int)));
745 return;
746 } else if (signal == currentNetworkModeChangedSignal) {
747 if (networkInfoSimulatorBackend)
748 disconnect(networkInfoSimulatorBackend, SIGNAL(currentNetworkModeChanged(QNetworkInfo::NetworkMode)), this, SLOT(onCurrentNetworkModeChanged(QNetworkInfo::NetworkMode)));
749 if (d_ptr)
750 disconnect(d_ptr, SIGNAL(currentNetworkModeChanged(QNetworkInfo::NetworkMode)), this, SLOT(onCurrentNetworkModeChanged(QNetworkInfo::NetworkMode)));
751 return;
752 } else if (signal == networkNameChangedSignal) {
753 if (networkInfoSimulatorBackend)
754 disconnect(networkInfoSimulatorBackend, SIGNAL(networkNameChanged(QNetworkInfo::NetworkMode,int,QString)), this, SLOT(onNetworkNameChanged(QNetworkInfo::NetworkMode,int,QString)));
755 if (d_ptr)
756 disconnect(d_ptr, SIGNAL(networkNameChanged(QNetworkInfo::NetworkMode,int,QString)), this, SLOT(onNetworkNameChanged(QNetworkInfo::NetworkMode,int,QString)));
757 return;
758 } else if (signal == networkSignalStrengthChangedSignal) {
759 if (networkInfoSimulatorBackend)
760 disconnect(networkInfoSimulatorBackend, SIGNAL(networkSignalStrengthChanged(QNetworkInfo::NetworkMode,int,int)), this, SLOT(onNetworkSignalStrengthChanged(QNetworkInfo::NetworkMode,int,int)));
761 if (d_ptr)
762 disconnect(d_ptr, SIGNAL(networkSignalStrengthChanged(QNetworkInfo::NetworkMode,int,int)), this, SLOT(onNetworkSignalStrengthChanged(QNetworkInfo::NetworkMode,int,int)));
763 return;
764 } else if (signal == networkStatusChangedSignal) {
765 if (networkInfoSimulatorBackend)
766 disconnect(networkInfoSimulatorBackend, SIGNAL(networkStatusChanged(QNetworkInfo::NetworkMode,int,QNetworkInfo::NetworkStatus)), this, SLOT(onNetworkStatusChanged(QNetworkInfo::NetworkMode,int,QNetworkInfo::NetworkStatus)));
767 if (d_ptr)
768 disconnect(d_ptr, SIGNAL(networkStatusChanged(QNetworkInfo::NetworkMode,int,QNetworkInfo::NetworkStatus)), this, SLOT(onNetworkStatusChanged(QNetworkInfo::NetworkMode,int,QNetworkInfo::NetworkStatus)));
769 return;
770 }
771 #endif
772 if (networkInfoSimulatorBackend) {
773 QMetaMethod sourceSignal = proxyToSourceSignal(signal, networkInfoSimulatorBackend);
774 disconnect(networkInfoSimulatorBackend, sourceSignal, this, signal);
775 }
776 }
777
778 #if !defined(QT_NO_OFONO)
779
onCurrentNetworkModeChanged(QNetworkInfo::NetworkMode mode)780 void QNetworkInfoSimulator::onCurrentNetworkModeChanged(QNetworkInfo::NetworkMode mode)
781 {
782 Q_UNUSED(mode)
783 emit currentNetworkModeChanged(currentNetworkMode());
784 }
785
onNetworkInterfaceCountChanged(QNetworkInfo::NetworkMode mode,int count)786 void QNetworkInfoSimulator::onNetworkInterfaceCountChanged(QNetworkInfo::NetworkMode mode, int count)
787 {
788 if (strcmp(sender()->metaObject()->className(), "QNetworkInfoSimulatorBackend") == 0) {
789 if (mode == QNetworkInfo::WlanMode)
790 emit networkInterfaceCountChanged(mode, count);
791 } else {
792 if (mode != QNetworkInfo::WlanMode)
793 emit networkInterfaceCountChanged(mode, count);
794 }
795 }
796
onNetworkNameChanged(QNetworkInfo::NetworkMode mode,int interface,const QString & name)797 void QNetworkInfoSimulator::onNetworkNameChanged(QNetworkInfo::NetworkMode mode, int interface, const QString &name)
798 {
799 if (strcmp(sender()->metaObject()->className(), "QNetworkInfoSimulatorBackend") == 0) {
800 if (mode == QNetworkInfo::WlanMode)
801 emit networkNameChanged(mode, interface, name);
802 } else {
803 if (mode != QNetworkInfo::WlanMode)
804 emit networkNameChanged(mode, interface, name);
805 }
806 }
807
onNetworkSignalStrengthChanged(QNetworkInfo::NetworkMode mode,int interface,int strength)808 void QNetworkInfoSimulator::onNetworkSignalStrengthChanged(QNetworkInfo::NetworkMode mode, int interface, int strength)
809 {
810 if (strcmp(sender()->metaObject()->className(), "QNetworkInfoSimulatorBackend") == 0) {
811 if (mode == QNetworkInfo::WlanMode)
812 emit networkSignalStrengthChanged(mode, interface, strength);
813 } else {
814 if (mode != QNetworkInfo::WlanMode)
815 emit networkSignalStrengthChanged(mode, interface, strength);
816 }
817 }
818
onNetworkStatusChanged(QNetworkInfo::NetworkMode mode,int interface,QNetworkInfo::NetworkStatus status)819 void QNetworkInfoSimulator::onNetworkStatusChanged(QNetworkInfo::NetworkMode mode, int interface, QNetworkInfo::NetworkStatus status)
820 {
821 if (strcmp(sender()->metaObject()->className(), "QNetworkInfoSimulatorBackend") == 0) {
822 if (mode == QNetworkInfo::WlanMode)
823 emit networkStatusChanged(mode, interface, status);
824 } else {
825 if (mode != QNetworkInfo::WlanMode)
826 emit networkStatusChanged(mode, interface, status);
827 }
828 }
829
830 #endif
831
832 QT_END_NAMESPACE
833