Authentication-Results: name.execsw.org; dkim=pass (1024-bit key) header.d=netbsd.org header.i=@netbsd.org header.b=Wpxnn6Bo; dkim=pass (1024-bit key) header.d=netbsd.org header.i=@netbsd.org header.b=u2sLjGdm Received: by mail.netbsd.org (Postfix, from userid 605) id F34D584D84; Fri, 3 May 2024 12:07:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netbsd.org; s=20240131; t=1714738065; bh=uf0g27G5XIdpbGlMu3x61TLA1EuoKMZteBIXfTGumm0=; h=Date:From:Subject:To:Reply-To:List-Id:List-Unsubscribe; b=Wpxnn6BoO6Qkj6ngyo1wl08igOW53FWfSmmiJHHUk8o6VqpRVH56LofpSiQsqPGGn mv2DnbZMTsxR4Zabq6B7KLtXUS+OtDrTznhHg0PJR3VTG1GbMlItmf3HsWFLYGCPwT x+9m6DM2vPLtUgDzrB3beQD0ZjbParpNnnlJroYs= Received: from localhost (localhost [127.0.0.1]) by mail.netbsd.org (Postfix) with ESMTP id E0E1284D39 for ; Fri, 3 May 2024 12:07:43 +0000 (UTC) X-Virus-Scanned: amavisd-new at netbsd.org Authentication-Results: mail.netbsd.org (amavisd-new); dkim=pass (1024-bit key) header.d=netbsd.org Received: from mail.netbsd.org ([127.0.0.1]) by localhost (mail.netbsd.org [127.0.0.1]) (amavisd-new, port 10025) with ESMTP id U64crH4YnQos for ; Fri, 3 May 2024 12:07:42 +0000 (UTC) Received: from cvs.NetBSD.org (ivanova.NetBSD.org [IPv6:2001:470:a085:999:28c:faff:fe03:5984]) by mail.netbsd.org (Postfix) with ESMTP id 2B42884CCC for ; Fri, 3 May 2024 12:07:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netbsd.org; s=20240131; t=1714738062; bh=uf0g27G5XIdpbGlMu3x61TLA1EuoKMZteBIXfTGumm0=; h=Date:From:Subject:To:Reply-To; b=u2sLjGdmTSmgq3SINXZ2mG3VJ65o8LTpcqnl+gMHY6C5M46GeFLKnJ3w8OcP4dZNO uvwtiCvns5xCyN/Z6EV85SaxEpD9KAPYJr26Y62stnJKDOAhVPfxwMCeKcuygvyr7Y Vddpj72WG/bh2/KpjGYTXdytUfPvPtu3HtZ9nC0k= Received: by cvs.NetBSD.org (Postfix, from userid 500) id 16410FA2C; Fri, 3 May 2024 12:07:42 +0000 (UTC) Content-Transfer-Encoding: 7bit Content-Type: multipart/mixed; boundary="_----------=_1714738062164140" MIME-Version: 1.0 Date: Fri, 3 May 2024 12:07:42 +0000 From: "Thomas Klausner" Subject: CVS commit: pkgsrc/misc/stellarium To: pkgsrc-changes@NetBSD.org Reply-To: wiz@netbsd.org X-Mailer: log_accum Message-Id: <20240503120742.16410FA2C@cvs.NetBSD.org> Sender: pkgsrc-changes-owner@NetBSD.org List-Id: Precedence: bulk List-Unsubscribe: This is a multi-part message in MIME format. --_----------=_1714738062164140 Content-Disposition: inline Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII" Module Name: pkgsrc Committed By: wiz Date: Fri May 3 12:07:41 UTC 2024 Modified Files: pkgsrc/misc/stellarium: distinfo pkgsrc/misc/stellarium/patches: patch-plugins_TelescopeControl_src_INDI_INDIConnection.hpp Added Files: pkgsrc/misc/stellarium/patches: patch-plugins_TelescopeControl_src_INDI_INDIConnection.cpp Log Message: stellarium: use upstream PR for indi 2+ support https://github.com/Stellarium/stellarium/pull/3269 Ride bump. To generate a diff of this commit: cvs rdiff -u -r1.66 -r1.67 pkgsrc/misc/stellarium/distinfo cvs rdiff -u -r0 -r1.1 \ pkgsrc/misc/stellarium/patches/patch-plugins_TelescopeControl_src_INDI_INDIConnection.cpp cvs rdiff -u -r1.1 -r1.2 \ pkgsrc/misc/stellarium/patches/patch-plugins_TelescopeControl_src_INDI_INDIConnection.hpp Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. --_----------=_1714738062164140 Content-Disposition: inline Content-Length: 18693 Content-Transfer-Encoding: binary Content-Type: text/x-diff; charset=us-ascii Modified files: Index: pkgsrc/misc/stellarium/distinfo diff -u pkgsrc/misc/stellarium/distinfo:1.66 pkgsrc/misc/stellarium/distinfo:1.67 --- pkgsrc/misc/stellarium/distinfo:1.66 Fri May 3 11:28:27 2024 +++ pkgsrc/misc/stellarium/distinfo Fri May 3 12:07:41 2024 @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.66 2024/05/03 11:28:27 wiz Exp $ +$NetBSD: distinfo,v 1.67 2024/05/03 12:07:41 wiz Exp $ BLAKE2s (stellarium-24.1.tar.xz) = 36b925cca45bd87db014eaebff3f00166b565052877f95d6c0cc2328e7dc90bf SHA512 (stellarium-24.1.tar.xz) = 60e0e2afb214f4e2d9ba6640f4b699d18c97b05b9f33e9990787a87484c6bd1d7bc87685558956e6dc8a80e93abd8d7f677daeb55d38d8f4f8448e7936999246 @@ -6,6 +6,7 @@ Size (stellarium-24.1.tar.xz) = 32639158 SHA1 (patch-CMakeLists.txt) = d556dff660e0031a98a3484bbac3b3bd29f4d1e1 SHA1 (patch-data_CMakeLists.txt) = 29a5c1c8eb64baff1ef7bf64e3c0ea6bcdc7704f SHA1 (patch-doc_CMakeLists.txt) = 4521054b8915661a4b50cea5e65ed7ccf80ce65e -SHA1 (patch-plugins_TelescopeControl_src_INDI_INDIConnection.hpp) = 7283a90bb29eb28ef57de3846adde050f75c2c5b +SHA1 (patch-plugins_TelescopeControl_src_INDI_INDIConnection.cpp) = 153a3677ca8758a71bcb08b4b380fb2dffba26c5 +SHA1 (patch-plugins_TelescopeControl_src_INDI_INDIConnection.hpp) = ab3a0b572a194333823ecfb681a0df4e8cced0fd SHA1 (patch-src_CMakeLists.txt) = aebac5163a125a26ef04008e8ef30d7a07e04991 SHA1 (patch-src_core_StelFileMgr.cpp) = fa54c05eddbb8db25a3aaa056f838e9e3a361596 Index: pkgsrc/misc/stellarium/patches/patch-plugins_TelescopeControl_src_INDI_INDIConnection.hpp diff -u pkgsrc/misc/stellarium/patches/patch-plugins_TelescopeControl_src_INDI_INDIConnection.hpp:1.1 pkgsrc/misc/stellarium/patches/patch-plugins_TelescopeControl_src_INDI_INDIConnection.hpp:1.2 --- pkgsrc/misc/stellarium/patches/patch-plugins_TelescopeControl_src_INDI_INDIConnection.hpp:1.1 Fri May 3 11:28:27 2024 +++ pkgsrc/misc/stellarium/patches/patch-plugins_TelescopeControl_src_INDI_INDIConnection.hpp Fri May 3 12:07:41 2024 @@ -1,10 +1,25 @@ -$NetBSD: patch-plugins_TelescopeControl_src_INDI_INDIConnection.hpp,v 1.1 2024/05/03 11:28:27 wiz Exp $ +$NetBSD: patch-plugins_TelescopeControl_src_INDI_INDIConnection.hpp,v 1.2 2024/05/03 12:07:41 wiz Exp $ -Compatibility with indi 2.0.7. +Port code to INDI 2.0.2 +https://github.com/Stellarium/stellarium/pull/3269/files ---- plugins/TelescopeControl/src/INDI/INDIConnection.hpp.orig 2024-05-03 11:24:20.270404353 +0000 +--- plugins/TelescopeControl/src/INDI/INDIConnection.hpp.orig 2024-02-04 13:27:52.000000000 +0000 +++ plugins/TelescopeControl/src/INDI/INDIConnection.hpp -@@ -69,18 +69,18 @@ private: +@@ -21,6 +21,7 @@ + + #include + #include "libindi/baseclient.h" ++#include + + #include + #include +@@ -64,21 +65,16 @@ private: + void setSpeed(int speed); + + mutable std::mutex mMutex; +- INDI::BaseDevice* mTelescope = nullptr; ++ INDI::BaseDevice mTelescope; + Coordinates mCoordinates; QStringList mDevices; public: // from INDI::BaseClient @@ -18,20 +33,11 @@ Compatibility with indi 2.0.7. - void newText(ITextVectorProperty *tvp) override; - void newLight(ILightVectorProperty *lvp) override; - void newMessage(INDI::BaseDevice *dp, int messageID) override; -- void serverConnected() override; -- void serverDisconnected(int exit_code) override; -+ void newDevice(INDI::BaseDevice *dp); -+ void removeDevice(INDI::BaseDevice *dp); -+ void newProperty(INDI::Property *property); -+ void removeProperty(INDI::Property *property); -+ void newBLOB(IBLOB *bp); -+ void newSwitch(ISwitchVectorProperty *svp); -+ void newNumber(INumberVectorProperty *nvp); -+ void newText(ITextVectorProperty *tvp); -+ void newLight(ILightVectorProperty *lvp); -+ void newMessage(INDI::BaseDevice *dp, int messageID); -+ void serverConnected(); -+ void serverDisconnected(int exit_code); ++ void newDevice(INDI::BaseDevice dp) override; ++ void removeDevice(INDI::BaseDevice dp) override; ++ void newProperty(INDI::Property property) override; ++ void removeProperty(INDI::Property property) override; ++ void newMessage(INDI::BaseDevice dp, int messageID) override; + void serverConnected() override; + void serverDisconnected(int exit_code) override; void unParkTelescope(); - //void parkTelescope(); - }; Added files: Index: pkgsrc/misc/stellarium/patches/patch-plugins_TelescopeControl_src_INDI_INDIConnection.cpp diff -u /dev/null pkgsrc/misc/stellarium/patches/patch-plugins_TelescopeControl_src_INDI_INDIConnection.cpp:1.1 --- /dev/null Fri May 3 12:07:42 2024 +++ pkgsrc/misc/stellarium/patches/patch-plugins_TelescopeControl_src_INDI_INDIConnection.cpp Fri May 3 12:07:41 2024 @@ -0,0 +1,468 @@ +$NetBSD: patch-plugins_TelescopeControl_src_INDI_INDIConnection.cpp,v 1.1 2024/05/03 12:07:41 wiz Exp $ + +Port code to INDI 2.0.2 +https://github.com/Stellarium/stellarium/pull/3269/files + +--- plugins/TelescopeControl/src/INDI/INDIConnection.cpp.orig 2024-02-04 13:27:52.000000000 +0000 ++++ plugins/TelescopeControl/src/INDI/INDIConnection.cpp +@@ -44,98 +44,96 @@ INDIConnection::Coordinates INDIConnecti + void INDIConnection::setPosition(INDIConnection::Coordinates coords) + { + std::lock_guard lock(mMutex); +- if (!mTelescope) ++ if (!mTelescope.isValid()) + return; + +- if (!mTelescope->isConnected()) ++ if (!mTelescope.isConnected()) + { + qDebug() << "Error: Telescope not connected"; + return; + } + + // Make sure the TRACK member of switch ON_COORD_SET is set +- ISwitchVectorProperty *switchVector = mTelescope->getSwitch("ON_COORD_SET"); +- if (!switchVector) ++ auto switchVector = mTelescope.getSwitch("ON_COORD_SET"); ++ if (!switchVector.isValid()) + { + qDebug() << "Error: unable to find Telescope or ON_COORD_SET switch..."; + return; + } + // Note that confusingly there is a SLEW switch member as well that will move but not track. + // TODO: Figure out if there is to be support for it +- ISwitch *track = IUFindSwitch(switchVector, "TRACK"); ++ auto track = switchVector.findWidgetByName("TRACK"); + if (track->s == ISS_OFF) + { +- track->s = ISS_ON; ++ track->setState(ISS_ON); + sendNewSwitch(switchVector); + } + +- INumberVectorProperty *property = nullptr; +- property = mTelescope->getNumber("EQUATORIAL_EOD_COORD"); +- if (!property) ++ auto property = mTelescope.getNumber("EQUATORIAL_EOD_COORD"); ++ if (!property.isValid()) + { + qDebug() << "Error: unable to find Telescope or EQUATORIAL_EOD_COORD property..."; + return; + } + +- property->np[0].value = coords.RA; +- property->np[1].value = coords.DEC; ++ property[0].setValue(coords.RA); ++ property[1].setValue(coords.DEC); + sendNewNumber(property); + } + + void INDIConnection::syncPosition(INDIConnection::Coordinates coords) + { + std::lock_guard lock(mMutex); +- if (!mTelescope) ++ if (!mTelescope.isValid()) + return; + +- if (!mTelescope->isConnected()) ++ if (!mTelescope.isConnected()) + { + qDebug() << "Error: Telescope not connected"; + return; + } + + // Make sure the SYNC member of switch ON_COORD_SET is set +- ISwitchVectorProperty *switchVector = mTelescope->getSwitch("ON_COORD_SET"); +- if (!switchVector) ++ auto switchVector = mTelescope.getSwitch("ON_COORD_SET"); ++ if (!switchVector.isValid()) + { + qDebug() << "Error: unable to find Telescope or ON_COORD_SET switch..."; + return; + } + +- ISwitch *track = IUFindSwitch(switchVector, "TRACK"); +- ISwitch *slew = IUFindSwitch(switchVector, "SLEW"); +- ISwitch *sync = IUFindSwitch(switchVector, "SYNC"); +- track->s = ISS_OFF; +- slew->s = ISS_OFF; +- sync->s = ISS_ON; ++ auto track = switchVector.findWidgetByName("TRACK"); ++ auto slew = switchVector.findWidgetByName("SLEW"); ++ auto sync = switchVector.findWidgetByName("SYNC"); ++ track->setState(ISS_OFF); ++ slew->setState(ISS_OFF); ++ sync->setState(ISS_ON); + sendNewSwitch(switchVector); + +- INumberVectorProperty *property = nullptr; +- property = mTelescope->getNumber("EQUATORIAL_EOD_COORD"); +- if (!property) ++ auto property = mTelescope.getNumber("EQUATORIAL_EOD_COORD"); ++ if (!property.isValid()) + { + qDebug() << "Error: unable to find Telescope or EQUATORIAL_EOD_COORD property..."; + return; + } + +- property->np[0].value = coords.RA; +- property->np[1].value = coords.DEC; ++ property[0].setValue(coords.RA); ++ property[1].setValue(coords.DEC); + sendNewNumber(property); + + // And now unset SYNC switch member to revert to default state/behavior +- track->s = ISS_ON; +- slew->s = ISS_OFF; +- sync->s = ISS_OFF; ++ track->setState(ISS_ON); ++ slew->setState(ISS_OFF); ++ sync->setState(ISS_OFF); + sendNewSwitch(switchVector); + } + + bool INDIConnection::isDeviceConnected() const + { + std::lock_guard lock(mMutex); +- if (!mTelescope) ++ if (!mTelescope.isValid()) + return false; + +- return mTelescope->isConnected(); ++ return mTelescope.isConnected(); + } + + const QStringList INDIConnection::devices() const +@@ -147,28 +145,28 @@ const QStringList INDIConnection::device + void INDIConnection::unParkTelescope() + { + std::lock_guard lock(mMutex); +- if (!mTelescope || !mTelescope->isConnected()) ++ if (!mTelescope.isValid() || !mTelescope.isConnected()) + return; + +- ISwitchVectorProperty *switchVector = mTelescope->getSwitch("TELESCOPE_PARK"); +- if (!switchVector) ++ auto switchVector = mTelescope.getSwitch("TELESCOPE_PARK"); ++ if (!switchVector.isValid()) + { + qDebug() << "Error: unable to find Telescope or TELESCOPE_PARK switch..."; + return; + } + +- ISwitch *park = IUFindSwitch(switchVector, "PARK"); ++ auto park = switchVector.findWidgetByName("PARK"); + if (park->s == ISS_ON) + { +- park->s = ISS_OFF; ++ park->setState(ISS_OFF); + sendNewSwitch(switchVector); + } + + // The telescope will work without running command below, but I use it to avoid undefined state for parking property. +- ISwitch *unpark = IUFindSwitch(switchVector, "UNPARK"); ++ auto unpark = switchVector.findWidgetByName("UNPARK"); + if (unpark->s == ISS_OFF) + { +- unpark->s = ISS_ON; ++ unpark->setState(ISS_ON); + sendNewSwitch(switchVector); + } + } +@@ -179,27 +177,27 @@ void INDIConnection::unParkTelescope() + void INDIConnection::parkTelescope() + { + std::lock_guard lock(mMutex); +- if (!mTelescope || !mTelescope->isConnected()) ++ if (!mTelescope.isValid() || !mTelescope.isConnected()) + return; + +- ISwitchVectorProperty *switchVector = mTelescope->getSwitch("TELESCOPE_PARK"); +- if (!switchVector) ++ auto switchVector = mTelescope.getSwitch("TELESCOPE_PARK"); ++ if (!switchVector.isValid()) + { + qDebug() << "Error: unable to find Telescope or TELESCOPE_PARK switch..."; + return; + } + +- ISwitch *park = IUFindSwitch(switchVector, "PARK"); ++ auto park = switchVector.findWidgetByName("PARK"); + if (park->s == ISS_OFF) + { +- park->s = ISS_ON; ++ park->setState(ISS_ON); + sendNewSwitch(switchVector); + } + +- ISwitch *unpark = IUFindSwitch(switchVector, "UNPARK"); ++ auto unpark = switchVector.findWidgetByName("UNPARK"); + if (unpark->s == ISS_ON) + { +- unpark->s = ISS_OFF; ++ unpark->setState(ISS_OFF); + sendNewSwitch(switchVector); + } + } +@@ -208,24 +206,24 @@ void INDIConnection::parkTelescope() + void INDIConnection::moveNorth(int speed) + { + std::lock_guard lock(mMutex); +- if (!mTelescope || !mTelescope->isConnected()) ++ if (!mTelescope.isValid() || !mTelescope.isConnected()) + return; + +- ISwitchVectorProperty *switchVector = mTelescope->getSwitch("TELESCOPE_MOTION_NS"); +- if (!switchVector) ++ auto switchVector = mTelescope.getSwitch("TELESCOPE_MOTION_NS"); ++ if (!switchVector.isValid()) + { + qDebug() << "Error: unable to find Telescope or TELESCOPE_MOTION_NS switch..."; + return; + } + +- ISwitch *motion = IUFindSwitch(switchVector, "MOTION_NORTH"); ++ auto motion = switchVector.findWidgetByName("MOTION_NORTH"); + + if (speed == SLEW_STOP) +- motion->s = ISS_OFF; ++ motion->setState(ISS_OFF); + else + { + setSpeed(speed); +- motion->s = ISS_ON; ++ motion->setState(ISS_ON); + } + + sendNewSwitch(switchVector); +@@ -234,24 +232,24 @@ void INDIConnection::moveNorth(int speed + void INDIConnection::moveEast(int speed) + { + std::lock_guard lock(mMutex); +- if (!mTelescope || !mTelescope->isConnected()) ++ if (!mTelescope.isValid() || !mTelescope.isConnected()) + return; + +- ISwitchVectorProperty *switchVector = mTelescope->getSwitch("TELESCOPE_MOTION_WE"); +- if (!switchVector) ++ auto switchVector = mTelescope.getSwitch("TELESCOPE_MOTION_WE"); ++ if (!switchVector.isValid()) + { + qDebug() << "Error: unable to find Telescope or TELESCOPE_MOTION_WE switch..."; + return; + } + +- ISwitch *motion = IUFindSwitch(switchVector, "MOTION_EAST"); ++ auto motion = switchVector.findWidgetByName("MOTION_EAST"); + + if (speed == SLEW_STOP) +- motion->s = ISS_OFF; ++ motion->setState(ISS_OFF); + else + { + setSpeed(speed); +- motion->s = ISS_ON; ++ motion->setState(ISS_ON); + } + + sendNewSwitch(switchVector); +@@ -260,24 +258,24 @@ void INDIConnection::moveEast(int speed) + void INDIConnection::moveSouth(int speed) + { + std::lock_guard lock(mMutex); +- if (!mTelescope || !mTelescope->isConnected()) ++ if (!mTelescope.isValid() || !mTelescope.isConnected()) + return; + +- ISwitchVectorProperty *switchVector = mTelescope->getSwitch("TELESCOPE_MOTION_NS"); +- if (!switchVector) ++ auto switchVector = mTelescope.getSwitch("TELESCOPE_MOTION_NS"); ++ if (!switchVector.isValid()) + { + qDebug() << "Error: unable to find Telescope or TELESCOPE_MOTION_NS switch..."; + return; + } + +- ISwitch *motion = IUFindSwitch(switchVector, "MOTION_SOUTH"); ++ auto motion = switchVector.findWidgetByName("MOTION_SOUTH"); + + if (speed == SLEW_STOP) +- motion->s = ISS_OFF; ++ motion->setState(ISS_OFF); + else + { + setSpeed(speed); +- motion->s = ISS_ON; ++ motion->setState(ISS_ON); + } + + sendNewSwitch(switchVector); +@@ -286,24 +284,24 @@ void INDIConnection::moveSouth(int speed + void INDIConnection::moveWest(int speed) + { + std::lock_guard lock(mMutex); +- if (!mTelescope || !mTelescope->isConnected()) ++ if (!mTelescope.isValid() || !mTelescope.isConnected()) + return; + +- ISwitchVectorProperty *switchVector = mTelescope->getSwitch("TELESCOPE_MOTION_WE"); +- if (!switchVector) ++ auto switchVector = mTelescope.getSwitch("TELESCOPE_MOTION_WE"); ++ if (!switchVector.isValid()) + { + qDebug() << "Error: unable to find Telescope or TELESCOPE_MOTION_WE switch..."; + return; + } + +- ISwitch *motion = IUFindSwitch(switchVector, "MOTION_WEST"); ++ auto motion = switchVector.findWidgetByName("MOTION_WEST"); + + if (speed == SLEW_STOP) +- motion->s = ISS_OFF; ++ motion->setState(ISS_OFF); + else + { + setSpeed(speed); +- motion->s = ISS_ON; ++ motion->setState(ISS_ON); + } + + sendNewSwitch(switchVector); +@@ -311,23 +309,24 @@ void INDIConnection::moveWest(int speed) + + void INDIConnection::setSpeed(int speed) + { +- ISwitchVectorProperty *slewRateSP = mTelescope->getSwitch("TELESCOPE_SLEW_RATE"); ++ auto slewRateSP = mTelescope.getSwitch("TELESCOPE_SLEW_RATE"); + +- if (!slewRateSP || speed < 0 || speed > slewRateSP->nsp) ++ if (!slewRateSP.isValid() || speed < 0 || ++ static_cast(speed) > slewRateSP.count()) + return; + +- IUResetSwitch(slewRateSP); +- slewRateSP->sp[speed].s = ISS_ON; ++ slewRateSP.reset(); ++ slewRateSP[speed].setState(ISS_ON); + sendNewSwitch(slewRateSP); + } + +-void INDIConnection::newDevice(INDI::BaseDevice *dp) ++void INDIConnection::newDevice(INDI::BaseDevice dp) + { + std::lock_guard lock(mMutex); + if (!dp) + return; + +- QString name(dp->getDeviceName()); ++ QString name(dp.getDeviceName()); + + qDebug() << "INDIConnection::newDevice| New Device... " << name; + +@@ -337,91 +336,54 @@ void INDIConnection::newDevice(INDI::Bas + emit newDeviceReceived(name); + } + +-void INDIConnection::removeDevice(INDI::BaseDevice *dp) ++void INDIConnection::removeDevice(INDI::BaseDevice dp) + { + std::lock_guard lock(mMutex); + if (!dp) + return; + +- QString name(dp->getDeviceName()); ++ QString name(dp.getDeviceName()); + int index = mDevices.indexOf(name); + if (index != -1) + mDevices.removeAt(index); + +- if (mTelescope == dp) +- mTelescope = nullptr; ++ if (mTelescope.isDeviceNameMatch(dp.getDeviceName())) ++ mTelescope.detach(); + + emit removeDeviceReceived(name); + } + +-void INDIConnection::newProperty(INDI::Property *property) ++void INDIConnection::newProperty(INDI::Property property) + { + std::lock_guard lock(mMutex); +- if (mTelescope != property->getBaseDevice()) ++ if (!mTelescope.isDeviceNameMatch( ++ property.getBaseDevice().getDeviceName())) + return; + +- QString name(property->getName()); ++ QString name(property.getName()); + + qDebug() << "INDIConnection::newProperty| " << name; + + if (name == "EQUATORIAL_EOD_COORD") + { +- mCoordinates.RA = property->getNumber()->np[0].value; +- mCoordinates.DEC = property->getNumber()->np[1].value; ++ mCoordinates.RA = property.getNumber()->np[0].value; ++ mCoordinates.DEC = property.getNumber()->np[1].value; + } + +- if (!mTelescope->isConnected()) ++ if (!mTelescope.isConnected()) + { +- connectDevice(mTelescope->getDeviceName()); +- if (mTelescope->isConnected()) ++ connectDevice(mTelescope.getDeviceName()); ++ if (mTelescope.isConnected()) + qDebug() << "connected\n"; + } + } + +-void INDIConnection::removeProperty(INDI::Property *property) ++void INDIConnection::removeProperty(INDI::Property property) + { + Q_UNUSED(property) + } + +-void INDIConnection::newBLOB(IBLOB *bp) +-{ +- Q_UNUSED(bp) +-} +- +-void INDIConnection::newSwitch(ISwitchVectorProperty *svp) +-{ +- std::lock_guard lock(mMutex); +- QString name(svp->name); +- if (name == "TELESCOPE_SLEW_RATE") +- { +- int speed = IUFindOnSwitchIndex(svp); +- emit speedChanged(speed); +- } +-} +- +-void INDIConnection::newNumber(INumberVectorProperty *nvp) +-{ +- std::lock_guard lock(mMutex); +- +- QString name(nvp->name); +- if (name == "EQUATORIAL_EOD_COORD") +- { +- mCoordinates.RA = nvp->np[0].value; +- mCoordinates.DEC = nvp->np[1].value; +- } +-} +- +-void INDIConnection::newText(ITextVectorProperty *tvp) +-{ +- Q_UNUSED(tvp) +-} +- +-void INDIConnection::newLight(ILightVectorProperty *lvp) +-{ +- Q_UNUSED(lvp) +-} +- +-void INDIConnection::newMessage(INDI::BaseDevice *dp, int messageID) ++void INDIConnection::newMessage(INDI::BaseDevice dp, int messageID) + { + Q_UNUSED(dp) + Q_UNUSED(messageID) --_----------=_1714738062164140--