QTfrontend/hwmap.cpp
changeset 177 c67c15e6fae3
parent 172 5294ada3910b
child 180 ea83b9e9057f
--- a/QTfrontend/hwmap.cpp	Thu Sep 28 16:34:42 2006 +0000
+++ b/QTfrontend/hwmap.cpp	Sun Oct 01 20:14:30 2006 +0000
@@ -32,20 +32,9 @@
  */
 
 #include "hwmap.h"
-#include "hwconsts.h"
 
-#include <QMessageBox>
-#include <QMutex>
-#include <QList>
-
-QList<HWMap*> srvsList;
-
-HWMap::HWMap() :
-  m_isStarted(false)
+HWMap::HWMap()
 {
-  IPCServer = new QTcpServer(this);
-  connect(IPCServer, SIGNAL(newConnection()), this, SLOT(NewConnection()));
-  IPCServer->setMaxPendingConnections(1);
 }
 
 HWMap::~HWMap()
@@ -58,23 +47,19 @@
   Start();
 }
 
-void HWMap::ClientDisconnect()
+QStringList HWMap::setArguments()
+{
+  QStringList arguments;
+  arguments << "46631";
+  arguments << "landpreview";
+  return arguments;
+}
+
+void HWMap::onClientDisconnect()
 {
   QImage im((uchar*)(const char*)readbuffer, 256, 128, QImage::Format_Mono);
   im.setNumColors(2);
-
-  IPCSocket->close();
-  IPCServer->close();
-
   emit ImageReceived(im);
-  readbuffer.clear();
-  if(srvsList.size()==1) srvsList.pop_front();
-  emit isReadyNow();
-}
-
-void HWMap::ClientRead()
-{
-  readbuffer.append(IPCSocket->readAll());
 }
 
 void HWMap::SendToClientFirst()
@@ -86,64 +71,3 @@
 
   IPCSocket->write("\x01!", 2);
 }
-
-void HWMap::NewConnection()
-{
-  QTcpSocket * client = IPCServer->nextPendingConnection();
-  if(!IPCSocket) {
-    IPCServer->close();
-    IPCSocket = client;
-    connect(client, SIGNAL(disconnected()), this, SLOT(ClientDisconnect()));
-    connect(client, SIGNAL(readyRead()), this, SLOT(ClientRead()));
-    SendToClientFirst();
-  } else {
-    qWarning("2nd IPC client?!");
-    client->disconnectFromHost();
-  }
-}
-
-void HWMap::StartProcessError(QProcess::ProcessError error)
-{
-  QMessageBox::critical(0, tr("Error"),
-			tr("Unable to run engine: %1 (")
-			.arg(error) + bindir->absolutePath() + "/hwengine)");
-}
-
-void HWMap::tcpServerReady()
-{
-  disconnect(srvsList.front(), SIGNAL(isReadyNow()), *(++srvsList.begin()), SLOT(tcpServerReady()));
-  srvsList.pop_front();
-
-  RealStart();
-}
-
-void HWMap::Start()
-{
-  if(srvsList.isEmpty()) {
-    srvsList.push_back(this);
-  } else {
-    connect(srvsList.back(), SIGNAL(isReadyNow()), this, SLOT(tcpServerReady()));
-    srvsList.push_back(this);
-    return;
-  }
-  
-  RealStart();
-}
-
-void HWMap::RealStart()
-{
-  IPCSocket = 0;
-  if (!IPCServer->listen(QHostAddress::LocalHost, IPC_PORT)) {
-    QMessageBox::critical(0, tr("Error"),
-			  tr("Unable to start the server: %1.")
-			  .arg(IPCServer->errorString()));
-  }
-  
-  QProcess * process;
-  QStringList arguments;
-  process = new QProcess;
-  connect(process, SIGNAL(error(QProcess::ProcessError)), this, SLOT(StartProcessError(QProcess::ProcessError)));
-  arguments << "46631";
-  arguments << "landpreview";
-  process->start(bindir->absolutePath() + "/hwengine", arguments);
-}