summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/settings/networksettings2/bluetooth/bluetooth.pro2
-rw-r--r--noncore/settings/networksettings2/bluetooth/bluetoothBNEP_NN.cpp16
-rw-r--r--noncore/settings/networksettings2/bluetooth/bluetoothBNEPrun.cpp4
-rw-r--r--noncore/settings/networksettings2/bluetooth/bluetoothBNEPrun.h3
-rw-r--r--noncore/settings/networksettings2/bluetooth/bluetoothRFCOMMedit.h3
-rw-r--r--noncore/settings/networksettings2/bluetooth/bluetoothRFCOMMrun.cpp4
-rw-r--r--noncore/settings/networksettings2/bluetooth/bluetoothRFCOMMrun.h1
-rw-r--r--noncore/settings/networksettings2/cable/cable.pro2
-rw-r--r--noncore/settings/networksettings2/cable/cable_NN.cpp15
-rw-r--r--noncore/settings/networksettings2/gprs/GPRS.pro2
-rw-r--r--noncore/settings/networksettings2/gprs/GPRS_NN.cpp15
-rw-r--r--noncore/settings/networksettings2/irda/irda.pro2
-rw-r--r--noncore/settings/networksettings2/irda/irda_NN.cpp15
-rw-r--r--noncore/settings/networksettings2/lancard/lancard.pro2
-rw-r--r--noncore/settings/networksettings2/lancard/lancard_NN.cpp15
-rw-r--r--noncore/settings/networksettings2/modem/modem.pro2
-rw-r--r--noncore/settings/networksettings2/modem/modem_NN.cpp15
-rw-r--r--noncore/settings/networksettings2/network/network.pro2
-rw-r--r--noncore/settings/networksettings2/network/network_NN.cpp15
-rw-r--r--noncore/settings/networksettings2/networksettings2/netnodeinterface.h139
-rw-r--r--noncore/settings/networksettings2/networksettings2/resources.cpp179
-rw-r--r--noncore/settings/networksettings2/networksettings2/resources.h53
-rw-r--r--noncore/settings/networksettings2/opietooth2/OTDevice.h6
-rw-r--r--noncore/settings/networksettings2/opietooth2/OTDeviceAddress.h2
-rw-r--r--noncore/settings/networksettings2/opietooth2/OTDriver.h2
-rw-r--r--noncore/settings/networksettings2/opietooth2/OTGateway.h2
-rw-r--r--noncore/settings/networksettings2/opietooth2/OTHCISocket.h2
-rw-r--r--noncore/settings/networksettings2/opietooth2/OTIcons.h2
-rw-r--r--noncore/settings/networksettings2/opietooth2/OTInquiry.h2
-rw-r--r--noncore/settings/networksettings2/opietooth2/OTPeer.h2
-rw-r--r--noncore/settings/networksettings2/opietooth2/OTSDPAttribute.h2
-rw-r--r--noncore/settings/networksettings2/opietooth2/OTSDPService.h2
-rw-r--r--noncore/settings/networksettings2/opietooth2/OTUUID.h2
-rw-r--r--noncore/settings/networksettings2/opietooth2/Opietooth.h14
-rw-r--r--noncore/settings/networksettings2/ppp/ppp.pro2
-rw-r--r--noncore/settings/networksettings2/ppp/ppp_NN.cpp15
-rw-r--r--noncore/settings/networksettings2/profile/profile.pro2
-rw-r--r--noncore/settings/networksettings2/profile/profile_NN.cpp15
-rw-r--r--noncore/settings/networksettings2/usb/usb.pro2
-rw-r--r--noncore/settings/networksettings2/usb/usb_NN.cpp15
-rw-r--r--noncore/settings/networksettings2/usb/usb_NNI.cpp2
-rw-r--r--noncore/settings/networksettings2/vpn/vpn.pro2
-rw-r--r--noncore/settings/networksettings2/vpn/vpn_NN.cpp15
-rw-r--r--noncore/settings/networksettings2/wlan/wlan.pro2
-rw-r--r--noncore/settings/networksettings2/wlan/wlan_NN.cpp15
45 files changed, 566 insertions, 67 deletions
diff --git a/noncore/settings/networksettings2/bluetooth/bluetooth.pro b/noncore/settings/networksettings2/bluetooth/bluetooth.pro
index 2e3b5bb..053a6cb 100644
--- a/noncore/settings/networksettings2/bluetooth/bluetooth.pro
+++ b/noncore/settings/networksettings2/bluetooth/bluetooth.pro
@@ -1,4 +1,4 @@
TEMPLATE = lib
-CONFIG += qt warn_on release
+CONFIG += qt warn_on release plugin
DESTDIR = $(OPIEDIR)/plugins/networksettings2
HEADERS = bluetoothBNEP_NN.h \
diff --git a/noncore/settings/networksettings2/bluetooth/bluetoothBNEP_NN.cpp b/noncore/settings/networksettings2/bluetooth/bluetoothBNEP_NN.cpp
index ee3e92b..5e4d951 100644
--- a/noncore/settings/networksettings2/bluetooth/bluetoothBNEP_NN.cpp
+++ b/noncore/settings/networksettings2/bluetooth/bluetoothBNEP_NN.cpp
@@ -3,4 +3,10 @@
#include "bluetoothRFCOMM_NNI.h"
+#ifndef MYPLUGIN
+
+#include "netnodeinterface.h"
+
+#endif
+
//
//
@@ -70,4 +76,6 @@ void BluetoothBNEPNetNode::saveSpecificAttribute( QTextStream & TS) {
}
+#ifndef MYPLUGIN
+
extern "C" {
// create plugin registers both BT functions
@@ -76,3 +84,11 @@ void create_plugin( QList<ANetNode> & PNN ) {
PNN.append( new BluetoothRFCOMMNetNode() );
}
+
+#else
+
+typedef Opie::Core::MakeTypelist<BluetoothBNEPNetNode, BluetoothRFCOMMNetNode>::Result BluetoothTypes;
+OPIE_NS2_PLUGIN( NetNodeInterface<BluetoothTypes> )
+
+#endif
+
}
diff --git a/noncore/settings/networksettings2/bluetooth/bluetoothBNEPrun.cpp b/noncore/settings/networksettings2/bluetooth/bluetoothBNEPrun.cpp
index 9d4ae97..5c937a1 100644
--- a/noncore/settings/networksettings2/bluetooth/bluetoothBNEPrun.cpp
+++ b/noncore/settings/networksettings2/bluetooth/bluetoothBNEPrun.cpp
@@ -5,4 +5,8 @@
#include "bluetoothBNEPrun.h"
+using Opietooth2::OTGateway;
+using Opietooth2::OTPANConnection;
+using Opietooth2::PANConnectionVector;
+
BluetoothBNEPRun::BluetoothBNEPRun( ANetNodeInstance * NNI,
BluetoothBNEPData & D ) :
diff --git a/noncore/settings/networksettings2/bluetooth/bluetoothBNEPrun.h b/noncore/settings/networksettings2/bluetooth/bluetoothBNEPrun.h
index a05a7a2..8551a2e 100644
--- a/noncore/settings/networksettings2/bluetooth/bluetoothBNEPrun.h
+++ b/noncore/settings/networksettings2/bluetooth/bluetoothBNEPrun.h
@@ -3,5 +3,4 @@
#include <OTGateway.h>
-using namespace Opietooth2;
class BluetoothBNEPRun : public RuntimeInfo {
@@ -31,5 +30,5 @@ private :
BluetoothBNEPData & Data;
- OTGateway * OT;
+ Opietooth2::OTGateway * OT;
QRegExp Pat;
};
diff --git a/noncore/settings/networksettings2/bluetooth/bluetoothRFCOMMedit.h b/noncore/settings/networksettings2/bluetooth/bluetoothRFCOMMedit.h
index 9ad8f2a..fe474fc 100644
--- a/noncore/settings/networksettings2/bluetooth/bluetoothRFCOMMedit.h
+++ b/noncore/settings/networksettings2/bluetooth/bluetoothRFCOMMedit.h
@@ -3,5 +3,4 @@
#include <Opietooth.h>
-using namespace Opietooth2;
class BluetoothRFCOMMEdit : public BluetoothRFCOMMGUI {
@@ -17,5 +16,5 @@ public :
bool Modified;
- OTGateway * OT;
+ Opietooth2::OTGateway * OT;
public slots :
diff --git a/noncore/settings/networksettings2/bluetooth/bluetoothRFCOMMrun.cpp b/noncore/settings/networksettings2/bluetooth/bluetoothRFCOMMrun.cpp
index 1e91ed1..ef6878a 100644
--- a/noncore/settings/networksettings2/bluetooth/bluetoothRFCOMMrun.cpp
+++ b/noncore/settings/networksettings2/bluetooth/bluetoothRFCOMMrun.cpp
@@ -5,5 +5,7 @@
#include "bluetoothRFCOMMrun.h"
-using namespace Opietooth2;
+using Opietooth2::OTGateway;
+using Opietooth2::OTDevice;
+using Opietooth2::OTDeviceAddress;
BluetoothRFCOMMRun::~BluetoothRFCOMMRun( void ) {
diff --git a/noncore/settings/networksettings2/bluetooth/bluetoothRFCOMMrun.h b/noncore/settings/networksettings2/bluetooth/bluetoothRFCOMMrun.h
index 24e3dae..5a31a94 100644
--- a/noncore/settings/networksettings2/bluetooth/bluetoothRFCOMMrun.h
+++ b/noncore/settings/networksettings2/bluetooth/bluetoothRFCOMMrun.h
@@ -3,5 +3,4 @@
#include <OTGateway.h>
-using namespace Opietooth2;
class BluetoothRFCOMMRun : public RuntimeInfo {
diff --git a/noncore/settings/networksettings2/cable/cable.pro b/noncore/settings/networksettings2/cable/cable.pro
index 8a046b7..660f95e 100644
--- a/noncore/settings/networksettings2/cable/cable.pro
+++ b/noncore/settings/networksettings2/cable/cable.pro
@@ -1,4 +1,4 @@
TEMPLATE = lib
-CONFIG += qt warn_on release
+CONFIG += qt warn_on release plugin
DESTDIR = $(OPIEDIR)/plugins/networksettings2
HEADERS = cable_NN.h \
diff --git a/noncore/settings/networksettings2/cable/cable_NN.cpp b/noncore/settings/networksettings2/cable/cable_NN.cpp
index dc4205c..20299e4 100644
--- a/noncore/settings/networksettings2/cable/cable_NN.cpp
+++ b/noncore/settings/networksettings2/cable/cable_NN.cpp
@@ -2,4 +2,10 @@
#include "cable_NNI.h"
+#ifndef MYPLUGIN
+
+#include "netnodeinterface.h"
+
+#endif
+
static const char * CableNeeds[] =
{ 0
@@ -48,7 +54,16 @@ void CableNetNode::saveSpecificAttribute( QTextStream & ) {
}
+#ifdef MYPLUGIN
+
extern "C" {
void create_plugin( QList<ANetNode> & PNN ) {
PNN.append( new CableNetNode() );
}
+
+#else
+
+OPIE_NS2_PLUGIN( NetNodeInterface<CableNetNode> )
+
+#endif
+
}
diff --git a/noncore/settings/networksettings2/gprs/GPRS.pro b/noncore/settings/networksettings2/gprs/GPRS.pro
index 7818415..480c872 100644
--- a/noncore/settings/networksettings2/gprs/GPRS.pro
+++ b/noncore/settings/networksettings2/gprs/GPRS.pro
@@ -1,4 +1,4 @@
TEMPLATE = lib
-CONFIG += qt warn_on release
+CONFIG += qt warn_on release plugin
DESTDIR = $(OPIEDIR)/plugins/networksettings2
HEADERS = GPRS_NN.h \
diff --git a/noncore/settings/networksettings2/gprs/GPRS_NN.cpp b/noncore/settings/networksettings2/gprs/GPRS_NN.cpp
index 5393324..4415739 100644
--- a/noncore/settings/networksettings2/gprs/GPRS_NN.cpp
+++ b/noncore/settings/networksettings2/gprs/GPRS_NN.cpp
@@ -5,4 +5,10 @@
#include "GPRS_NNI.h"
+#ifndef MYPLUGIN
+
+#include "netnodeinterface.h"
+
+#endif
+
static const char * GPRSNeeds[] =
{ "GPRS",
@@ -74,7 +80,16 @@ QStringList GPRSNetNode::properFiles( void ) {
}
+#ifdef MYPLUGIN
+
extern "C" {
void create_plugin( QList<ANetNode> & PNN ) {
PNN.append( new GPRSNetNode() );
}
+
+#else
+
+OPIE_NS2_PLUGIN( NetNodeInterface<GPRSNetNode> )
+
+#endif
+
}
diff --git a/noncore/settings/networksettings2/irda/irda.pro b/noncore/settings/networksettings2/irda/irda.pro
index 4613abe..87f7a62 100644
--- a/noncore/settings/networksettings2/irda/irda.pro
+++ b/noncore/settings/networksettings2/irda/irda.pro
@@ -1,4 +1,4 @@
TEMPLATE = lib
-CONFIG += qt warn_on release
+CONFIG += qt warn_on release plugin
DESTDIR = $(OPIEDIR)/plugins/networksettings2
HEADERS = irda_NN.h \
diff --git a/noncore/settings/networksettings2/irda/irda_NN.cpp b/noncore/settings/networksettings2/irda/irda_NN.cpp
index 485cad3..6858157 100644
--- a/noncore/settings/networksettings2/irda/irda_NN.cpp
+++ b/noncore/settings/networksettings2/irda/irda_NN.cpp
@@ -2,4 +2,10 @@
#include "irda_NNI.h"
+#ifndef MYPLUGIN
+
+#include "netnodeinterface.h"
+
+#endif
+
static const char * IRDANeeds[] =
{ 0
@@ -48,7 +54,16 @@ void IRDANetNode::saveSpecificAttribute( QTextStream & ) {
}
+#ifdef MYPLUGIN
+
extern "C" {
void create_plugin( QList<ANetNode> & PNN ) {
PNN.append( new IRDANetNode() );
}
+
+#else
+
+OPIE_NS2_PLUGIN( NetNodeInterface<IRDANetNode> )
+
+#endif
+
}
diff --git a/noncore/settings/networksettings2/lancard/lancard.pro b/noncore/settings/networksettings2/lancard/lancard.pro
index 6f04e01..05f0fa0 100644
--- a/noncore/settings/networksettings2/lancard/lancard.pro
+++ b/noncore/settings/networksettings2/lancard/lancard.pro
@@ -1,4 +1,4 @@
TEMPLATE = lib
-CONFIG += qt warn_on release
+CONFIG += qt warn_on release plugin
DESTDIR = $(OPIEDIR)/plugins/networksettings2
HEADERS = lancard_NN.h \
diff --git a/noncore/settings/networksettings2/lancard/lancard_NN.cpp b/noncore/settings/networksettings2/lancard/lancard_NN.cpp
index e36f757..fce3d29 100644
--- a/noncore/settings/networksettings2/lancard/lancard_NN.cpp
+++ b/noncore/settings/networksettings2/lancard/lancard_NN.cpp
@@ -2,4 +2,10 @@
#include "lancard_NNI.h"
+#ifndef MYPLUGIN
+
+#include "netnodeinterface.h"
+
+#endif
+
static const char * LanCardNeeds[] =
{ 0
@@ -71,7 +77,16 @@ void LanCardNetNode::saveSpecificAttribute( QTextStream & TS) {
}
+#ifdef MYPLUGIN
+
extern "C" {
void create_plugin( QList<ANetNode> & PNN ) {
PNN.append( new LanCardNetNode() );
}
+
+#else
+
+OPIE_NS2_PLUGIN( NetNodeInterface<LanCardNetNode> )
+
+#endif
+
}
diff --git a/noncore/settings/networksettings2/modem/modem.pro b/noncore/settings/networksettings2/modem/modem.pro
index 25e29d4..4511e07 100644
--- a/noncore/settings/networksettings2/modem/modem.pro
+++ b/noncore/settings/networksettings2/modem/modem.pro
@@ -1,4 +1,4 @@
TEMPLATE = lib
-CONFIG += qt warn_on release
+CONFIG += qt warn_on release plugin
DESTDIR = $(OPIEDIR)/plugins/networksettings2
HEADERS = modem_NN.h \
diff --git a/noncore/settings/networksettings2/modem/modem_NN.cpp b/noncore/settings/networksettings2/modem/modem_NN.cpp
index 06f417c..c7f6e78 100644
--- a/noncore/settings/networksettings2/modem/modem_NN.cpp
+++ b/noncore/settings/networksettings2/modem/modem_NN.cpp
@@ -2,4 +2,10 @@
#include "modem_NNI.h"
+#ifndef MYPLUGIN
+
+#include "netnodeinterface.h"
+
+#endif
+
static const char * ModemNeeds[] =
{ "line",
@@ -49,7 +55,16 @@ void ModemNetNode::saveSpecificAttribute( QTextStream & ) {
}
+#ifdef MYPLUGIN
+
extern "C" {
void create_plugin( QList<ANetNode> & PNN ) {
PNN.append( new ModemNetNode() );
}
+
+#else
+
+OPIE_NS2_PLUGIN( NetNodeInterface<ModemNetNode> )
+
+#endif
+
}
diff --git a/noncore/settings/networksettings2/network/network.pro b/noncore/settings/networksettings2/network/network.pro
index 05df007..5ca78b9 100644
--- a/noncore/settings/networksettings2/network/network.pro
+++ b/noncore/settings/networksettings2/network/network.pro
@@ -1,4 +1,4 @@
TEMPLATE = lib
-CONFIG += qt warn_on release
+CONFIG += qt warn_on release plugin
DESTDIR = $(OPIEDIR)/plugins/networksettings2
HEADERS = network_NN.h \
diff --git a/noncore/settings/networksettings2/network/network_NN.cpp b/noncore/settings/networksettings2/network/network_NN.cpp
index 23b3d44..82d0c29 100644
--- a/noncore/settings/networksettings2/network/network_NN.cpp
+++ b/noncore/settings/networksettings2/network/network_NN.cpp
@@ -5,4 +5,10 @@
#include "network_NNI.h"
+#ifndef MYPLUGIN
+
+#include "netnodeinterface.h"
+
+#endif
+
static const char * NetworkNeeds[] =
{ "device",
@@ -91,7 +97,16 @@ void NetworkNetNode::saveSpecificAttribute( QTextStream & ) {
}
+#ifdef MYPLUGIN
+
extern "C" {
void create_plugin( QList<ANetNode> & PNN ) {
PNN.append( new NetworkNetNode() );
}
+
+#else
+
+OPIE_NS2_PLUGIN( NetNodeInterface<NetworkNetNode> )
+
+#endif
+
}
diff --git a/noncore/settings/networksettings2/networksettings2/netnodeinterface.h b/noncore/settings/networksettings2/networksettings2/netnodeinterface.h
new file mode 100644
index 0000000..34f3bb5
--- a/dev/null
+++ b/noncore/settings/networksettings2/networksettings2/netnodeinterface.h
@@ -0,0 +1,139 @@
+/*
+                 This file is part of the Opie Project
+
+ Copyright (C) 2005 Holger Hans Peter Freyther <freyther@handhelds.org>
+ =.
+ .=l.
+           .>+-=
+ _;:,     .>    :=|. This program is free software; you can
+.> <`_,   >  .   <= redistribute it and/or modify it under
+:`=1 )Y*s>-.--   : the terms of the GNU Library General Public
+.="- .-=="i,     .._ License as published by the Free Software
+ - .   .-<_>     .<> Foundation; either version 2 of the License,
+     ._= =}       : or (at your option) any later version.
+    .%`+i>       _;_.
+    .i_,=:_.      -<s. This program is distributed in the hope that
+     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
+    : ..    .:,     . . . without even the implied warranty of
+    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
+  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
+..}^=.=       =       ; Library General Public License for more
+++=   -.     .`     .: details.
+ :     =  ...= . :.=-
+ -.   .:....=;==+<; You should have received a copy of the GNU
+  -_. . .   )=.  = Library General Public License along with
+    --        :-=` this library; see the file COPYING.LIB.
+ If not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+
+*/
+
+#ifndef ANET_NODE_INTERFACE_H
+#define ANET_NODE_INTERFACE_H
+
+#include <opie2/oapplicationfactory.h>
+#include <qpe/qcom.h>
+
+// {A215A785-FB73-4F74-84B0-053BCC77DB87}
+#ifndef IID_NetworkSettings2
+
+#define IID_NetworkSettings2 QUuid( 0xa215a785, 0xfb73, 0x4f74, 0x84, 0xb0, 0x05, 0x3b, 0xcc, 0x77, 0xdb, 0x87)
+
+#endif
+
+
+
+/**
+ * Multiple Types
+ */
+template <class Node >
+struct NS2PrivateFactory {
+
+ inline static void createPlugins( QList<ANetNode> & PNN) {
+ PNN.append( new Node());
+ }
+
+};
+
+/*
+ * Stop recursion here
+ */
+template <>
+struct NS2PrivateFactory<Opie::Core::NullType> {
+
+ inline static void createPlugins( QList<ANetNode> &) {
+
+ }
+
+};
+
+template <class Node, class Tail>
+struct NS2PrivateFactory<Opie::Core::Typelist<Node, Tail> > {
+
+ inline static void createPlugins( QList<ANetNode> & PNN ) {
+ NS2PrivateFactory<Node>::createPlugins(PNN);
+ NS2PrivateFactory<Tail>::createPlugins(PNN);
+ }
+
+};
+
+template<class Node>
+struct NetNodeInterface : public QUnknownInterface {
+
+ QRESULT queryInterface(const QUuid& uuid, QUnknownInterface **iface) {
+ *iface = 0;
+
+ if( uuid == IID_QUnknown )
+ *iface = this;
+ else if( uuid == IID_NetworkSettings2 )
+ *iface = this;
+ else
+ return QS_FALSE;
+
+ (*iface)->addRef();
+
+ return QS_OK;
+
+ }
+
+ void create_plugin( QList<ANetNode> & PNN ) {
+
+ PNN.append( new Node());
+
+ }
+
+ Q_REFCOUNT
+};
+
+template<class Node, class Tail>
+struct NetNodeInterface<Opie::Core::Typelist<Node, Tail> >
+ : public QUnknownInterface {
+
+ QRESULT queryInterface( const QUuid& uuid,
+ QUnknownInterface **iface) {
+
+ *iface = 0;
+
+ if( uuid == IID_QUnknown ) *iface = this;
+ else if( uuid == IID_NetworkSettings2 ) *iface = this;
+ else return QS_FALSE;
+
+ (*iface)->addRef();
+ return QS_OK;
+
+ }
+
+ void create_plugin( QList<ANetNode> & PNN ) {
+ NS2PrivateFactory<Opie::Core::Typelist<Node,Tail> >::createPlugin( PNN );
+ }
+
+ Q_REFCOUNT
+
+};
+
+#define OPIE_NS2_PLUGIN( factory ) \
+ Q_EXPORT_INTERFACE() { Q_CREATE_INSTANCE( factory) }
+
+#endif
+
diff --git a/noncore/settings/networksettings2/networksettings2/resources.cpp b/noncore/settings/networksettings2/networksettings2/resources.cpp
index 50fb15a..79d41ea 100644
--- a/noncore/settings/networksettings2/networksettings2/resources.cpp
+++ b/noncore/settings/networksettings2/networksettings2/resources.cpp
@@ -5,11 +5,17 @@
#include <qpixmap.h>
#include <qdir.h>
+#include <qmessagebox.h>
+
#include <qpe/qlibrary.h>
#include <qpe/qpeapplication.h>
+
#include <opie2/odebug.h>
+#include <opie2/opluginloader.h>
+
#include <qtopia/resource.h>
#include "netnode.h"
#include "resources.h"
+#include "netnodeinterface.h"
#define PLUGINDIR "plugins/networksettings2"
@@ -27,4 +33,7 @@ TheNSResources::TheNSResources( void ) : NodeTypeNameMap(),
// load available netnodes
+
+#ifdef MYPLUGIN
+
findAvailableNetNodes(QPEApplication::qpeDir() + PLUGINDIR );
@@ -67,4 +76,50 @@ TheNSResources::TheNSResources( void ) : NodeTypeNameMap(),
}
+#else
+
+ Plugins = 0;
+ findAvailableNetNodes();
+
+ // compile provides and needs lists
+ { const char ** NeedsRun;
+ QDictIterator<ANetNode> OuterIt( AllNodeTypes );
+ bool Done;
+
+ for ( ; OuterIt.current(); ++OuterIt ) {
+ // find needs list
+ ANetNode::NetNodeList * NNLP = new ANetNode::NetNodeList;
+ ANetNode::NetNodeList & NNL = *(NNLP);
+
+ // must iterate this way to avoid duplication pointers
+ for ( QDictIterator<ANetNode> InnerIt( AllNodeTypes );
+ InnerIt.current(); ++InnerIt ) {
+
+ if( InnerIt.current() == OuterIt.current() )
+ // avoid recursive
+ continue;
+
+ const char ** Provides = InnerIt.current()->provides();
+ NeedsRun = OuterIt.current()->needs();
+
+ for( ; *NeedsRun; NeedsRun ++ ) {
+ const char ** PRun;
+ PRun = Provides;
+ for( ; *PRun; PRun ++ ) {
+ if( strcmp( *PRun, *NeedsRun ) == 0 ) {
+ // inner provides what outer needs
+ NNL.resize( NNL.size() + 1 );
+ NNL[NNL.size()-1] = InnerIt.current();
+ Done = 1; // break from 2 loops
+ break;
+ }
+ }
+ }
+ }
+ OuterIt.current()->setAlternatives( NNLP );
+ }
+ }
+
+#endif
+
// define built in Node types to Description map
addNodeType( "device", tr( "Network Device" ),
@@ -85,5 +140,13 @@ TheNSResources::TheNSResources( void ) : NodeTypeNameMap(),
TheNSResources::~TheNSResources( void ) {
+
+#ifndef MYPLUGINS
+ if( Plugins ) {
+ delete Plugins;
+ delete PluginManager;
+ }
+#endif
delete TheSystem;
+
}
@@ -117,4 +180,5 @@ void TheNSResources::busy( bool ) {
}
+#ifdef MYPLUGIN
/**
* Load all modules that are found in the path
@@ -161,25 +225,4 @@ void TheNSResources::findAvailableNetNodes(const QString &path){
}
-// used to find unique connection number
-int TheNSResources::assignConnectionNumber( void ) {
- bool found = 1;
- for( int trial = 0; ; trial ++ ) {
- found = 1;
- for( QDictIterator<NodeCollection> it(ConnectionsMap);
- it.current();
- ++it ) {
- if( it.current()->number() == trial ) {
- found = 0;
- break;
- }
- }
-
- if( found ) {
- Log(("Assign profile number %d\n", trial ));
- return trial;
- }
- }
-}
-
/**
* Attempt to load a function and resolve a function.
@@ -228,4 +271,98 @@ bool TheNSResources::loadNetNode(
}
+#else
+
+void TheNSResources::findAvailableNetNodes( void ){
+
+ Plugins = new OPluginLoader( "networksettings2" );
+ Plugins->setAutoDelete( true );
+
+ PluginManager = new OPluginManager( Plugins );
+ PluginManager->load();
+
+ if( Plugins->isInSafeMode() ) {
+ QMessageBox::information(
+ 0,
+ tr( "Today Error"),
+ tr( "<qt>The plugin '%1' caused Today to crash."
+ " It could be that the plugin is not properly"
+ " installed.<br>Today tries to continue loading"
+ " plugins.</qt>" )
+ .arg( PluginManager->crashedPlugin().name()));
+ }
+
+ // Get All Plugins
+ OPluginLoader::List allplugins = Plugins->filtered();
+
+ for( OPluginLoader::List::Iterator it = allplugins.begin();
+ it != allplugins.end();
+ ++it ) {
+
+ // check if this plugin supports the proper interface
+ NetNodeInterface * interface =
+ Plugins->load<NetNodeInterface>( *it, IID_NetworkSettings2 );
+
+ if( ! interface ) {
+ Log(( "Plugin %s from %s does not support proper interface\n",
+ it->name().latin1(), it->path().latin1() ));
+ continue;
+ }
+
+ // add the nodes in this plugin to the dictionary
+ { QList<ANetNode> PNN;
+
+ interface->create_plugin( PNN );
+
+ if( PNN.isEmpty() ) {
+ Log(( "Plugin %s from %s does offer any nodes\n",
+ it->name().latin1(), it->path().latin1() ));
+ delete interface;
+ continue;
+ }
+
+ // merge this node with global node
+ for( QListIterator<ANetNode> it(PNN);
+ it.current();
+ ++it ) {
+ AllNodeTypes.insert( it->current()->name(), it->current() );
+ }
+ }
+
+ // load the translation
+ QTranslator *trans = new QTranslator(qApp);
+ QString fn = QPEApplication::qpeDir()+
+ "/i18n/"+lang+"/"+ it->name() + ".qm";
+
+ if( trans->load( fn ) )
+ qApp->installTranslator( trans );
+ else
+ delete trans;
+ }
+
+}
+
+#endif
+
+// used to find unique connection number
+int TheNSResources::assignConnectionNumber( void ) {
+ bool found = 1;
+ for( int trial = 0; ; trial ++ ) {
+ found = 1;
+ for( QDictIterator<NodeCollection> it(ConnectionsMap);
+ it.current();
+ ++it ) {
+ if( it.current()->number() == trial ) {
+ found = 0;
+ break;
+ }
+ }
+
+ if( found ) {
+ Log(("Assign profile number %d\n", trial ));
+ return trial;
+ }
+ }
+}
+
QPixmap TheNSResources::getPixmap( const QString & QS ) {
QPixmap P;
diff --git a/noncore/settings/networksettings2/networksettings2/resources.h b/noncore/settings/networksettings2/networksettings2/resources.h
index 5d90286..421a433 100644
--- a/noncore/settings/networksettings2/networksettings2/resources.h
+++ b/noncore/settings/networksettings2/networksettings2/resources.h
@@ -15,11 +15,12 @@ class ANetNode;
class ANetNodeInstance;
-typedef void (*GetNetNodeListFt_t)(QList<ANetNode>& PNN );
+namespace Opie {
+ namespace Core {
+ class OPluginLoader;
+ class OPluginManager;
+ }
+}
-typedef struct NetNode_S {
- ANetNode * NetNode;
- QLibrary * TheLibrary;
- long NodeCountInLib;
-} NetNode_t;
+typedef void (*GetNetNodeListFt_t)(QList<ANetNode>& PNN );
class CurrentQPEUser {
@@ -38,5 +39,19 @@ public :
};
+#ifdef MYPLUGIN
+
+typedef struct NetNode_S {
+ ANetNode * NetNode;
+ QLibrary * TheLibrary;
+ long NodeCountInLib;
+} NetNode_t;
typedef QDict<NetNode_t> Name2NetNode_t;
+
+#else
+
+typedef QDict<ANetNode> Name2NetNode_t;
+
+#endif
+
typedef QDict<ANetNodeInstance > Name2Instance_t;
typedef QDict<NodeCollection> Name2Connection_t;
@@ -63,9 +78,14 @@ public :
bool netNodeExists( const QString & X )
{ return AllNodeTypes.find(X)!=0; }
+#ifdef MYPLUGIN
ANetNode * findNetNode( const QString & N )
{ NetNode_t * NNT = AllNodeTypes.find(N);
return (NNT) ? NNT->NetNode : 0;
}
-
+#else
+ ANetNode * findNetNode( const QString & N )
+ { return AllNodeTypes.find(N);
+ }
+#endif
// define new plugin (=node)
void addNodeType( const QString & ID,
@@ -82,4 +102,5 @@ public :
{ ANetNodeInstance * NNI = 0;
printf( "Find node type %s\n", S.latin1() );
+#ifdef MYPLUGIN
NetNode_t * NNT = AllNodeTypes[S];
if( ! NNT ) {
@@ -87,4 +108,11 @@ public :
}
NNI = NNT->NetNode->createInstance();
+#else
+ ANetNode * NNT = AllNodeTypes[S];
+ if( ! NNT ) {
+ return 0;
+ }
+ NNI = NNT->createInstance();
+#endif
NNI->initialize();
return NNI;
@@ -119,8 +147,13 @@ private :
void detectCurrentUser( void );
QString tr( const char * path );
+
+#ifdef MYPLUGIN
void findAvailableNetNodes( const QString &path );
bool loadNetNode(
const QString &pluginFileName,
const QString &resolveString = "create_plugin");
+#else
+ void findAvailableNetNodes( void );
+#endif
QMap< QString, QString> NodeTypeNameMap;
@@ -137,4 +170,10 @@ private :
CurrentQPEUser CurrentUser;
+
+#ifndef MYPLUGIN
+ Opie::Core::OPluginLoader * Plugins;
+ Opie::Core::OPluginManager * PluginManager;
+#endif
+
};
diff --git a/noncore/settings/networksettings2/opietooth2/OTDevice.h b/noncore/settings/networksettings2/opietooth2/OTDevice.h
index cf1c4b6..09de7ee 100644
--- a/noncore/settings/networksettings2/opietooth2/OTDevice.h
+++ b/noncore/settings/networksettings2/opietooth2/OTDevice.h
@@ -17,6 +17,6 @@ namespace Opie {
namespace Core {
class OProcess;
- };
-};
+ }
+}
namespace Opietooth2 {
@@ -112,5 +112,5 @@ namespace Opietooth2 {
bool NeedsAttach;
};
-};
+}
#endif
diff --git a/noncore/settings/networksettings2/opietooth2/OTDeviceAddress.h b/noncore/settings/networksettings2/opietooth2/OTDeviceAddress.h
index 50f28fc..8395f37 100644
--- a/noncore/settings/networksettings2/opietooth2/OTDeviceAddress.h
+++ b/noncore/settings/networksettings2/opietooth2/OTDeviceAddress.h
@@ -104,5 +104,5 @@ protected:
};
-};
+}
#endif
diff --git a/noncore/settings/networksettings2/opietooth2/OTDriver.h b/noncore/settings/networksettings2/opietooth2/OTDriver.h
index f249cf7..b54ffdf 100644
--- a/noncore/settings/networksettings2/opietooth2/OTDriver.h
+++ b/noncore/settings/networksettings2/opietooth2/OTDriver.h
@@ -229,4 +229,4 @@ private:
};
-};
+}
#endif
diff --git a/noncore/settings/networksettings2/opietooth2/OTGateway.h b/noncore/settings/networksettings2/opietooth2/OTGateway.h
index a47cefb..d97ef35 100644
--- a/noncore/settings/networksettings2/opietooth2/OTGateway.h
+++ b/noncore/settings/networksettings2/opietooth2/OTGateway.h
@@ -196,5 +196,5 @@ private :
LinkKeyArray AllKeys;
};
-};
+}
#endif
diff --git a/noncore/settings/networksettings2/opietooth2/OTHCISocket.h b/noncore/settings/networksettings2/opietooth2/OTHCISocket.h
index d508078..a004989 100644
--- a/noncore/settings/networksettings2/opietooth2/OTHCISocket.h
+++ b/noncore/settings/networksettings2/opietooth2/OTHCISocket.h
@@ -112,5 +112,5 @@ private slots:
};
-};
+}
#endif
diff --git a/noncore/settings/networksettings2/opietooth2/OTIcons.h b/noncore/settings/networksettings2/opietooth2/OTIcons.h
index 966ed24..ee10831 100644
--- a/noncore/settings/networksettings2/opietooth2/OTIcons.h
+++ b/noncore/settings/networksettings2/opietooth2/OTIcons.h
@@ -50,5 +50,5 @@ private:
};
-};
+}
#endif
diff --git a/noncore/settings/networksettings2/opietooth2/OTInquiry.h b/noncore/settings/networksettings2/opietooth2/OTInquiry.h
index 2682499..f7bdeec 100644
--- a/noncore/settings/networksettings2/opietooth2/OTInquiry.h
+++ b/noncore/settings/networksettings2/opietooth2/OTInquiry.h
@@ -175,4 +175,4 @@ private slots:
};
-};
+}
#endif
diff --git a/noncore/settings/networksettings2/opietooth2/OTPeer.h b/noncore/settings/networksettings2/opietooth2/OTPeer.h
index 9cd0dc7..c09af15 100644
--- a/noncore/settings/networksettings2/opietooth2/OTPeer.h
+++ b/noncore/settings/networksettings2/opietooth2/OTPeer.h
@@ -131,5 +131,5 @@ private:
};
-};
+}
#endif
diff --git a/noncore/settings/networksettings2/opietooth2/OTSDPAttribute.h b/noncore/settings/networksettings2/opietooth2/OTSDPAttribute.h
index 86b5623..e79e33d 100644
--- a/noncore/settings/networksettings2/opietooth2/OTSDPAttribute.h
+++ b/noncore/settings/networksettings2/opietooth2/OTSDPAttribute.h
@@ -136,5 +136,5 @@ private:
};
-};
+}
#endif
diff --git a/noncore/settings/networksettings2/opietooth2/OTSDPService.h b/noncore/settings/networksettings2/opietooth2/OTSDPService.h
index 21d7344..4831df0 100644
--- a/noncore/settings/networksettings2/opietooth2/OTSDPService.h
+++ b/noncore/settings/networksettings2/opietooth2/OTSDPService.h
@@ -71,5 +71,5 @@ private:
};
-};
+}
#endif
diff --git a/noncore/settings/networksettings2/opietooth2/OTUUID.h b/noncore/settings/networksettings2/opietooth2/OTUUID.h
index 97df114..aebd9b9 100644
--- a/noncore/settings/networksettings2/opietooth2/OTUUID.h
+++ b/noncore/settings/networksettings2/opietooth2/OTUUID.h
@@ -55,4 +55,4 @@ public :
uint64_t lo;
};
-};
+}
#endif
diff --git a/noncore/settings/networksettings2/opietooth2/Opietooth.h b/noncore/settings/networksettings2/opietooth2/Opietooth.h
index e66787f..f077dd7 100644
--- a/noncore/settings/networksettings2/opietooth2/Opietooth.h
+++ b/noncore/settings/networksettings2/opietooth2/Opietooth.h
@@ -12,7 +12,7 @@ namespace Opie {
class OLedBox;
- };
+ }
-};
+}
#include <OTSniffGUI.h>
@@ -52,5 +52,5 @@ private :
MyProcess * HciDump;
};
-};
+}
#include <OTPairingGUI.h>
@@ -81,5 +81,5 @@ private :
OTGateway * OT;
};
-};
+}
#include <OTScanGUI.h>
@@ -159,5 +159,5 @@ private :
int SelectedChannel;
};
-};
+}
#include <OTManageGUI.h>
@@ -197,5 +197,5 @@ private :
OTInquiry * Scanning;
};
-};
+}
#include <OTMainGUI.h>
@@ -235,4 +235,4 @@ private :
QDialog * SnifWindow;
};
-};
+}
#endif
diff --git a/noncore/settings/networksettings2/ppp/ppp.pro b/noncore/settings/networksettings2/ppp/ppp.pro
index dd3408c..10d0f1b 100644
--- a/noncore/settings/networksettings2/ppp/ppp.pro
+++ b/noncore/settings/networksettings2/ppp/ppp.pro
@@ -1,4 +1,4 @@
TEMPLATE = lib
-CONFIG += qt warn_on release
+CONFIG += qt warn_on release plugin
DESTDIR = $(OPIEDIR)/plugins/networksettings2
HEADERS = ppp_NN.h \
diff --git a/noncore/settings/networksettings2/ppp/ppp_NN.cpp b/noncore/settings/networksettings2/ppp/ppp_NN.cpp
index 51ba27d..bd13ab9 100644
--- a/noncore/settings/networksettings2/ppp/ppp_NN.cpp
+++ b/noncore/settings/networksettings2/ppp/ppp_NN.cpp
@@ -5,4 +5,10 @@
#include "ppp_NNI.h"
+#ifndef MYPLUGIN
+
+#include "netnodeinterface.h"
+
+#endif
+
QStringList * PPPNetNode::ProperFiles = 0;
@@ -79,7 +85,16 @@ void PPPNetNode::saveSpecificAttribute( QTextStream & ) {
}
+#ifdef MYPLUGIN
+
extern "C" {
void create_plugin( QList<ANetNode> & PNN ) {
PNN.append( new PPPNetNode() );
}
+
+#else
+
+OPIE_NS2_PLUGIN( NetNodeInterface<PPPNetNode> )
+
+#endif
+
}
diff --git a/noncore/settings/networksettings2/profile/profile.pro b/noncore/settings/networksettings2/profile/profile.pro
index f980034..4db7a5d 100644
--- a/noncore/settings/networksettings2/profile/profile.pro
+++ b/noncore/settings/networksettings2/profile/profile.pro
@@ -1,4 +1,4 @@
TEMPLATE = lib
-CONFIG += qt warn_on release
+CONFIG += qt warn_on release plugin
DESTDIR = $(OPIEDIR)/plugins/networksettings2
HEADERS = profile_NN.h \
diff --git a/noncore/settings/networksettings2/profile/profile_NN.cpp b/noncore/settings/networksettings2/profile/profile_NN.cpp
index b7d8aa0..6028ea5 100644
--- a/noncore/settings/networksettings2/profile/profile_NN.cpp
+++ b/noncore/settings/networksettings2/profile/profile_NN.cpp
@@ -3,4 +3,10 @@
#include "profile_NNI.h"
+#ifndef MYPLUGIN
+
+#include "netnodeinterface.h"
+
+#endif
+
static const char * ProfileNeeds[] =
{ "connection",
@@ -54,7 +60,16 @@ void ProfileNetNode::saveSpecificAttribute( QTextStream & ) {
}
+#ifdef MYPLUGIN
+
extern "C" {
void create_plugin( QList<ANetNode> & PNN ) {
PNN.append( new ProfileNetNode() );
}
+
+#else
+
+OPIE_NS2_PLUGIN( NetNodeInterface<ProfileNetNode> )
+
+#endif
+
}
diff --git a/noncore/settings/networksettings2/usb/usb.pro b/noncore/settings/networksettings2/usb/usb.pro
index 37c1bde..d9890b6 100644
--- a/noncore/settings/networksettings2/usb/usb.pro
+++ b/noncore/settings/networksettings2/usb/usb.pro
@@ -1,4 +1,4 @@
TEMPLATE = lib
-CONFIG += qt warn_on release
+CONFIG += qt warn_on release plugin
DESTDIR = $(OPIEDIR)/plugins/networksettings2
HEADERS = usb_NN.h \
diff --git a/noncore/settings/networksettings2/usb/usb_NN.cpp b/noncore/settings/networksettings2/usb/usb_NN.cpp
index bd9ae2b..9c07b82 100644
--- a/noncore/settings/networksettings2/usb/usb_NN.cpp
+++ b/noncore/settings/networksettings2/usb/usb_NN.cpp
@@ -3,4 +3,10 @@
#include "usb_NNI.h"
+#ifndef MYPLUGIN
+
+#include "netnodeinterface.h"
+
+#endif
+
static const char * USBNeeds[] =
{ 0
@@ -56,7 +62,16 @@ void USBNetNode::saveSpecificAttribute( QTextStream & ) {
}
+#ifdef MYPLUGIN
+
extern "C" {
void create_plugin( QList<ANetNode> & PNN ) {
PNN.append( new USBNetNode() );
}
+
+#else
+
+OPIE_NS2_PLUGIN( NetNodeInterface<USBNetNode> )
+
+#endif
+
}
diff --git a/noncore/settings/networksettings2/usb/usb_NNI.cpp b/noncore/settings/networksettings2/usb/usb_NNI.cpp
index 600b771..424845c 100644
--- a/noncore/settings/networksettings2/usb/usb_NNI.cpp
+++ b/noncore/settings/networksettings2/usb/usb_NNI.cpp
@@ -46,5 +46,5 @@ short AUSB::generateFileEmbedded( SystemFile & SF,
SF << " pre-up "
<< QPEApplication::qpeDir()
- << "bin/setmacaddress.sh "
+ << "bin/NS2SetMac.sh "
<< NIC
<< " || true"
diff --git a/noncore/settings/networksettings2/vpn/vpn.pro b/noncore/settings/networksettings2/vpn/vpn.pro
index a131a1f..349571e 100644
--- a/noncore/settings/networksettings2/vpn/vpn.pro
+++ b/noncore/settings/networksettings2/vpn/vpn.pro
@@ -1,4 +1,4 @@
TEMPLATE = lib
-CONFIG += qt warn_on release
+CONFIG += qt warn_on release plugin
DESTDIR = $(OPIEDIR)/plugins/networksettings2
HEADERS = vpn_NN.h \
diff --git a/noncore/settings/networksettings2/vpn/vpn_NN.cpp b/noncore/settings/networksettings2/vpn/vpn_NN.cpp
index 23ec04a..6dd5332 100644
--- a/noncore/settings/networksettings2/vpn/vpn_NN.cpp
+++ b/noncore/settings/networksettings2/vpn/vpn_NN.cpp
@@ -2,4 +2,10 @@
#include "vpn_NNI.h"
+#ifndef MYPLUGIN
+
+#include "netnodeinterface.h"
+
+#endif
+
static const char * VPNNeeds[] =
{ 0
@@ -48,7 +54,16 @@ void VPNNetNode::saveSpecificAttribute( QTextStream & ) {
}
+#ifdef MYPLUGIN
+
extern "C" {
void create_plugin( QList<ANetNode> & PNN ) {
PNN.append( new VPNNetNode() );
}
+
+#else
+
+OPIE_NS2_PLUGIN( NetNodeInterface<VPNNetNode> )
+
+#endif
+
}
diff --git a/noncore/settings/networksettings2/wlan/wlan.pro b/noncore/settings/networksettings2/wlan/wlan.pro
index f4c55df..a08cbbb 100644
--- a/noncore/settings/networksettings2/wlan/wlan.pro
+++ b/noncore/settings/networksettings2/wlan/wlan.pro
@@ -1,4 +1,4 @@
TEMPLATE = lib
-CONFIG += qt warn_on release
+CONFIG += qt warn_on release plugin
DESTDIR = $(OPIEDIR)/plugins/networksettings2
HEADERS = wlan_NN.h \
diff --git a/noncore/settings/networksettings2/wlan/wlan_NN.cpp b/noncore/settings/networksettings2/wlan/wlan_NN.cpp
index 36a5c33..c56da06 100644
--- a/noncore/settings/networksettings2/wlan/wlan_NN.cpp
+++ b/noncore/settings/networksettings2/wlan/wlan_NN.cpp
@@ -3,4 +3,10 @@
#include "wlan_NNI.h"
+#ifndef MYPLUGIN
+
+#include "netnodeinterface.h"
+
+#endif
+
static const char * WLanNeeds[] =
{ 0
@@ -64,7 +70,16 @@ void WLanNetNode::saveSpecificAttribute( QTextStream & TS ) {
}
+#ifdef MYPLUGIN
+
extern "C" {
void create_plugin( QList<ANetNode> & PNN ) {
PNN.append( new WLanNetNode() );
}
+
+#else
+
+OPIE_NS2_PLUGIN( NetNodeInterface<WLanNetNode> )
+
+#endif
+
}