From 4fa13bd9ece65ae1a3bd8567706907410e880741 Mon Sep 17 00:00:00 2001 From: codestation Date: Sat, 14 Feb 2015 22:01:42 -0430 Subject: [PATCH] Reset the device on a failed information exchange. Do not start an udp broadcast service on usb client. --- src/cmaclient.cpp | 10 ++++++++-- src/cmaclient.h | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/cmaclient.cpp b/src/cmaclient.cpp index 606a91b..252737c 100644 --- a/src/cmaclient.cpp +++ b/src/cmaclient.cpp @@ -92,6 +92,8 @@ void CmaClient::connectWireless() setActive(true); + broadcast = new CmaBroadcast(this); + do { qDebug("Waiting for wireless connection"); if((vita = VitaMTP_Get_First_Wireless_Vita(&host, 0, CC::deviceRegistered, CC::generatePin, CC::registrationComplete)) != NULL) { @@ -122,13 +124,17 @@ void CmaClient::processNewConnection(vita_device_t *device) { QMutexLocker locker(&mutex); in_progress = true; - broadcast.setUnavailable(); + broadcast->setUnavailable(); qDebug("Vita connected: id %s", VitaMTP_Get_Identification(device)); DeviceCapability vita_info; if(!vita_info.exchangeInfo(device)) { qCritical("Error while exchanging info with the vita"); + if(VitaMTP_Get_Device_Type(device) == VitaDeviceUSB) { + // reset the device + VitaMTP_USB_Reset(device); + } } else { QSettings settings; @@ -150,7 +156,7 @@ void CmaClient::processNewConnection(vita_device_t *device) emit deviceDisconnected(); - broadcast.setAvailable(); + broadcast->setAvailable(); in_progress = false; sema.release(); } diff --git a/src/cmaclient.h b/src/cmaclient.h index 4fd0700..c9d13c6 100644 --- a/src/cmaclient.h +++ b/src/cmaclient.h @@ -54,7 +54,7 @@ private: static int cancelCallback(); static void registrationComplete(); - CmaBroadcast broadcast; + CmaBroadcast *broadcast; Database *m_db; static QString tempOnlineId;