summaryrefslogtreecommitdiffstats
path: root/tdelirc/irkick/klircclient.h
diff options
context:
space:
mode:
Diffstat (limited to 'tdelirc/irkick/klircclient.h')
-rw-r--r--tdelirc/irkick/klircclient.h115
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