-rw-r--r-- | noncore/net/wellenreiter/gui/protolistview.cpp | 12 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/protolistview.h | 2 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/wellenreiter.cpp | 75 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/wellenreiter.h | 3 |
4 files changed, 77 insertions, 15 deletions
diff --git a/noncore/net/wellenreiter/gui/protolistview.cpp b/noncore/net/wellenreiter/gui/protolistview.cpp index 05ff5e7..d4b0dfe 100644 --- a/noncore/net/wellenreiter/gui/protolistview.cpp +++ b/noncore/net/wellenreiter/gui/protolistview.cpp @@ -103,9 +103,15 @@ bool ProtocolListView::isProtocolChecked( const QString& name ) } -QString ProtocolListView::protocolAction( const QString& name ) const +QString ProtocolListView::protocolAction( const QString& name ) { - //FIXME + //QObject * child ( const char * objName, const char * inheritsClass = 0, + // bool recursiveSearch = TRUE ) + + QComboBox* combo = (QComboBox*) child( (const char*) name, "QComboBox" ); + if ( combo ) + return combo->currentText(); + else + return "<unknown>"; } - diff --git a/noncore/net/wellenreiter/gui/protolistview.h b/noncore/net/wellenreiter/gui/protolistview.h index 723e8cd..166b648 100644 --- a/noncore/net/wellenreiter/gui/protolistview.h +++ b/noncore/net/wellenreiter/gui/protolistview.h @@ -32,7 +32,7 @@ class ProtocolListView : public QScrollView virtual ~ProtocolListView(); bool isProtocolChecked( const QString& name ); - QString protocolAction( const QString& name ) const; + QString protocolAction( const QString& name ); protected: virtual void addProtocol( const QString& name ); diff --git a/noncore/net/wellenreiter/gui/wellenreiter.cpp b/noncore/net/wellenreiter/gui/wellenreiter.cpp index 2f3d093..edf7dcf 100644 --- a/noncore/net/wellenreiter/gui/wellenreiter.cpp +++ b/noncore/net/wellenreiter/gui/wellenreiter.cpp @@ -13,6 +13,18 @@ ** ***********************************************************************/ +// Local + +#include "wellenreiter.h" +#include "scanlist.h" +#include "logwindow.h" +#include "hexwindow.h" +#include "configwindow.h" +#include "statwindow.h" +#include "graphwindow.h" +#include "manufacturers.h" +#include "protolistview.h" + // Opie #ifdef QWS @@ -36,6 +48,7 @@ using namespace Opie; #include <qpushbutton.h> #include <qlineedit.h> #include <qmessagebox.h> +#include <qobjectlist.h> #include <qregexp.h> #include <qspinbox.h> #include <qtoolbutton.h> @@ -50,17 +63,6 @@ using namespace Opie; #include <sys/types.h> #include <stdlib.h> -// Local - -#include "wellenreiter.h" -#include "scanlist.h" -#include "logwindow.h" -#include "hexwindow.h" -#include "configwindow.h" -#include "statwindow.h" -#include "graphwindow.h" -#include "manufacturers.h" - Wellenreiter::Wellenreiter( QWidget* parent ) : WellenreiterBase( parent, 0, 0 ), sniffing( false ), iface( 0 ), manufacturerdb( 0 ), configwindow( 0 ) @@ -137,6 +139,30 @@ void Wellenreiter::channelHopped(int c) } +void Wellenreiter::handleNotification( OPacket* p ) +{ + QObjectList* l = p->queryList(); + QObjectListIt it( *l ); + QObject* o; + + while ( (o = it.current()) != 0 ) + { + QString name = it.current()->name(); + if ( configwindow->parsePackets->isProtocolChecked( name ) ) + { + QString action = configwindow->parsePackets->protocolAction( name ); + qDebug( "action for '%s' seems to be '%s'", (const char*) name, (const char*) action ); + doAction( action, name, p ); + } + else + { + qDebug( "protocol '%s' not checked.", (const char*) name ); + } + ++it; + } +} + + void Wellenreiter::handleBeacon( OPacket* p, OWaveLanManagementPacket* beacon ) { QString type; @@ -245,10 +271,18 @@ void Wellenreiter::handleData( OPacket* p, OWaveLanDataPacket* data ) } +QObject* childIfToParse( OPacket* p, const QString& protocol ) +{ + //FIXME: Implement +} + + void Wellenreiter::receivePacket( OPacket* p ) { hexWindow()->log( p->dump( 8 ) ); + handleNotification( p ); + // check if we received a beacon frame OWaveLanManagementPacket* beacon = static_cast<OWaveLanManagementPacket*>( p->child( "802.11 Management" ) ); if ( beacon && beacon->managementType() == "Beacon" ) @@ -431,3 +465,22 @@ void Wellenreiter::timerEvent( QTimerEvent* ) } } + +void Wellenreiter::doAction( const QString& action, const QString& protocol, OPacket* p ) +{ + if ( action == "TouchSound" ) + ODevice::inst()->touchSound(); + else if ( action == "AlarmSound" ) + ODevice::inst()->alarmSound(); + else if ( action == "KeySound" ) + ODevice::inst()->keySound(); + else if ( action == "LedOn" ) + ODevice::inst()->setLedState( Led_Mail, Led_On ); + else if ( action == "LedOff" ) + ODevice::inst()->setLedState( Led_Mail, Led_Off ); + else if ( action == "LogMessage" ) + logwindow->log( QString().sprintf( "Got packet with protocol '%s'", (const char*) protocol ) ); + else if ( action == "MessageBox" ) + QMessageBox::information ( this, "Notification!", + QString().sprintf( "Got packet with protocol '%s'", (const char*) protocol ) ); +} diff --git a/noncore/net/wellenreiter/gui/wellenreiter.h b/noncore/net/wellenreiter/gui/wellenreiter.h index ea8a692..e227a24 100644 --- a/noncore/net/wellenreiter/gui/wellenreiter.h +++ b/noncore/net/wellenreiter/gui/wellenreiter.h @@ -66,6 +66,9 @@ class Wellenreiter : public WellenreiterBase { private: void handleBeacon( OPacket* p, OWaveLanManagementPacket* beacon ); void handleData( OPacket* p, OWaveLanDataPacket* data ); + void handleNotification( OPacket* p ); + void doAction( const QString& action, const QString& protocol, OPacket* p ); + QObject* childIfToParse( OPacket* p, const QString& protocol ); private: #ifdef QWS |