Merge commit 'refs/merge-requests/1' of gitorious.org:meego-cellular/ofono-qt into...
[profile/ivi/ofono-qt.git] / lib / ofononetworkregistration.h
1 /*
2  * This file is part of ofono-qt
3  *
4  * Copyright (C) 2010-2011 Nokia Corporation and/or its subsidiary(-ies).
5  *
6  * Contact: Alexander Kanavin <alexander.kanavin@nokia.com>
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public License
10  * version 2.1 as published by the Free Software Foundation.
11  *
12  * This library is distributed in the hope that it will be useful, but
13  * WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with this library; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20  * 02110-1301 USA
21  *
22  */
23
24 #ifndef OFONONETWORKREGISTRATION_H
25 #define OFONONETWORKREGISTRATION_H
26
27 #include <QtCore/QObject>
28 #include <QStringList>
29 #include <QDBusError>
30 #include <QDBusObjectPath>
31 #include "ofonomodeminterface.h"
32 #include "libofono-qt_global.h"
33
34 struct OfonoOperatorStruct {
35     QDBusObjectPath path;
36     QVariantMap properties;
37 };
38 typedef QList<OfonoOperatorStruct> OfonoOperatorList;
39 Q_DECLARE_METATYPE(OfonoOperatorStruct)
40 Q_DECLARE_METATYPE(OfonoOperatorList)
41
42 //! This class is used to access oFono network registration API
43 /*!
44  * The API is documented in
45  * http://git.kernel.org/?p=network/ofono/ofono.git;a=blob_plain;f=doc/network-api.txt
46  */
47 class OFONO_QT_EXPORT OfonoNetworkRegistration : public OfonoModemInterface
48 {
49     Q_OBJECT
50
51     Q_PROPERTY(QString mode READ mode NOTIFY modeChanged)
52     Q_PROPERTY(QString status READ status NOTIFY statusChanged)
53     Q_PROPERTY(uint locationAreaCode READ locationAreaCode NOTIFY locationAreaCodeChanged)
54     Q_PROPERTY(uint cellId READ cellId NOTIFY cellIdChanged)
55     Q_PROPERTY(QString mcc READ mcc NOTIFY mccChanged)
56     Q_PROPERTY(QString mnc READ mnc NOTIFY mncChanged)
57     Q_PROPERTY(QString technology READ technology NOTIFY technologyChanged)
58     Q_PROPERTY(QString name READ name NOTIFY nameChanged)
59     Q_PROPERTY(uint strength READ strength NOTIFY strengthChanged)
60     Q_PROPERTY(QString baseStation READ baseStation NOTIFY baseStationChanged)
61     
62 public:
63     OfonoNetworkRegistration(OfonoModem::SelectionSetting modemSetting, const QString &modemPath, QObject *parent=0);
64     ~OfonoNetworkRegistration();
65     
66     /* Properties */
67     QString mode() const;
68     QString status() const;
69     uint locationAreaCode() const;
70     uint cellId() const;
71     QString mcc() const;
72     QString mnc() const;
73     QString technology() const;
74     QString name() const;
75     uint strength() const;
76     QString baseStation() const;
77     
78     void registerOp();
79     void getOperators();
80     void scan();
81     
82 signals:
83     void modeChanged(const QString &mode);
84     void statusChanged(const QString &status);
85     void locationAreaCodeChanged(uint locationAreaCode);
86     void cellIdChanged(uint cellId);
87     void mccChanged(const QString &mcc);
88     void mncChanged(const QString &mnc);
89     void technologyChanged(const QString &technology);
90     void nameChanged(const QString &name);
91     void strengthChanged(uint strength);
92     void baseStationChanged(const QString &baseStation);
93
94     void registerComplete(bool success);
95     void getOperatorsComplete(bool success, const QStringList &operatorIds);
96     void scanComplete(bool success, const QStringList &operatorIds);
97
98 private slots:
99     void propertyChanged(const QString& property, const QVariant& value);
100     void registerResp();
101     void registerErr(QDBusError error);
102     void getOperatorsResp(OfonoOperatorList list);
103     void getOperatorsErr(QDBusError error);
104     void scanResp(OfonoOperatorList list);
105     void scanErr(QDBusError error);
106
107 private:
108
109 };
110
111 #endif  /* !OFONONETWORKREGISTRATION_H */