]> rtime.felk.cvut.cz Git - sojka/tekpic.git/blob - src/osccommthread.h
Initial import.
[sojka/tekpic.git] / src / osccommthread.h
1 /***************************************************************************
2  *   Copyright (C) 2006 by Michal Sojka   *
3  *   sojkam1@fel.cvut.cz   *
4  *                                                                         *
5  *   This program is free software; you can redistribute it and/or modify  *
6  *   it under the terms of the GNU General Public License as published by  *
7  *   the Free Software Foundation; either version 2 of the License, or     *
8  *   (at your option) any later version.                                   *
9  *                                                                         *
10  *   This program is distributed in the hope that it will be useful,       *
11  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
12  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
13  *   GNU General Public License for more details.                          *
14  *                                                                         *
15  *   You should have received a copy of the GNU General Public License     *
16  *   along with this program; if not, write to the                         *
17  *   Free Software Foundation, Inc.,                                       *
18  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
19  ***************************************************************************/
20 #ifndef OSCCOMMTHREAD_H
21 #define OSCCOMMTHREAD_H
22
23 #include <QThread>
24 #include <serial.h>
25 #include <string>
26 #include <iostream>
27 #include <ext/stdio_filebuf.h>
28 #include <vector>
29 #include <QByteArray>
30 using namespace std;
31
32 class OscImage : public QByteArray
33 {
34 public:
35        OscImage()       
36        {
37 //                cout << "Img created" << (void*)this->data() << endl;
38                reserve(1000);
39        }
40        virtual ~OscImage() {
41 //                cout << "Img destroyed" << this << endl;
42        }
43 };
44
45 ostream& operator<<(ostream& s, OscImage& im);
46
47
48 /**
49         @author Michal Sojka <sojkam1@fel.cvut.cz>
50 */
51 class OscCommThread : public QThread
52 {
53         Q_OBJECT
54 public:
55         OscCommThread(const string &tty);
56         ~OscCommThread();
57 private:
58         int m_fd;
59         OscImage *m_img;
60
61         void run();
62         void processImage();
63 signals:
64         void imageAvailable(OscImage *img);
65         void bytesReceived(int bytes);
66 };
67
68 #endif