Update CallForwarding class to match latest oFono
[profile/ivi/ofono-qt.git] / lib / ofonocallforwarding.h
1 /*
2  * This file is part of ofono-qt
3  *
4  * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
5  *
6  * Contact: Alexander Kanavin <alex.kanavin@gmail.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 OFONOCALLFORWARDING_H
25 #define OFONOCALLFORWARDING_H
26  
27 #include <QtCore/QObject>
28 #include <QDBusError>
29 #include "ofonomodeminterface.h"
30 #include "libofono-qt_global.h"
31
32 //! This class is used to access oFono call forwarding API
33 /*!
34  * The API is documented in
35  * http://git.kernel.org/?p=network/ofono/ofono.git;a=blob_plain;f=doc/call-forwarding-api.txt
36  */
37 class OFONO_QT_EXPORT OfonoCallForwarding : public OfonoModemInterface
38 {
39     Q_OBJECT
40
41 public:
42     OfonoCallForwarding(OfonoModem::SelectionSetting modemSetting, const QString &modemPath, QObject *parent=0);
43     ~OfonoCallForwarding();
44
45 public slots:
46     /* Properties */
47     void requestVoiceUnconditional(); /* "" | phonenumber */
48     void setVoiceUnconditional(const QString &property); 
49     void requestVoiceBusy();
50     void setVoiceBusy(const QString &property);
51     void requestVoiceNoReply();
52     void setVoiceNoReply(const QString &property);
53     void requestVoiceNoReplyTimeout();
54     void setVoiceNoReplyTimeout(ushort timeout);
55     void requestVoiceNotReachable();
56     void setVoiceNotReachable(const QString &property);
57     void requestForwardingFlagOnSim();
58     
59     /* Methods */
60     void disableAll(const QString &type); /* "all" | "conditional" */
61     
62 signals:
63     void voiceUnconditionalComplete(bool success, const QString &property);
64     void voiceBusyComplete(bool success, const QString &property);
65     void voiceNoReplyComplete(bool success, const QString &property);
66     void voiceNoReplyTimeoutComplete(bool success, ushort timeout);
67     void voiceNotReachableComplete(bool success, const QString &property);
68     void forwardingFlagOnSimComplete(bool success, bool property);
69
70     void voiceUnconditionalChanged(const QString &property);
71     void voiceBusyChanged(const QString &property);
72     void voiceNoReplyChanged(const QString &property);
73     void voiceNoReplyTimeoutChanged(ushort timeout);
74     void voiceNotReachableChanged(const QString &property);
75     void forwardingFlagOnSimChanged(bool property);
76
77     void setVoiceUnconditionalFailed();
78     void setVoiceBusyFailed();
79     void setVoiceNoReplyFailed();
80     void setVoiceNoReplyTimeoutFailed();
81     void setVoiceNotReachableFailed();
82
83     void disableAllComplete(bool success); 
84
85 private slots:
86     void propertyChanged(const QString& property, const QVariant& value);
87     void setPropertyFailed(const QString& property);
88     void requestPropertyComplete(bool success, const QString& property, const QVariant& value);
89       
90     void disableAllResp();
91     void disableAllErr(QDBusError error);
92 };
93
94 #endif  /* !OFONOCALLFORWARDING_H */