00001 #ifndef QS60TELEPHONY_H
00002 #define QS60TELEPHONY_H
00003
00004
00005 #include <QObject>
00006 #include "telephony_global.h"
00007
00008
00009 class QS60TelephonyPrivate;
00010
00011
00012 class QS60Telephony : public QObject
00013 {
00014 Q_OBJECT
00015 Q_DECLARE_PRIVATE(QS60Telephony)
00016 Q_ENUMS(LineStatus)
00017 Q_ENUMS(Error)
00018 Q_CLASSINFO("Author", "Sebastiano Galazzo")
00019 Q_CLASSINFO("Email", "sebastiano.galazzo@gmail.com")
00020
00021 public:
00022 enum Error {
00023 NoError = 0,
00024 OutOfMemoryError,
00025 AccessDeniedError,
00026 TimedOutError,
00027 UnknownError = -1
00028 };
00029
00030 enum LineStatus {
00031 StatusUnknown,
00032 StatusIdle,
00033 StatusDialling,
00034 StatusRinging,
00035 StatusAnswering,
00036 StatusConnecting,
00037 StatusConnected,
00038 StatusReconnectPending,
00039 StatusDisconnecting,
00040 StatusHold,
00041 StatusTransferring,
00042 StatusTransferAlerting
00043 };
00044
00045 explicit QS60Telephony(QObject* parent = 0);
00046 ~QS60Telephony();
00047
00051 Q_INVOKABLE QString IMEI();
00052
00053 Q_INVOKABLE QS60Telephony::Error error() const;
00054
00055 public slots:
00060 void call(const QString& phoneNumber);
00061
00065 void answerIncomingCall();
00066
00070 void terminateCall();
00071
00075 void rejectCall();
00076 #ifdef RECENT_CALLS
00077 void recentCalls();
00078 #endif
00079 bool startMonitoringLine();
00080 void toBackground();
00081 void stopMonitoringLine();
00082 void showOnTop();
00083 void showNormal();
00084
00085 private slots:
00086 void showOnTopDelayed();
00087
00088 signals:
00089 void lineStatusChanged(QS60Telephony::LineStatus status, QString number);
00090 void error(QS60Telephony::Error error);
00091 void answered();
00092 void terminated();
00093
00094 private:
00095 LineStatus cStatus;
00096
00097 private:
00098 friend class QS60TelephonyPrivate;
00099 QS60TelephonyPrivate* d;
00100 };
00101
00102 #endif // QS60TELEPHONY_H
00103
00104