Files
qcma/cmaserver.cpp
codestation 6b17d2bc94 Moved conection logic from Qcma/ListenerWorker to CmaServer/CmaClient.
Added tray icon.
Quit now really quits the application.
2013-08-13 10:22:45 -04:30

73 lines
1.8 KiB
C++

#include "cmaserver.h"
#include "wirelessworker.h"
#include <QDebug>
#include <QHostInfo>
#include <QMutex>
#include <QSettings>
CmaServer::CmaServer(QObject *parent) :
QObject(parent), num_retries(0)
{
strcpy(hostname, QHostInfo::localHostName().toStdString().c_str());
BroadcastSignal::info.name = hostname;
}
void CmaServer::listen()
{
QThread *thread = new QThread();
if(QSettings().value("wireless", false).toBool()) {
connect(&timer, SIGNAL(timeout()), this, SLOT(connectWireless()));
broadcast.start();
timer.setSingleShot(true);
} else {
timer.setSingleShot(false);
connect(&timer, SIGNAL(timeout()), this, SLOT(connectUsb()));
}
moveToThread(thread);
connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater()));
timer.start(2000);
thread->start();
}
void CmaServer::connectUsb()
{
qDebug() << "From connectUsb: "<< QThread::currentThreadId();
vita_device_t *vita = VitaMTP_Get_First_USB_Vita();
if(vita) {
qDebug("Detected PS Vita via USB");
timer.stop();
emit newConnection(vita);
} else {
qDebug("No PS Vita found. Attempt %d", ++num_retries);
}
}
void CmaServer::connectWireless()
{
typedef BroadcastSignal BS;
qDebug() << "From connectWireless: "<< QThread::currentThreadId();
vita_device_t *vita = VitaMTP_Get_First_Wireless_Vita(&BS::info, 0, 0, BS::deviceRegistered, BS::generatePin);
if(vita) {
qDebug("Detected PS Vita in wireless mode");
emit newConnection(vita);
} else {
qDebug("PS Vita couldn't be detected. Attempt %d", ++num_retries);
}
}
void CmaServer::continueProcess()
{
qDebug("Restarting CmaServer thread");
num_retries = 0;
timer.start();
}
void CmaServer::stopProcess()
{
timer.stop();
}