diff --git a/plugins/deviceplugins/lgsmarttv/devicepluginlgsmarttv.cpp b/plugins/deviceplugins/lgsmarttv/devicepluginlgsmarttv.cpp index 9c029d3e..f2cb8259 100644 --- a/plugins/deviceplugins/lgsmarttv/devicepluginlgsmarttv.cpp +++ b/plugins/deviceplugins/lgsmarttv/devicepluginlgsmarttv.cpp @@ -103,13 +103,6 @@ DeviceManager::DeviceError DevicePluginLgSmartTv::discoverDevices(const DeviceCl DeviceManager::DeviceSetupStatus DevicePluginLgSmartTv::setupDevice(Device *device) { - foreach (Device* d, myDevices()) { - if (d->paramValue("uuid").toString() == device->paramValue("uuid").toString()) { - qWarning() << "LG Smart Tv (" << device->paramValue("model").toString() << ")" << "allready added...."; - return DeviceManager::DeviceSetupStatusFailure; - } - } - device->setName("LG Smart Tv (" + device->paramValue("model").toString() + ")"); UpnpDeviceDescriptor upnpDeviceDescriptor; @@ -125,7 +118,6 @@ DeviceManager::DeviceSetupStatus DevicePluginLgSmartTv::setupDevice(Device *devi // TODO: make dynamic...displayPin setup!!! tvDevice->setKey("539887"); - tvDevice->setupEventHandler(); connect(tvDevice, &TvDevice::pairingFinished, this, &DevicePluginLgSmartTv::pairingFinished); connect(tvDevice, &TvDevice::sendCommandFinished, this, &DevicePluginLgSmartTv::sendingCommandFinished); @@ -211,8 +203,12 @@ void DevicePluginLgSmartTv::upnpDiscoveryFinished(const QListsetupEventHandler(); } void DevicePluginLgSmartTv::deviceRemoved(Device *device) @@ -223,8 +219,9 @@ void DevicePluginLgSmartTv::deviceRemoved(Device *device) TvDevice *tvDevice= m_tvList.key(device); qDebug() << "remove LG SmartTv " << tvDevice->modelName(); + tvDevice->endPairing(); m_tvList.remove(tvDevice); - tvDevice->deleteLater(); + delete tvDevice; } void DevicePluginLgSmartTv::guhTimer() @@ -240,14 +237,6 @@ void DevicePluginLgSmartTv::pairingFinished(const bool &success) TvDevice *tvDevice = static_cast(sender()); Device *device = m_tvList.value(tvDevice); - // check if we allready set up this device... - foreach (Device *configuredDevice, deviceManager()->findConfiguredDevices(lgSmartTvDeviceClassId)) { - if (configuredDevice->paramValue("uuid").toString() == device->paramValue("uuid").toString()) { - tvDevice->refresh(); - return; - } - } - // ...otherwise emit deviceSetupFinished with appropriate DeviceError if (success) { emit deviceSetupFinished(device, DeviceManager::DeviceSetupStatusSuccess); diff --git a/plugins/deviceplugins/lgsmarttv/devicepluginlgsmarttv.h b/plugins/deviceplugins/lgsmarttv/devicepluginlgsmarttv.h index 8ba719f5..6d830c37 100644 --- a/plugins/deviceplugins/lgsmarttv/devicepluginlgsmarttv.h +++ b/plugins/deviceplugins/lgsmarttv/devicepluginlgsmarttv.h @@ -42,6 +42,7 @@ public: DeviceManager::DeviceError executeAction(Device *device, const Action &action) override; void upnpDiscoveryFinished(const QList &upnpDeviceDescriptorList) override; void upnpNotifyReceived(const QByteArray ¬ifyData); + void postSetupDevice(Device *device) override; void deviceRemoved(Device *device) override; diff --git a/plugins/deviceplugins/lgsmarttv/tvdevice.cpp b/plugins/deviceplugins/lgsmarttv/tvdevice.cpp index 7dcee0d6..8092838f 100644 --- a/plugins/deviceplugins/lgsmarttv/tvdevice.cpp +++ b/plugins/deviceplugins/lgsmarttv/tvdevice.cpp @@ -172,7 +172,7 @@ void TvDevice::sendCommand(TvDevice::RemoteKey key, ActionId actionId) void TvDevice::setupEventHandler() { //qDebug() << "set up event handler " << m_hostAddress.toString() << m_port; - m_eventHandler = new TvEventHandler(this,hostAddress(),port()); + m_eventHandler = new TvEventHandler(this, hostAddress(), port()); connect(m_eventHandler, &TvEventHandler::eventOccured, this, &TvDevice::eventOccured); }