#ifndef _LIRC_H_ #define _LIRC_H_ #include #include #include class TQSocket; typedef TQMap Remotes; class Lirc : public TQObject { Q_OBJECT public: /** * Constructor */ Lirc(TQObject *parent); /** * Destructor */ virtual ~Lirc(); /** * Returns true if the connection to lircd is operational */ bool isConnected() const { return m_socket; } /** * The names of the remote configured controls */ const TQStringList remotes() const; /** * The names of the buttons for the specified * remote control */ const TQStringList buttons(const TQString &remote) const { return m_remotes[remote]; } signals: /** * Emitted when the list of controls / buttons was cmpletely 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 &, const TQString &, int); private slots: void slotRead(); private: void update(); const TQString readLine(); void sendCommand(const TQString &); private: TQSocket *m_socket; Remotes m_remotes; }; #endif