Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Convert LCD class from using MythSocket to using QTcpSocket.
  • Loading branch information
daniel-kristjansson committed Oct 11, 2012
1 parent c51b333 commit 4587563
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 32 deletions.
45 changes: 21 additions & 24 deletions mythtv/libs/libmythbase/lcddevice.cpp
Expand Up @@ -19,6 +19,7 @@
#include <QTextStream>
#include <QTextCodec>
#include <QByteArray>
#include <QTcpSocket>

// MythTV headers
#include "lcddevice.h"
Expand Down Expand Up @@ -167,23 +168,27 @@ bool LCD::connectToHost(const QString &lhostname, unsigned int lport)
.arg(count));

if (socket)
socket->DecrRef();
delete socket;

socket = new MythSocket(-1, this);
if (socket->connect(hostname, port))
socket = new QTcpSocket();

QObject::connect(socket, SIGNAL(readyRead()),
this, SLOT(ReadyRead()));
QObject::connect(socket, SIGNAL(disconnected()),
this, SLOT(Disconnected()));

socket->connectToHost(hostname, port);
if (socket->waitForConnected())
{
lcd_ready = false;
bConnected = true;
QTextStream os(socket);
os << "HELLO\n";

// HACK make sure the ready read thread is awake
usleep(1000);
socket->Lock();
socket->Unlock();
os.flush();

break;
}
socket->close();

usleep(500000);
}
Expand All @@ -204,7 +209,7 @@ void LCD::sendToServer(const QString &someText)
return;

// Check the socket, make sure the connection is still up
if (socket->state() == MythSocket::Idle)
if (QAbstractSocket::ConnectedState != socket->state())
{
lcd_ready = false;

Expand Down Expand Up @@ -253,12 +258,13 @@ void LCD::restartConnection()
connectToHost(hostname, port);
}

void LCD::readyRead(MythSocket *sock)
void LCD::ReadyRead(void)
{
(void) sock;

QMutexLocker locker(&socketLock);

if (!socket)
return;

QString lineFromServer, tempString;
QStringList aList;
QStringList::Iterator it;
Expand All @@ -272,7 +278,7 @@ void LCD::readyRead(MythSocket *sock)
int dataSize = socket->bytesAvailable() + 1;
QByteArray data(dataSize + 1, 0);

socket->readBlock(data.data(), dataSize);
socket->read(data.data(), dataSize);

lineFromServer = data;
lineFromServer = lineFromServer.replace( QRegExp("\n"), " " );
Expand Down Expand Up @@ -372,20 +378,11 @@ void LCD::init()
}
}

void LCD::connectionClosed(MythSocket *sock)
void LCD::Disconnected(void)
{
(void) sock;
bConnected = false;
}

void LCD::connectionFailed(MythSocket *sock)
{
QMutexLocker locker(&socketLock);
QString err = sock->errorToString();
LOG(VB_GENERAL, LOG_ERR, QString("Could not connect to LCDServer: %1")
.arg(err));
}

void LCD::stopAll()
{
if (!lcd_ready)
Expand Down Expand Up @@ -736,7 +733,7 @@ LCD::~LCD()

if (socket)
{
socket->DecrRef();
delete socket;
socket = NULL;
lcd_ready = false;
}
Expand Down
16 changes: 8 additions & 8 deletions mythtv/libs/libmythbase/lcddevice.h
Expand Up @@ -11,10 +11,11 @@
#include <QList>

#include "mythbaseexp.h"
#include "mythsocket_cb.h"

enum CHECKED_STATE {CHECKED = 0, UNCHECKED, NOTCHECKABLE };

class QTcpSocket;

class MBASE_PUBLIC LCDMenuItem
{
public:
Expand Down Expand Up @@ -169,7 +170,7 @@ enum LCDFunctionSet {
FUNC_NEWS = 7 << 1,
};

class MBASE_PUBLIC LCD : public QObject, public MythSocketCBs
class MBASE_PUBLIC LCD : public QObject
{
Q_OBJECT

Expand Down Expand Up @@ -308,13 +309,12 @@ class MBASE_PUBLIC LCD : public QObject, public MythSocketCBs
QString quotedString(const QString &s);
void describeServer();

// mythsocket CB's
void connected(MythSocket *sock) { (void)sock; }
void connectionClosed(MythSocket *sock);
void readyRead(MythSocket *sock);
void connectionFailed(MythSocket *sock);
private slots:
void ReadyRead(void);
void Disconnected(void);

MythSocket *socket;
private:
QTcpSocket *socket;
QMutex socketLock;
QString hostname;
uint port;
Expand Down

0 comments on commit 4587563

Please sign in to comment.