From 539a024819a5f696b8afe899108b409f2b77549c Mon Sep 17 00:00:00 2001 From: Lorn Potter Date: Thu, 31 Jan 2013 07:02:27 +1000 Subject: update ofono API Task-number: QTBUG-29381 Change-Id: I952b73d86b4e8f497b4ff90d10c1f5312882bd8a Reviewed-by: Thiago Macieira --- src/plugins/bearer/connman/qofonoservice_linux.cpp | 82 ++++++++++++++++------ src/plugins/bearer/connman/qofonoservice_linux_p.h | 8 +++ 2 files changed, 70 insertions(+), 20 deletions(-) (limited to 'src/plugins') diff --git a/src/plugins/bearer/connman/qofonoservice_linux.cpp b/src/plugins/bearer/connman/qofonoservice_linux.cpp index 085b57d660..f6fb55522e 100644 --- a/src/plugins/bearer/connman/qofonoservice_linux.cpp +++ b/src/plugins/bearer/connman/qofonoservice_linux.cpp @@ -56,6 +56,22 @@ #ifndef QT_NO_BEARERMANAGEMENT #ifndef QT_NO_DBUS +QDBusArgument &operator<<(QDBusArgument &argument, const ObjectPathProperties &item) +{ + argument.beginStructure(); + argument << item.path << item.properties; + argument.endStructure(); + return argument; +} + +const QDBusArgument &operator>>(const QDBusArgument &argument, ObjectPathProperties &item) +{ + argument.beginStructure(); + argument >> item.path >> item.properties; + argument.endStructure(); + return argument; +} + QT_BEGIN_NAMESPACE QOfonoManagerInterface::QOfonoManagerInterface( QObject *parent) @@ -64,6 +80,8 @@ QOfonoManagerInterface::QOfonoManagerInterface( QObject *parent) OFONO_MANAGER_INTERFACE, QDBusConnection::systemBus(), parent) { + qDBusRegisterMetaType(); + qDBusRegisterMetaType(); } QOfonoManagerInterface::~QOfonoManagerInterface() @@ -72,8 +90,16 @@ QOfonoManagerInterface::~QOfonoManagerInterface() QList QOfonoManagerInterface::getModems() { - QVariant var = getProperty("Modems"); - return qdbus_cast >(var); + QList modemList; + QList argumentList; + QDBusReply reply = this->asyncCallWithArgumentList(QLatin1String("GetModems"), argumentList); + if (reply.isValid()) { + foreach (ObjectPathProperties modem, reply.value()) { + modemList << modem.path; + } + } + + return modemList; } QDBusObjectPath QOfonoManagerInterface::currentModem() @@ -81,7 +107,7 @@ QDBusObjectPath QOfonoManagerInterface::currentModem() QList modems = getModems(); foreach (const QDBusObjectPath &modem, modems) { QOfonoModemInterface device(modem.path()); - if(device.isPowered() && device.isOnline()) + if (device.isPowered() && device.isOnline()) return modem;; } return QDBusObjectPath(); @@ -92,7 +118,7 @@ void QOfonoManagerInterface::connectNotify(const QMetaMethod &signal) { static const QMetaMethod propertyChangedSignal = QMetaMethod::fromSignal(&QOfonoManagerInterface::propertyChanged); if (signal == propertyChangedSignal) { - if(!connection().connect(QLatin1String(OFONO_SERVICE), + if (!connection().connect(QLatin1String(OFONO_SERVICE), QLatin1String(OFONO_MANAGER_PATH), QLatin1String(OFONO_MANAGER_INTERFACE), QLatin1String("PropertyChanged"), @@ -140,7 +166,7 @@ QVariant QOfonoManagerInterface::getProperty(const QString &property) QVariantMap QOfonoManagerInterface::getProperties() { QDBusReply reply = this->call(QLatin1String("GetProperties")); - if(reply.isValid()) + if (reply.isValid()) return reply.value(); else return QVariantMap(); @@ -234,7 +260,7 @@ QStringList QOfonoModemInterface::getInterfaces() QString QOfonoModemInterface::defaultInterface() { - foreach(const QString &modem,getInterfaces()) { + foreach (const QString &modem,getInterfaces()) { return modem; } return QString(); @@ -245,7 +271,7 @@ void QOfonoModemInterface::connectNotify(const QMetaMethod &signal) { static const QMetaMethod propertyChangedSignal = QMetaMethod::fromSignal(&QOfonoModemInterface::propertyChanged); if (signal == propertyChangedSignal) { - if(!connection().connect(QLatin1String(OFONO_SERVICE), + if (!connection().connect(QLatin1String(OFONO_SERVICE), this->path(), QLatin1String(OFONO_MODEM_INTERFACE), QLatin1String("PropertyChanged"), @@ -363,15 +389,23 @@ QString QOfonoNetworkRegistrationInterface::getBaseStation() QList QOfonoNetworkRegistrationInterface::getOperators() { - QVariant var = getProperty("Operators"); - return qdbus_cast >(var); + QList operatorList; + QList argumentList; + QDBusReply reply = this->asyncCallWithArgumentList(QLatin1String("GetOperators"), + argumentList); + if (reply.isValid()) { + foreach (ObjectPathProperties netop, reply.value()) { + operatorList << netop.path; + } + } + return operatorList; } void QOfonoNetworkRegistrationInterface::connectNotify(const QMetaMethod &signal) { static const QMetaMethod propertyChangedSignal = QMetaMethod::fromSignal(&QOfonoNetworkRegistrationInterface::propertyChanged); if (signal == propertyChangedSignal) { - if(!connection().connect(QLatin1String(OFONO_SERVICE), + if (!connection().connect(QLatin1String(OFONO_SERVICE), this->path(), QLatin1String(OFONO_NETWORK_REGISTRATION_INTERFACE), QLatin1String("PropertyChanged"), @@ -473,7 +507,7 @@ void QOfonoNetworkOperatorInterface::connectNotify(const QMetaMethod &signal) Q_UNUSED(signal); // static const QMetaMethod propertyChangedSignal = QMetaMethod::fromSignal(&QOfonoNetworkOperatorInterface::propertyChanged); // if (signal == propertyChangedSignal) { -// if(!connection().connect(QLatin1String(OFONO_SERVICE), +// if (!connection().connect(QLatin1String(OFONO_SERVICE), // this->path(), // QLatin1String(OFONO_NETWORK_OPERATOR_INTERFACE), // QLatin1String("PropertyChanged"), @@ -581,7 +615,7 @@ void QOfonoSimInterface::connectNotify(const QMetaMethod &signal) Q_UNUSED(signal); // static const QMetaMethod propertyChangedSignal = QMetaMethod::fromSignal(&QOfonoSimInterface::propertyChanged); // if (signal == propertyChangedSignal) { -// if(!connection().connect(QLatin1String(OFONO_SERVICE), +// if (!connection().connect(QLatin1String(OFONO_SERVICE), // this->path(), // QLatin1String(OFONO_SIM_MANAGER_INTERFACE), // QLatin1String("PropertyChanged"), @@ -648,8 +682,16 @@ QOfonoDataConnectionManagerInterface::~QOfonoDataConnectionManagerInterface() QList QOfonoDataConnectionManagerInterface::getPrimaryContexts() { - QVariant var = getProperty("PrimaryContexts"); - return qdbus_cast >(var); + QList contextList; + QList argumentList; + QDBusReply reply = this->asyncCallWithArgumentList(QLatin1String("GetContexts"), + argumentList); + if (reply.isValid()) { + foreach (ObjectPathProperties context, reply.value()) { + contextList << context.path; + } + } + return contextList; } bool QOfonoDataConnectionManagerInterface::isAttached() @@ -675,7 +717,7 @@ void QOfonoDataConnectionManagerInterface::connectNotify(const QMetaMethod &sign Q_UNUSED(signal); // static const QMetaMethod propertyChangedSignal = QMetaMethod::fromSignal(&QOfonoDataConnectionManagerInterface::propertyChanged); // if (signal == propertyChangedSignal) { -// if(!connection().connect(QLatin1String(OFONO_SERVICE), +// if (!connection().connect(QLatin1String(OFONO_SERVICE), // this->path(), // QLatin1String(OFONO_DATA_CONNECTION_MANAGER_INTERFACE), // QLatin1String("PropertyChanged"), @@ -799,7 +841,7 @@ void QOfonoPrimaryDataContextInterface::connectNotify(const QMetaMethod &signal) Q_UNUSED(signal); // static const QMetaMethod propertyChangedSignal = QMetaMethod::fromSignal(&QOfonoPrimaryDataContextInterface::propertyChanged); // if (signal == propertyChangedSignal) { -// if(!connection().connect(QLatin1String(OFONO_SERVICE), +// if (!connection().connect(QLatin1String(OFONO_SERVICE), // this->path(), // QLatin1String(OFONO_DATA_CONTEXT_INTERFACE), // QLatin1String("PropertyChanged"), @@ -861,7 +903,7 @@ bool QOfonoPrimaryDataContextInterface::setProp(const QString &property, const Q QLatin1String("SetProperty"), args); bool ok = true; - if(reply.type() != QDBusMessage::ReplyMessage) { + if (reply.type() != QDBusMessage::ReplyMessage) { qWarning() << reply.errorMessage(); ok = false; } @@ -885,7 +927,7 @@ void QOfonoSmsInterface::connectNotify(const QMetaMethod &signal) { static const QMetaMethod propertyChangedSignal = QMetaMethod::fromSignal(&QOfonoSmsInterface::propertyChanged); if (signal == propertyChangedSignal) { - if(!connection().connect(QLatin1String(OFONO_SERVICE), + if (!connection().connect(QLatin1String(OFONO_SERVICE), this->path(), QLatin1String(OFONO_SMS_MANAGER_INTERFACE), QLatin1String("PropertyChanged"), @@ -912,7 +954,7 @@ void QOfonoSmsInterface::connectNotify(const QMetaMethod &signal) static const QMetaMethod immediateMessageSignal = QMetaMethod::fromSignal(&QOfonoSmsInterface::immediateMessage); if (signal == immediateMessageSignal) { - if(!connection().connect(QLatin1String(OFONO_SERVICE), + if (!connection().connect(QLatin1String(OFONO_SERVICE), this->path(), QLatin1String(OFONO_SMS_MANAGER_INTERFACE), QLatin1String("ImmediateMessage"), @@ -923,7 +965,7 @@ void QOfonoSmsInterface::connectNotify(const QMetaMethod &signal) static const QMetaMethod incomingMessageSignal = QMetaMethod::fromSignal(&QOfonoSmsInterface::incomingMessage); if (signal == incomingMessageSignal) { - if(!connection().connect(QLatin1String(OFONO_SERVICE), + if (!connection().connect(QLatin1String(OFONO_SERVICE), this->path(), QLatin1String(OFONO_SMS_MANAGER_INTERFACE), QLatin1String("IncomingMessage"), diff --git a/src/plugins/bearer/connman/qofonoservice_linux_p.h b/src/plugins/bearer/connman/qofonoservice_linux_p.h index 85f6602023..00be9aa675 100644 --- a/src/plugins/bearer/connman/qofonoservice_linux_p.h +++ b/src/plugins/bearer/connman/qofonoservice_linux_p.h @@ -88,6 +88,14 @@ QT_BEGIN_NAMESPACE QT_END_NAMESPACE +struct ObjectPathProperties +{ + QDBusObjectPath path; + QVariantMap properties; +}; +typedef QList PathPropertiesList; +Q_DECLARE_METATYPE(ObjectPathProperties) +Q_DECLARE_METATYPE (PathPropertiesList) QT_BEGIN_NAMESPACE -- cgit v1.2.3