/**************************************************************************** ** ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the plugins of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage ** This file contains pre-release code and may not be distributed. ** You may use this file in accordance with the terms and conditions ** contained in the Technology Preview License Agreement accompanying ** this package. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain additional ** rights. These rights are described in the Nokia Qt LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** ** If you have questions regarding the use of this file, please contact ** Nokia at qt-info@nokia.com. ** ** ** ** ** ** ** ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #include #include #include #include #include #include #include #include #include #include #include #include "qofonoservice_linux_p.h" QT_BEGIN_NAMESPACE static QDBusConnection dbusConnection = QDBusConnection::systemBus(); QOfonoManagerInterface::QOfonoManagerInterface( QObject *parent) : QDBusAbstractInterface(QLatin1String(OFONO_SERVICE), QLatin1String(OFONO_MANAGER_PATH), OFONO_MANAGER_INTERFACE, QDBusConnection::systemBus(), parent) { } QOfonoManagerInterface::~QOfonoManagerInterface() { } QList QOfonoManagerInterface::getModems() { QVariant var = getProperty("Modems"); return qdbus_cast >(var); } QDBusObjectPath QOfonoManagerInterface::currentModem() { QList modems = getModems(); foreach(const QDBusObjectPath modem, modems) { QOfonoModemInterface device(modem.path()); if(device.isPowered() && device.isOnline()) return modem;; } return QDBusObjectPath(); } void QOfonoManagerInterface::connectNotify(const char *signal) { if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) { if(!connection().connect(QLatin1String(OFONO_SERVICE), QLatin1String(OFONO_MANAGER_PATH), QLatin1String(OFONO_MANAGER_INTERFACE), QLatin1String("PropertyChanged"), this,SIGNAL(propertyChanged(const QString &, const QDBusVariant & )))) { qWarning() << "PropertyCHanged not connected"; } } if (QLatin1String(signal) == SIGNAL(propertyChangedContext(QString,QString,QDBusVariant))) { QOfonoDBusHelper *helper; helper = new QOfonoDBusHelper(this); dbusConnection.connect(QLatin1String(OFONO_SERVICE), QLatin1String(OFONO_MANAGER_PATH), QLatin1String(OFONO_MANAGER_INTERFACE), QLatin1String("PropertyChanged"), helper,SLOT(propertyChanged(QString,QDBusVariant))); QObject::connect(helper,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)), this,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &))); } } void QOfonoManagerInterface::disconnectNotify(const char *signal) { if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QVariant))) { } } QVariant QOfonoManagerInterface::getProperty(const QString &property) { QVariantMap map = getProperties(); if (map.contains(property)) { return map.value(property); } else { qDebug() << Q_FUNC_INFO << "does not contain" << property; } return QVariant(); } QVariantMap QOfonoManagerInterface::getProperties() { QDBusReply reply = this->call(QLatin1String("GetProperties")); if(reply.isValid()) return reply.value(); else return QVariantMap(); } QOfonoDBusHelper::QOfonoDBusHelper(QObject * parent) : QObject(parent) { } QOfonoDBusHelper::~QOfonoDBusHelper() { } void QOfonoDBusHelper::propertyChanged(const QString &item, const QDBusVariant &var) { QDBusMessage msg = this->message(); Q_EMIT propertyChangedContext(msg.path() ,item, var); } QOfonoModemInterface::QOfonoModemInterface(const QString &dbusPathName, QObject *parent) : QDBusAbstractInterface(QLatin1String(OFONO_SERVICE), dbusPathName, OFONO_MODEM_INTERFACE, QDBusConnection::systemBus(), parent) { } QOfonoModemInterface::~QOfonoModemInterface() { } bool QOfonoModemInterface::isPowered() { QVariant var = getProperty("Powered"); return qdbus_cast(var); } bool QOfonoModemInterface::isOnline() { QVariant var = getProperty("Online"); return qdbus_cast(var); } QString QOfonoModemInterface::getName() { QVariant var = getProperty("Name"); return qdbus_cast(var); } QString QOfonoModemInterface::getManufacturer() { QVariant var = getProperty("Manufacturer"); return qdbus_cast(var); } QString QOfonoModemInterface::getModel() { QVariant var = getProperty("Model"); return qdbus_cast(var); } QString QOfonoModemInterface::getRevision() { QVariant var = getProperty("Revision"); return qdbus_cast(var); } QString QOfonoModemInterface::getSerial() { QVariant var = getProperty("Serial"); return qdbus_cast(var); } QStringList QOfonoModemInterface::getFeatures() { //sms, sim QVariant var = getProperty("Features"); return qdbus_cast(var); } QStringList QOfonoModemInterface::getInterfaces() { QVariant var = getProperty("Interfaces"); return qdbus_cast(var); } QString QOfonoModemInterface::defaultInterface() { foreach(const QString &modem,getInterfaces()) { return modem; } return QString(); } void QOfonoModemInterface::connectNotify(const char *signal) { if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) { if(!connection().connect(QLatin1String(OFONO_SERVICE), this->path(), QLatin1String(OFONO_MODEM_INTERFACE), QLatin1String("PropertyChanged"), this,SIGNAL(propertyChanged(const QString &, const QDBusVariant & )))) { qWarning() << "PropertyCHanged not connected"; } } if (QLatin1String(signal) == SIGNAL(propertyChangedContext(QString,QString,QDBusVariant))) { QOfonoDBusHelper *helper; helper = new QOfonoDBusHelper(this); dbusConnection.connect(QLatin1String(OFONO_SERVICE), this->path(), QLatin1String(OFONO_MODEM_INTERFACE), QLatin1String("PropertyChanged"), helper,SLOT(propertyChanged(QString,QDBusVariant))); QObject::connect(helper,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)), this,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)), Qt::UniqueConnection); }} void QOfonoModemInterface::disconnectNotify(const char *signal) { if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QVariant))) { } } QVariantMap QOfonoModemInterface::getProperties() { QDBusReply reply = this->call(QLatin1String("GetProperties")); return reply.value(); } QVariant QOfonoModemInterface::getProperty(const QString &property) { QVariant var; QVariantMap map = getProperties(); if (map.contains(property)) { var = map.value(property); } else { qDebug() << Q_FUNC_INFO << "does not contain" << property; } return var; } QOfonoNetworkRegistrationInterface::QOfonoNetworkRegistrationInterface(const QString &dbusPathName, QObject *parent) : QDBusAbstractInterface(QLatin1String(OFONO_SERVICE), dbusPathName, OFONO_NETWORK_REGISTRATION_INTERFACE, QDBusConnection::systemBus(), parent) { } QOfonoNetworkRegistrationInterface::~QOfonoNetworkRegistrationInterface() { } QString QOfonoNetworkRegistrationInterface::getStatus() { /* "unregistered" Not registered to any network "registered" Registered to home network "searching" Not registered, but searching "denied" Registration has been denied "unknown" Status is unknown "roaming" Registered, but roaming*/ QVariant var = getProperty("Status"); return qdbus_cast(var); } quint16 QOfonoNetworkRegistrationInterface::getLac() { QVariant var = getProperty("LocationAreaCode"); return var.value(); } quint32 QOfonoNetworkRegistrationInterface::getCellId() { QVariant var = getProperty("CellId"); return var.value(); } QString QOfonoNetworkRegistrationInterface::getTechnology() { // "gsm", "edge", "umts", "hspa","lte" QVariant var = getProperty("Technology"); return qdbus_cast(var); } QString QOfonoNetworkRegistrationInterface::getOperatorName() { QVariant var = getProperty("Name"); return qdbus_cast(var); } int QOfonoNetworkRegistrationInterface::getSignalStrength() { QVariant var = getProperty("Strength"); return qdbus_cast(var); } QString QOfonoNetworkRegistrationInterface::getBaseStation() { QVariant var = getProperty("BaseStation"); return qdbus_cast(var); } QList QOfonoNetworkRegistrationInterface::getOperators() { QVariant var = getProperty("Operators"); return qdbus_cast >(var); } void QOfonoNetworkRegistrationInterface::connectNotify(const char *signal) { if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) { if(!connection().connect(QLatin1String(OFONO_SERVICE), this->path(), QLatin1String(OFONO_NETWORK_REGISTRATION_INTERFACE), QLatin1String("PropertyChanged"), this,SIGNAL(propertyChanged(const QString &, const QDBusVariant & )))) { qWarning() << "PropertyCHanged not connected"; } } if (QLatin1String(signal) == SIGNAL(propertyChangedContext(QString,QString,QDBusVariant))) { QOfonoDBusHelper *helper; helper = new QOfonoDBusHelper(this); dbusConnection.connect(QLatin1String(OFONO_SERVICE), this->path(), QLatin1String(OFONO_NETWORK_REGISTRATION_INTERFACE), QLatin1String("PropertyChanged"), helper,SLOT(propertyChanged(QString,QDBusVariant))); QObject::connect(helper,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)), this,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)), Qt::UniqueConnection); } } void QOfonoNetworkRegistrationInterface::disconnectNotify(const char *signal) { if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QVariant))) { } } QVariant QOfonoNetworkRegistrationInterface::getProperty(const QString &property) { QVariant var; QVariantMap map = getProperties(); if (map.contains(property)) { var = map.value(property); } else { qDebug() << Q_FUNC_INFO << "does not contain" << property; } return var; } QVariantMap QOfonoNetworkRegistrationInterface::getProperties() { QDBusReply reply = this->call(QLatin1String("GetProperties")); return reply.value(); } QOfonoNetworkOperatorInterface::QOfonoNetworkOperatorInterface(const QString &dbusPathName, QObject *parent) : QDBusAbstractInterface(QLatin1String(OFONO_SERVICE), dbusPathName, OFONO_NETWORK_OPERATOR_INTERFACE, QDBusConnection::systemBus(), parent) { } QOfonoNetworkOperatorInterface::~QOfonoNetworkOperatorInterface() { } QString QOfonoNetworkOperatorInterface::getName() { QVariant var = getProperty("Name"); return qdbus_cast(var); } QString QOfonoNetworkOperatorInterface::getStatus() { // "unknown", "available", "current" and "forbidden" QVariant var = getProperty("Status"); return qdbus_cast(var); } QString QOfonoNetworkOperatorInterface::getMcc() { QVariant var = getProperty("MobileCountryCode"); return qdbus_cast(var); } QString QOfonoNetworkOperatorInterface::getMnc() { QVariant var = getProperty("MobileNetworkCode"); return qdbus_cast(var); } QStringList QOfonoNetworkOperatorInterface::getTechnologies() { QVariant var = getProperty("Technologies"); return qdbus_cast(var); } void QOfonoNetworkOperatorInterface::connectNotify(const char *signal) { if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) { if(!connection().connect(QLatin1String(OFONO_SERVICE), this->path(), QLatin1String(OFONO_NETWORK_OPERATOR_INTERFACE), QLatin1String("PropertyChanged"), this,SIGNAL(propertyChanged(const QString &, const QDBusVariant & )))) { qWarning() << "PropertyCHanged not connected"; } } if (QLatin1String(signal) == SIGNAL(propertyChangedContext(QString,QString,QDBusVariant))) { QOfonoDBusHelper *helper; helper = new QOfonoDBusHelper(this); dbusConnection.connect(QLatin1String(OFONO_SERVICE), this->path(), QLatin1String(OFONO_NETWORK_OPERATOR_INTERFACE), QLatin1String("PropertyChanged"), helper,SLOT(propertyChanged(QString,QDBusVariant))); QObject::connect(helper,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)), this,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)), Qt::UniqueConnection); } } void QOfonoNetworkOperatorInterface::disconnectNotify(const char *signal) { if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QVariant))) { } } QVariant QOfonoNetworkOperatorInterface::getProperty(const QString &property) { QVariant var; QVariantMap map = getProperties(); if (map.contains(property)) { var = map.value(property); } else { qDebug() << Q_FUNC_INFO << "does not contain" << property; } return var; } QVariantMap QOfonoNetworkOperatorInterface::getProperties() { QDBusReply reply = this->call(QLatin1String("GetProperties")); return reply.value(); } QOfonoSimInterface::QOfonoSimInterface(const QString &dbusPathName, QObject *parent) : QDBusAbstractInterface(QLatin1String(OFONO_SERVICE), dbusPathName, OFONO_SIM_MANAGER_INTERFACE, QDBusConnection::systemBus(), parent) { } QOfonoSimInterface::~QOfonoSimInterface() { } bool QOfonoSimInterface::isPresent() { QVariant var = getProperty("Present"); return qdbus_cast(var); } QString QOfonoSimInterface::getHomeMcc() { QVariant var = getProperty("MobileCountryCode"); return qdbus_cast(var); } QString QOfonoSimInterface::getHomeMnc() { QVariant var = getProperty("MobileNetworkCode"); return qdbus_cast(var); } // QStringList subscriberNumbers(); // QMap serviceNumbers(); QString QOfonoSimInterface::pinRequired() { QVariant var = getProperty("PinRequired"); return qdbus_cast(var); } QString QOfonoSimInterface::lockedPins() { QVariant var = getProperty("LockedPins"); return qdbus_cast(var); } QString QOfonoSimInterface::cardIdentifier() { QVariant var = getProperty("CardIdentifier"); return qdbus_cast(var); } void QOfonoSimInterface::connectNotify(const char *signal) { if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) { if(!connection().connect(QLatin1String(OFONO_SERVICE), this->path(), QLatin1String(OFONO_SIM_MANAGER_INTERFACE), QLatin1String("PropertyChanged"), this,SIGNAL(propertyChanged(const QString &, const QDBusVariant & )))) { qWarning() << "PropertyCHanged not connected"; } } if (QLatin1String(signal) == SIGNAL(propertyChangedContext(QString,QString,QDBusVariant))) { QOfonoDBusHelper *helper; helper = new QOfonoDBusHelper(this); dbusConnection.connect(QLatin1String(OFONO_SERVICE), this->path(), QLatin1String(OFONO_SIM_MANAGER_INTERFACE), QLatin1String("PropertyChanged"), helper,SLOT(propertyChanged(QString,QDBusVariant))); QObject::connect(helper,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)), this,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)), Qt::UniqueConnection); } } void QOfonoSimInterface::disconnectNotify(const char *signal) { if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QVariant))) { } } QVariant QOfonoSimInterface::getProperty(const QString &property) { QVariant var; QVariantMap map = getProperties(); if (map.contains(property)) { var = map.value(property); } else { qDebug() << Q_FUNC_INFO << "does not contain" << property; } return var; } QVariantMap QOfonoSimInterface::getProperties() { QDBusReply reply = this->call(QLatin1String("GetProperties")); return reply.value(); } QOfonoDataConnectionManagerInterface::QOfonoDataConnectionManagerInterface(const QString &dbusPathName, QObject *parent) : QDBusAbstractInterface(QLatin1String(OFONO_SERVICE), dbusPathName, OFONO_DATA_CONNECTION_MANAGER_INTERFACE, QDBusConnection::systemBus(), parent) { } QOfonoDataConnectionManagerInterface::~QOfonoDataConnectionManagerInterface() { } QList QOfonoDataConnectionManagerInterface::getPrimaryContexts() { QVariant var = getProperty("PrimaryContexts"); return qdbus_cast >(var); } bool QOfonoDataConnectionManagerInterface::isAttached() { QVariant var = getProperty("Attached"); return qdbus_cast(var); } bool QOfonoDataConnectionManagerInterface::isRoamingAllowed() { QVariant var = getProperty("RoamingAllowed"); return qdbus_cast(var); } bool QOfonoDataConnectionManagerInterface::isPowered() { QVariant var = getProperty("Powered"); return qdbus_cast(var); } void QOfonoDataConnectionManagerInterface::connectNotify(const char *signal) { if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) { if(!connection().connect(QLatin1String(OFONO_SERVICE), this->path(), QLatin1String(OFONO_DATA_CONNECTION_MANAGER_INTERFACE), QLatin1String("PropertyChanged"), this,SIGNAL(propertyChanged(const QString &, const QDBusVariant & )))) { qWarning() << "PropertyCHanged not connected"; } } if (QLatin1String(signal) == SIGNAL(propertyChangedContext(QString,QString,QDBusVariant))) { QOfonoDBusHelper *helper; helper = new QOfonoDBusHelper(this); dbusConnection.connect(QLatin1String(OFONO_SERVICE), this->path(), QLatin1String(OFONO_DATA_CONNECTION_MANAGER_INTERFACE), QLatin1String("PropertyChanged"), helper,SLOT(propertyChanged(QString,QDBusVariant))); QObject::connect(helper,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)), this,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)), Qt::UniqueConnection); } } void QOfonoDataConnectionManagerInterface::disconnectNotify(const char *signal) { if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QVariant))) { } } QVariant QOfonoDataConnectionManagerInterface::getProperty(const QString &property) { QVariant var; QVariantMap map = getProperties(); if (map.contains(property)) { var = map.value(property); } else { qDebug() << Q_FUNC_INFO << "does not contain" << property; } return var; } QVariantMap QOfonoDataConnectionManagerInterface::getProperties() { QDBusReply reply = this->call(QLatin1String("GetProperties")); return reply.value(); } QOfonoPrimaryDataContextInterface::QOfonoPrimaryDataContextInterface(const QString &dbusPathName, QObject *parent) : QDBusAbstractInterface(QLatin1String(OFONO_SERVICE), dbusPathName, OFONO_DATA_CONTEXT_INTERFACE, QDBusConnection::systemBus(), parent) { } QOfonoPrimaryDataContextInterface::~QOfonoPrimaryDataContextInterface() { } bool QOfonoPrimaryDataContextInterface::isActive() { QVariant var = getProperty("Active"); return qdbus_cast(var); } QString QOfonoPrimaryDataContextInterface::getApName() { QVariant var = getProperty("AccessPointName"); return qdbus_cast(var); } QString QOfonoPrimaryDataContextInterface::getType() { QVariant var = getProperty("Type"); return qdbus_cast(var); } QString QOfonoPrimaryDataContextInterface::getName() { QVariant var = getProperty("Name"); return qdbus_cast(var); } QVariantMap QOfonoPrimaryDataContextInterface::getSettings() { QVariant var = getProperty("Settings"); return qdbus_cast(var); } QString QOfonoPrimaryDataContextInterface::getInterface() { QVariant var = getProperty("Interface"); return qdbus_cast(var); } QString QOfonoPrimaryDataContextInterface::getAddress() { QVariant var = getProperty("Address"); return qdbus_cast(var); } bool QOfonoPrimaryDataContextInterface::setActive(bool on) { // this->setProperty("Active", QVariant(on)); return setProp("Active", qVariantFromValue(on)); } bool QOfonoPrimaryDataContextInterface::setApn(const QString &name) { return setProp("AccessPointName", QVariant::fromValue(name)); } void QOfonoPrimaryDataContextInterface::connectNotify(const char *signal) { if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) { if(!connection().connect(QLatin1String(OFONO_SERVICE), this->path(), QLatin1String(OFONO_DATA_CONTEXT_INTERFACE), QLatin1String("PropertyChanged"), this,SIGNAL(propertyChanged(const QString &, const QDBusVariant & )))) { qWarning() << "PropertyCHanged not connected"; } } if (QLatin1String(signal) == SIGNAL(propertyChangedContext(QString,QString,QDBusVariant))) { QOfonoDBusHelper *helper; helper = new QOfonoDBusHelper(this); dbusConnection.connect(QLatin1String(OFONO_SERVICE), this->path(), QLatin1String(OFONO_DATA_CONTEXT_INTERFACE), QLatin1String("PropertyChanged"), helper,SLOT(propertyChanged(QString,QDBusVariant))); QObject::connect(helper,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)), this,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)), Qt::UniqueConnection); } } void QOfonoPrimaryDataContextInterface::disconnectNotify(const char *signal) { if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QVariant))) { } } QVariant QOfonoPrimaryDataContextInterface::getProperty(const QString &property) { QVariant var; QVariantMap map = getProperties(); if (map.contains(property)) { var = map.value(property); } else { qDebug() << Q_FUNC_INFO << "does not contain" << property; } return var; } QVariantMap QOfonoPrimaryDataContextInterface::getProperties() { QDBusReply reply = this->call(QLatin1String("GetProperties")); return reply.value(); } bool QOfonoPrimaryDataContextInterface::setProp(const QString &property, const QVariant &var) { QList args; args << qVariantFromValue(property) << qVariantFromValue(QDBusVariant(var)); QDBusMessage reply = this->callWithArgumentList(QDBus::AutoDetect, QLatin1String("SetProperty"), args); bool ok = true; if(reply.type() != QDBusMessage::ReplyMessage) { qWarning() << reply.errorMessage(); ok = false; } qWarning() << reply.errorMessage(); return ok; } QOfonoSmsInterface::QOfonoSmsInterface(const QString &dbusPathName, QObject *parent) : QDBusAbstractInterface(QLatin1String(OFONO_SERVICE), dbusPathName, OFONO_SMS_MANAGER_INTERFACE, QDBusConnection::systemBus(), parent) { } QOfonoSmsInterface::~QOfonoSmsInterface() { } void QOfonoSmsInterface::connectNotify(const char *signal) { if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) { if(!connection().connect(QLatin1String(OFONO_SERVICE), this->path(), QLatin1String(OFONO_SMS_MANAGER_INTERFACE), QLatin1String("PropertyChanged"), this,SIGNAL(propertyChanged(const QString &, const QDBusVariant & )))) { qWarning() << "PropertyCHanged not connected"; } } if (QLatin1String(signal) == SIGNAL(propertyChangedContext(QString,QString,QDBusVariant))) { QOfonoDBusHelper *helper; helper = new QOfonoDBusHelper(this); dbusConnection.connect(QLatin1String(OFONO_SERVICE), this->path(), QLatin1String(OFONO_SMS_MANAGER_INTERFACE), QLatin1String("PropertyChanged"), helper,SLOT(propertyChanged(QString,QDBusVariant))); QObject::connect(helper,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)), this,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &))); } if (QLatin1String(signal) == SIGNAL(immediateMessage(QString,QVariantMap))) { if(!connection().connect(QLatin1String(OFONO_SERVICE), this->path(), QLatin1String(OFONO_SMS_MANAGER_INTERFACE), QLatin1String("ImmediateMessage"), this,SIGNAL(immediateMessage(QString,QVariantMap )))) { qWarning() << "PropertyCHanged not connected"; } } if (QLatin1String(signal) == SIGNAL(incomingMessage(QString,QVariantMap))) { if(!connection().connect(QLatin1String(OFONO_SERVICE), this->path(), QLatin1String(OFONO_SMS_MANAGER_INTERFACE), QLatin1String("IncomingMessage"), this,SIGNAL(incomingMessage(QString,QVariantMap)))) { qWarning() << "PropertyCHanged not connected"; } } } void QOfonoSmsInterface::disconnectNotify(const char *signal) { if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QVariant))) { } } QVariant QOfonoSmsInterface::getProperty(const QString &property) { QVariant var; QVariantMap map = getProperties(); if (map.contains(property)) { var = map.value(property); } else { qDebug() << Q_FUNC_INFO << "does not contain" << property; } return var; } QVariantMap QOfonoSmsInterface::getProperties() { QDBusReply reply = this->call(QLatin1String("GetProperties")); return reply.value(); } void QOfonoSmsInterface::sendMessage(const QString &to, const QString &message) { QDBusReply reply = this->call(QLatin1String("SendMessage"), QVariant::fromValue(to), QVariant::fromValue(message)); bool ok = true; if(reply.error().type() == QDBusError::InvalidArgs) { qWarning() << reply.error().message(); ok = false; } } QT_END_NAMESPACE