equal
deleted
inserted
replaced
7 #include <QMutex> |
7 #include <QMutex> |
8 |
8 |
9 #include <QList> |
9 #include <QList> |
10 |
10 |
11 QList<HWMap*> srvsList; |
11 QList<HWMap*> srvsList; |
12 QMutex tcpSrvMut; |
|
13 |
12 |
14 HWMap::HWMap() : |
13 HWMap::HWMap() : |
15 m_isStarted(false) |
14 m_isStarted(false) |
16 { |
15 { |
17 IPCServer = new QTcpServer(this); |
16 IPCServer = new QTcpServer(this); |
33 { |
32 { |
34 QImage im((uchar*)(const char*)readbuffer, 256, 128, QImage::Format_Mono); |
33 QImage im((uchar*)(const char*)readbuffer, 256, 128, QImage::Format_Mono); |
35 im.setNumColors(2); |
34 im.setNumColors(2); |
36 |
35 |
37 IPCSocket->close(); |
36 IPCSocket->close(); |
38 //IPCSocket->deleteLater(); |
|
39 //IPCSocket = 0; |
|
40 IPCServer->close(); |
37 IPCServer->close(); |
41 //deleteLater(); |
|
42 |
|
43 |
38 |
44 emit ImageReceived(im); |
39 emit ImageReceived(im); |
45 readbuffer.clear(); |
40 readbuffer.clear(); |
46 if(srvsList.size()==1) srvsList.pop_front(); |
41 if(srvsList.size()==1) srvsList.pop_front(); |
47 emit isReadyNow(); |
42 emit isReadyNow(); |
84 .arg(error) + bindir->absolutePath() + "/hwengine)"); |
79 .arg(error) + bindir->absolutePath() + "/hwengine)"); |
85 } |
80 } |
86 |
81 |
87 void HWMap::tcpServerReady() |
82 void HWMap::tcpServerReady() |
88 { |
83 { |
89 tcpSrvMut.lock(); |
|
90 disconnect(srvsList.front(), SIGNAL(isReadyNow()), *(++srvsList.begin()), SLOT(tcpServerReady())); |
84 disconnect(srvsList.front(), SIGNAL(isReadyNow()), *(++srvsList.begin()), SLOT(tcpServerReady())); |
91 srvsList.pop_front(); |
85 srvsList.pop_front(); |
92 tcpSrvMut.unlock(); |
|
93 |
86 |
94 RealStart(); |
87 RealStart(); |
95 } |
88 } |
96 |
89 |
97 void HWMap::Start() |
90 void HWMap::Start() |
98 { |
91 { |
99 tcpSrvMut.lock(); |
|
100 if(srvsList.isEmpty()) { |
92 if(srvsList.isEmpty()) { |
101 srvsList.push_back(this); |
93 srvsList.push_back(this); |
102 tcpSrvMut.unlock(); |
|
103 } else { |
94 } else { |
104 connect(srvsList.back(), SIGNAL(isReadyNow()), this, SLOT(tcpServerReady())); |
95 connect(srvsList.back(), SIGNAL(isReadyNow()), this, SLOT(tcpServerReady())); |
105 srvsList.push_back(this); |
96 srvsList.push_back(this); |
106 tcpSrvMut.unlock(); |
|
107 return; |
97 return; |
108 } |
98 } |
109 |
99 |
110 RealStart(); |
100 RealStart(); |
111 } |
101 } |