/*
 * Copyright 2009-2010  Stefan Gehn <stefan@srcbox.net>
 * 
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of 
 * the License, or (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#ifndef IRMAINTHREAD_H_
#define IRMAINTHREAD_H_

#include <qthread.h>
#include "Packet.hpp"
#include "TouchData.hpp"


namespace IrTouch
{
class PacketReader;
class Decoder;

class TouchThread : public QThread
{
  Q_OBJECT
public:
	TouchThread(const QString &inputFilePath = QString());
  virtual void run();

Q_SIGNALS:
  void dataDecoded(const IrTouch::TouchData);

private Q_SLOTS:
  void handlePacket(IrTouch::Packet packet);

private:
	PacketReader *mPacketReader;
	Decoder *mDecoder;
	QString mInputFilePath;
	QDataStream *mDumpStream;
};

}
#endif /* IRMAINTHREAD_H_ */
