File indexing completed on 2024-04-28 16:42:53

0001 // SPDX-FileCopyrightText: 2021 Alexey Andreyev <aa13q@ya.ru>
0002 //
0003 // SPDX-License-Identifier: LicenseRef-KDE-Accepted-GPL
0004 
0005 #include <QCoreApplication>
0006 
0007 #include "version.h"
0008 
0009 #include "callutilsadaptor.h"
0010 #include "deviceutilsadaptor.h"
0011 #include "ussdutilsadaptor.h"
0012 
0013 #include "call-manager.h"
0014 #include "device-manager.h"
0015 #include "ussd-manager.h"
0016 
0017 #if defined(MODEM_SUBSYSTEM_MM)
0018 #include "mm-modem-controller.h"
0019 #elif defined(MODEM_SUBSYSTEM_OFONO)
0020 // TODO: oFono modem controller
0021 #else
0022 #include "modem-controller.h"
0023 #endif
0024 
0025 int main(int argc, char **argv)
0026 {
0027     QCoreApplication app(argc, argv);
0028 
0029     app.setApplicationVersion(QStringLiteral(PLASMADIALER_VERSION_STRING));
0030     app.setOrganizationDomain(QStringLiteral("kde.org"));
0031     app.setApplicationName(QStringLiteral("modem-daemon"));
0032 
0033 #if defined(MODEM_SUBSYSTEM_MM)
0034     ModemManagerController modemController;
0035 #elif defined(MODEM_SUBSYSTEM_OFONO)
0036     // TODO: oFono modem controller
0037 #else
0038     ModemController modemController;
0039 #endif
0040     DialerTypes::registerMetaTypes();
0041 
0042     auto deviceUtils = new DeviceUtils(&app);
0043     auto ussdUtils = new UssdUtils(&app);
0044     auto callUtils = new CallUtils(&app);
0045 
0046     DeviceManager deviceManager(&modemController, deviceUtils, &app);
0047     UssdManager ussdManager(&modemController, ussdUtils, &app);
0048     CallManager callManager(&modemController, callUtils, &app);
0049 
0050     QDBusConnection dbus = QDBusConnection::sessionBus();
0051     auto protocol = modemController.protocol();
0052     auto subsystem = modemController.subsystem();
0053 
0054     new DeviceUtilsAdaptor(deviceUtils);
0055     dbus.registerObject(QStringLiteral("/org/kde/telephony/DeviceUtils/") + protocol + QStringLiteral("/") + subsystem, deviceUtils);
0056     dbus.registerService(QStringLiteral("org.kde.telephony.DeviceUtils"));
0057 
0058     new UssdUtilsAdaptor(ussdUtils);
0059     dbus.registerObject(QStringLiteral("/org/kde/telephony/UssdUtils/") + protocol + QStringLiteral("/") + subsystem, ussdUtils);
0060     dbus.registerService(QStringLiteral("org.kde.telephony.UssdUtils"));
0061 
0062     new CallUtilsAdaptor(callUtils);
0063     dbus.registerObject(QStringLiteral("/org/kde/telephony/CallUtils/") + protocol + QStringLiteral("/") + subsystem, callUtils);
0064     dbus.registerService(QStringLiteral("org.kde.telephony.CallUtils"));
0065 
0066     qDebug() << Q_FUNC_INFO << protocol << subsystem;
0067 
0068     return app.exec();
0069 }