Fix bug with calls on hold
[skype-call-recorder.git] / skype.h
blobbb10c061454ec839000e6e7f14f652bb41568e61
1 /*
2 Skype Call Recorder
3 Copyright (C) 2008 jlh (jlh at gmx dot ch)
5 This program is free software; you can redistribute it and/or modify it
6 under the terms of the GNU General Public License as published by the
7 Free Software Foundation; either version 2 of the License, version 3 of
8 the License, or (at your option) any later version.
10 This program is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details.
15 You should have received a copy of the GNU General Public License along
16 with this program; if not, write to the Free Software Foundation, Inc.,
17 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 The GNU General Public License version 2 is included with the source of
20 this program under the file name COPYING. You can also get a copy on
21 http://www.fsf.org/
24 #ifndef SKYPE_H
25 #define SKYPE_H
27 #include <QObject>
28 #include <QDBusConnection>
29 #include <QDBusAbstractAdaptor>
30 #include <QString>
32 class SkypeExport;
33 class QTimer;
34 class QDBusError;
35 class QDBusMessage;
37 class Skype : public QObject {
38 Q_OBJECT
39 public:
40 friend class SkypeExport;
42 Skype(QObject *);
43 QString sendWithReply(const QString &, int = 10000);
44 void send(const QString &);
45 QString getObject(const QString &);
46 const QString &getSkypeName() const { return skypeName; }
48 signals:
49 void notify(const QString &) const;
50 void connected(bool) const;
51 void connectionFailed(const QString &) const;
53 private:
54 void sendWithAsyncReply(const QString &);
55 void doNotify(const QString &);
57 private slots:
58 void connectToSkype();
59 void methodCallback(const QDBusMessage &);
60 void methodError(const QDBusError &, const QDBusMessage &);
61 void serviceOwnerChanged(const QString &, const QString &, const QString &);
62 void poll();
64 private:
65 QDBusConnection dbus;
66 int connectionState;
67 SkypeExport *exported;
68 QTimer *timer;
69 QString skypeName;
71 private:
72 // disabled
73 Skype(const Skype &);
74 Skype &operator=(const Skype &);
77 class SkypeExport : public QDBusAbstractAdaptor {
78 Q_OBJECT
79 Q_CLASSINFO("D-Bus Interface", "com.Skype.API.Client")
80 public:
81 SkypeExport(Skype *);
83 public slots:
84 Q_NOREPLY void Notify(const QString &);
86 private:
87 Skype *parent;
89 private:
90 // disabled
91 SkypeExport(const SkypeExport &);
92 SkypeExport &operator=(const SkypeExport &);
95 #endif