summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/gui/protolistview.cpp12
-rw-r--r--noncore/net/wellenreiter/gui/protolistview.h2
-rw-r--r--noncore/net/wellenreiter/gui/wellenreiter.cpp75
-rw-r--r--noncore/net/wellenreiter/gui/wellenreiter.h3
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
@@ -105,7 +105,13 @@ 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
@@ -34,3 +34,3 @@ class ProtocolListView : public QScrollView
bool isProtocolChecked( const QString& name );
- QString protocolAction( const QString& name ) const;
+ QString protocolAction( 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
@@ -15,2 +15,14 @@
+// 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
@@ -38,2 +50,3 @@ using namespace Opie;
#include <qmessagebox.h>
+#include <qobjectlist.h>
#include <qregexp.h>
@@ -52,13 +65,2 @@ using namespace Opie;
-// 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 )
@@ -139,2 +141,26 @@ 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 )
@@ -247,2 +273,8 @@ void Wellenreiter::handleData( OPacket* p, OWaveLanDataPacket* data )
+QObject* childIfToParse( OPacket* p, const QString& protocol )
+{
+ //FIXME: Implement
+}
+
+
void Wellenreiter::receivePacket( OPacket* p )
@@ -251,2 +283,4 @@ void Wellenreiter::receivePacket( OPacket* p )
+ handleNotification( p );
+
// check if we received a beacon frame
@@ -433 +467,20 @@ 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
@@ -68,2 +68,5 @@ class Wellenreiter : public WellenreiterBase {
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 );