20
20
#include "eventprinter.h"
22
22
#include "dbusdata.h"
24
#include "ofonomodemmodem.h"
25
#include "ofonomodemnetworkregistration.h"
26
#include "ofonomodemsimmanager.h"
27
#include "ofonoroot.h"
28
#include "urfkillroot.h"
29
#include "urfkillswitch.h"
23
#include <NetworkManager.h>
24
#include <NetworkManagerInterface.h>
25
#include <URfkillInterface.h>
26
#include <URfkillKillswitchInterface.h>
29
#include <qofono-qt5/qofonomanager.h>
30
#include <qofono-qt5/qofonomodem.h>
31
#include <qofono-qt5/qofononetworkregistration.h>
32
#include <qofono-qt5/qofonosimmanager.h>
35
// Lo-fi way of waiting for properties to populate
36
static void wait_for_a_bit()
40
tT.setSingleShot(true);
41
QObject::connect(&tT, &QTimer::timeout, &q, &QEventLoop::quit);
31
46
EventPrinter::EventPrinter(QObject *parent) : QObject(parent) {
32
urfkill = new UrfkillRoot(URFKILL_SERVICE, URFKILL_OBJECT, QDBusConnection::systemBus(), this);
33
btkill = new UrfkillSwitch(URFKILL_SERVICE, URFKILL_BLUETOOTH_OBJECT, QDBusConnection::systemBus(), this);
34
wlankill = new UrfkillSwitch(URFKILL_SERVICE, URFKILL_WLAN_OBJECT, QDBusConnection::systemBus(), this);
35
nmroot = new NetworkManagerRoot(NM_SERVICE, NM_OBJECT, QDBusConnection::systemBus(), this);
47
urfkill = new OrgFreedesktopURfkillInterface(URFKILL_SERVICE, URFKILL_OBJECT, QDBusConnection::systemBus(), this);
48
btkill = new OrgFreedesktopURfkillKillswitchInterface(URFKILL_SERVICE, URFKILL_BLUETOOTH_OBJECT, QDBusConnection::systemBus(), this);
49
wlankill = new OrgFreedesktopURfkillKillswitchInterface(URFKILL_SERVICE, URFKILL_WLAN_OBJECT, QDBusConnection::systemBus(), this);
50
nmroot = new OrgFreedesktopNetworkManagerInterface(NM_DBUS_SERVICE, NM_DBUS_PATH, QDBusConnection::systemBus(), this);
37
52
connect(urfkill, SIGNAL(FlightModeChanged(bool)), this, SLOT(flightModeChanged(bool)));
38
53
connect(btkill, SIGNAL(StateChanged()), this, SLOT(btKillswitchChanged()));
40
55
connect(nmroot, SIGNAL(StateChanged(uint)), this, SLOT(nmStateChanged(uint)));
41
56
connect(nmroot, SIGNAL(PropertiesChanged(const QVariantMap&)), this, SLOT(nmPropertiesChanged(const QVariantMap&)));
43
OfonoRoot ofono(OFONO_SERVICE, OFONO_OBJECT, QDBusConnection::systemBus(), nullptr);
44
auto modems = ofono.GetModems().value();
60
auto modems = ofono.modems();
45
61
if(modems.length() > 0) {
46
modem1 = new OfonoModemModem(OFONO_SERVICE, modems[0].first.path(), QDBusConnection::systemBus(), this);
47
connect(modem1, SIGNAL(PropertyChanged(const QString, const QDBusVariant)), this,
48
SLOT(modem1PropertyChanged(const QString, const QDBusVariant)));
49
simman1 = new OfonoModemSimManager(OFONO_SERVICE, modems[0].first.path(), QDBusConnection::systemBus(), this);
50
connect(simman1, SIGNAL(PropertyChanged(const QString, const QDBusVariant)), this,
51
SLOT(simman1PropertyChanged(const QString, const QDBusVariant)));
52
netreg1 = new OfonoModemNetworkRegistration(OFONO_SERVICE, modems[0].first.path(), QDBusConnection::systemBus(), this);
53
connect(netreg1, SIGNAL(PropertyChanged(const QString, const QDBusVariant)), this,
54
SLOT(netreg1PropertyChanged(const QString, const QDBusVariant)));
62
modem1 = new QOfonoModem(this);
63
modem1->setModemPath(modems[0]);
64
connect(modem1, SIGNAL(propertyChanged(const QString&, const QVariant&)), this,
65
SLOT(modem1PropertyChanged(const QString&, const QVariant&)));
66
simman1 = new QOfonoSimManager(this);
67
simman1->setModemPath(modems[0]);
68
connect(simman1, SIGNAL(propertyChanged(const QString&, const QVariant&)), this,
69
SLOT(simman1PropertyChanged(const QString&, const QVariant&)));
70
netreg1 = new QOfonoNetworkRegistration(this);
71
netreg1->setModemPath(modems[0]);
72
connect(netreg1, SIGNAL(propertyChanged(const QString&, const QVariant&)), this,
73
SLOT(netreg1PropertyChanged(const QString&, const QVariant&)));
60
79
if(modems.length() > 1) {
61
modem2 = new OfonoModemModem(OFONO_SERVICE, modems[1].first.path(), QDBusConnection::systemBus(), this);
62
connect(modem2, SIGNAL(PropertyChanged(const QString, const QDBusVariant)), this,
63
SLOT(modem2PropertyChanged(const QString, const QDBusVariant)));
64
simman2 = new OfonoModemSimManager(OFONO_SERVICE, modems[1].first.path(), QDBusConnection::systemBus(), this);
65
connect(simman2, SIGNAL(PropertyChanged(const QString, const QDBusVariant)), this,
66
SLOT(simman2PropertyChanged(const QString, const QDBusVariant)));
67
netreg2 = new OfonoModemNetworkRegistration(OFONO_SERVICE, modems[1].first.path(), QDBusConnection::systemBus(), this);
68
connect(netreg2, SIGNAL(PropertyChanged(const QString, const QDBusVariant)), this,
69
SLOT(netreg2PropertyChanged(const QString, const QDBusVariant)));
80
modem2 = new QOfonoModem(this);
81
modem2->setModemPath(modems[1]);
82
connect(modem2, SIGNAL(propertyChanged(const QString&, const QVariant&)), this,
83
SLOT(modem2PropertyChanged(const QString&, const QVariant&)));
84
simman2 = new QOfonoSimManager(this);
85
simman2->setModemPath(modems[1]);
86
connect(simman2, SIGNAL(propertyChanged(const QString&, const QVariant&)), this,
87
SLOT(simman2PropertyChanged(const QString&, const QVariant&)));
88
netreg2 = new QOfonoNetworkRegistration(this);
89
netreg2->setModemPath(modems[1]);
90
connect(netreg2, SIGNAL(propertyChanged(const QString&, const QVariant&)), this,
91
SLOT(netreg2PropertyChanged(const QString&, const QVariant&)));
122
144
printf(" ActiveConnections (now have %d)\n", nmroot->activeConnections().size());
125
void EventPrinter::modem1PropertyChanged(const QString name, const QDBusVariant value) {
147
void EventPrinter::modem1PropertyChanged(const QString &name, const QVariant &value) {
126
148
modemPropertyChanged(1, name, value);
129
void EventPrinter::modem2PropertyChanged(const QString name, const QDBusVariant value) {
151
void EventPrinter::modem2PropertyChanged(const QString &name, const QVariant &value) {
130
152
modemPropertyChanged(2, name, value);
133
void EventPrinter::modemPropertyChanged(const int modem, const QString &name, const QDBusVariant &value) {
134
auto str = value.variant().toString();
155
void EventPrinter::modemPropertyChanged(const int modem, const QString &name, const QVariant &value) {
156
auto str = value.toString();
135
157
if(str.length() > 0) {
136
158
str = " to " + str;
138
160
printf("Ofono modem %d property %s changed%s.\n", modem, name.toUtf8().data(), str.toUtf8().data());
141
void EventPrinter::simman1PropertyChanged(const QString name, const QDBusVariant value) {
163
void EventPrinter::simman1PropertyChanged(const QString &name, const QVariant &value) {
142
164
simmanPropertyChanged(1, name, value);
145
void EventPrinter::simman2PropertyChanged(const QString name, const QDBusVariant value) {
167
void EventPrinter::simman2PropertyChanged(const QString &name, const QVariant &value) {
146
168
simmanPropertyChanged(2, name, value);
149
void EventPrinter::simmanPropertyChanged(const int simman, const QString &name, const QDBusVariant &value) {
171
void EventPrinter::simmanPropertyChanged(const int simman, const QString &name, const QVariant &value) {
150
172
if(name == "PinRequired") {
151
printf("Ofono modem %d pin required changed to %s.\n", simman, value.variant().toString().toUtf8().data());
173
printf("Ofono modem %d pin required changed to %s.\n", simman, value.toString().toUtf8().data());
155
void EventPrinter::netreg1PropertyChanged(const QString name, const QDBusVariant value) {
177
void EventPrinter::netreg1PropertyChanged(const QString &name, const QVariant &value) {
156
178
netregPropertyChanged(1, name, value);
159
void EventPrinter::netreg2PropertyChanged(const QString name, const QDBusVariant value) {
181
void EventPrinter::netreg2PropertyChanged(const QString &name, const QVariant &value) {
160
182
netregPropertyChanged(2, name, value);
163
void EventPrinter::netregPropertyChanged(const int netreg, const QString &name, const QDBusVariant &value) {
185
void EventPrinter::netregPropertyChanged(const int netreg, const QString &name, const QVariant &value) {
164
186
QString valuetext;
165
187
if(name == "Strength") {
166
valuetext = QString::number(value.variant().toInt());
188
valuetext = QString::number(value.toInt());
168
valuetext = value.variant().toString();
190
valuetext = value.toString();
171
193
printf("Ofono network registration %d property %s changed to %s.\n", netreg, name.toUtf8().data(), valuetext.toUtf8().data());