diff options
Diffstat (limited to 'tdelirc/irkick/klircclient.h')
-rw-r--r-- | tdelirc/irkick/klircclient.h | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/tdelirc/irkick/klircclient.h b/tdelirc/irkick/klircclient.h new file mode 100644 index 0000000..3af4637 --- /dev/null +++ b/tdelirc/irkick/klircclient.h @@ -0,0 +1,115 @@ +// +// +// C++ Interface: $MODULE$ +// +// Description: +// +// +// Author: Gav Wood <gav@kde.org>, (C) 2003 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#ifndef KLIRCCLIENT_H +#define KLIRCCLIENT_H + +#include <tqobject.h> +#include <tqmap.h> +#include <tqstring.h> +#include <tqstringlist.h> + +class TQSocket; +class TQSocketNotifier; + +/** +@author Malte Starostik +@author Gav Wood +*/ + +class KLircClient: public TQObject +{ + Q_OBJECT + + +private: + struct lirc_config *theConfig; + TQSocket *theSocket; + TQSocketNotifier *theNotifier; + TQMap<TQString, TQStringList> theRemotes; + bool listIsUpToDate; + + void updateRemotes(); + void sendCommand(const TQString &command); + const TQString readLine(); + +private slots: + void slotRead(); + void slotClosed(); + +signals: + /** + * Emitted when the list of controls / buttons was completely read + */ + void remotesRead(); + + /** + * Emitted when a IR command was received + * + * The arguments are the name of the remote control used, + * the name of the button pressed and the repeat counter. + * + * The signal is emitted repeatedly as long as the button + * on the remote control remains pressed. + * The repeat counter starts with 0 and increases + * every time this signal is emitted. + */ + void commandReceived(const TQString &remote, const TQString &button, int repeatCounter); + + /** + * Emitted when the Lirc connection is closed. + */ + void connectionClosed(); + +public: + /** + * Query status of connection. + * + * @returns true if connected to lircd. + */ + bool isConnected() const; + + /** + * Query status of remote list. + * + * Make sure this is true before calling remotes()/buttons(...). + * + * @returns true if up to date. + */ + bool haveFullList() const; + + /** + * Retrieve list of remote controls. + * + * @returns said list. + */ + const TQStringList remotes() const; + + /** + * Retrieve list of buttons of a praticular remote control. + * + * @returns said list. + */ + const TQStringList buttons(const TQString &theRemote) const; + + /** + * Connects to lirc. + * + * @returns true if connection is made. + */ + bool connectToLirc(); + + KLircClient(TQWidget *parent = 0, const char *name = 0); + ~KLircClient(); +}; + +#endif |