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 + } |