From c7b651a6ca408afe6dbf22e782fa1b3bca8468d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sl=C3=A1vek=20Banko?= Date: Fri, 7 May 2021 03:36:45 +0200 Subject: Build tdehw library as a standalone library. This causes tdecore API change! MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Slávek Banko --- tdecore/kinstance.cpp | 42 ++++++++++++++++++++++++++++++++---------- 1 file changed, 32 insertions(+), 10 deletions(-) (limited to 'tdecore/kinstance.cpp') diff --git a/tdecore/kinstance.cpp b/tdecore/kinstance.cpp index cbdf86783..8ae747948 100644 --- a/tdecore/kinstance.cpp +++ b/tdecore/kinstance.cpp @@ -25,6 +25,8 @@ #include "kcharsets.h" #include "kiconloader.h" #ifdef __TDE_HAVE_TDEHWLIB +#include "klibloader.h" +#include "tdeversion.h" #include "tdehardwaredevices.h" #include "tdenetworkconnections.h" #endif @@ -285,22 +287,42 @@ TDEIconLoader *TDEInstance::iconLoader() const #ifdef __TDE_HAVE_TDEHWLIB TDEHardwareDevices *TDEInstance::hardwareDevices() const { - DEBUG_CHECK_ALIVE - if( _hardwaredevices == 0 ) { - _hardwaredevices = new TDEHardwareDevices( ); - } + DEBUG_CHECK_ALIVE + if (_hardwaredevices == 0) + { + TQString libName = TQString("libtdehw.so.%1").arg(TDE_VERSION_MAJOR); + KLibrary *lib = KLibLoader::self()->library(libName.latin1()); + if (lib) + { + TDEHardwareDevices* (*create)() = (TDEHardwareDevices* (*)())lib->symbol("create_tdeHardwareDevices"); + if (create) + { + _hardwaredevices = create(); + } + } + } - return _hardwaredevices; + return _hardwaredevices; } TDEGlobalNetworkManager *TDEInstance::networkManager() const { - DEBUG_CHECK_ALIVE - if( _networkmanager == 0 ) { - _networkmanager = new TDEGlobalNetworkManager( ); - } + DEBUG_CHECK_ALIVE + if (_networkmanager == 0) + { + TQString libName = TQString("libtdehw.so.%1").arg(TDE_VERSION_MAJOR); + KLibrary *lib = KLibLoader::self()->library(libName.latin1()); + if (lib) + { + TDEGlobalNetworkManager* (*create)() = (TDEGlobalNetworkManager* (*)())lib->symbol("create_tdeGlobalNetworkManager"); + if (create) + { + _networkmanager = create(); + } + } + } - return _networkmanager; + return _networkmanager; } #endif -- cgit v1.2.1