vslocalsocket.cpp 930 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
// Copyright (c) 2012-2017 VideoStitch SAS
// Copyright (c) 2018 stitchEm

#include "vslocalsocket.hpp"

#include <QLocalSocket>

VSLocalSocket::VSLocalSocket(QObject *parent) : QObject(parent), socket(nullptr) {}

void VSLocalSocket::setSocket(QLocalSocket *sock) {
  socket = sock;
  connect(socket, &QLocalSocket::connected, this, &VSLocalSocket::socketConnected);
  connect(socket, &QLocalSocket::disconnected, this, &VSLocalSocket::socketDisconnected);
  connect(socket, &QLocalSocket::readyRead, this, &VSLocalSocket::messageAvailable);
  socket->setParent(this);
}

void VSLocalSocket::messageAvailable() {
  QByteArray packet;
  QDataStream in(&packet, QIODevice::ReadOnly);
  packet = socket->readAll();
  Packet message;
  in >> message;
  emit messageReceived(message);
}

void VSLocalSocket::socketConnected() { emit connected(); }

void VSLocalSocket::socketDisconnected() {
  emit disconnected();
  deleteLater();
}