summaryrefslogtreecommitdiff
path: root/noncore/net/wellenreiter/gui/wellenreiter.cpp
Unidiff
Diffstat (limited to 'noncore/net/wellenreiter/gui/wellenreiter.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/gui/wellenreiter.cpp37
1 files changed, 14 insertions, 23 deletions
diff --git a/noncore/net/wellenreiter/gui/wellenreiter.cpp b/noncore/net/wellenreiter/gui/wellenreiter.cpp
index 4c53028..db7063b 100644
--- a/noncore/net/wellenreiter/gui/wellenreiter.cpp
+++ b/noncore/net/wellenreiter/gui/wellenreiter.cpp
@@ -52,46 +52,47 @@ using namespace Opie;
52#include "scanlist.h" 52#include "scanlist.h"
53#include "logwindow.h" 53#include "logwindow.h"
54#include "hexwindow.h" 54#include "hexwindow.h"
55#include "configwindow.h" 55#include "configwindow.h"
56 56
57#include "manufacturers.h" 57#include "manufacturers.h"
58 58
59#include <daemon/source/config.hh> 59#include <daemon/source/config.hh>
60#include <libwellenreiter/source/wl_types.hh> 60#include <libwellenreiter/source/wl_types.hh>
61#include <libwellenreiter/source/wl_sock.hh> 61#include <libwellenreiter/source/wl_sock.hh>
62#include <libwellenreiter/source/wl_proto.hh> 62#include <libwellenreiter/source/wl_proto.hh>
63 63
64Wellenreiter::Wellenreiter( QWidget* parent, const char* name, WFlags fl ) 64Wellenreiter::Wellenreiter( QWidget* parent )
65 : WellenreiterBase( parent, name, fl ), daemonRunning( false ), manufacturerdb( 0 ) 65 : WellenreiterBase( parent, 0, 0 ),
66 daemonRunning( false ), manufacturerdb( 0 ), configwindow( 0 )
66{ 67{
67 68
68 // 69 //
69 // construct manufacturer database 70 // construct manufacturer database
70 // 71 //
71 72
72 QString manufile; 73 QString manufile;
73 #ifdef QWS 74 #ifdef QWS
74 manufile.sprintf( "%s/share/wellenreiter/manufacturers.dat", (const char*) QPEApplication::qpeDir() ); 75 manufile.sprintf( "%s/share/wellenreiter/manufacturers.dat", (const char*) QPEApplication::qpeDir() );
75 #else 76 #else
76 manufile.sprintf( "/home/mickey/work/opie/share/wellenreiter/manufacturers.dat" ); 77 manufile.sprintf( "/home/mickey/work/opie/share/wellenreiter/manufacturers.dat" );
77 #endif 78 #endif
78 manufacturerdb = new ManufacturerDB( manufile ); 79 manufacturerdb = new ManufacturerDB( manufile );
79 80
80 logwindow->log( "(i) Wellenreiter has been started." ); 81 logwindow->log( "(i) Wellenreiter has been started." );
81 82
82 // 83 //
83 // detect operating system 84 // detect operating system
84 // 85 //
85 86
86 #ifdef QWS 87 #ifdef QWS
87 QString sys; 88 QString sys;
88 sys.sprintf( "(i) Running on '%s'.", (const char*) ODevice::inst()->systemString() ); 89 sys.sprintf( "(i) Running on '%s'.", (const char*) ODevice::inst()->systemString() );
89 _system = ODevice::inst()->system(); 90 _system = ODevice::inst()->system();
90 logwindow->log( sys ); 91 logwindow->log( sys );
91 #endif 92 #endif
92 93
93 // 94 //
94 // setup socket for daemon communication, register socket notifier 95 // setup socket for daemon communication, register socket notifier
95 // 96 //
96 97
97 // struct sockaddr_in sockaddr; 98 // struct sockaddr_in sockaddr;
@@ -101,41 +102,43 @@ Wellenreiter::Wellenreiter( QWidget* parent, const char* name, WFlags fl )
101 logwindow->log( "(E) Couldn't get file descriptor for commsocket." ); 102 logwindow->log( "(E) Couldn't get file descriptor for commsocket." );
102 } 103 }
103 else 104 else
104 { 105 {
105 int flags; 106 int flags;
106 flags = fcntl( daemon_fd, F_GETFL, 0 ); 107 flags = fcntl( daemon_fd, F_GETFL, 0 );
107 fcntl( daemon_fd, F_SETFL, flags | O_NONBLOCK ); 108 fcntl( daemon_fd, F_SETFL, flags | O_NONBLOCK );
108 QSocketNotifier *sn = new QSocketNotifier( daemon_fd, QSocketNotifier::Read, parent ); 109 QSocketNotifier *sn = new QSocketNotifier( daemon_fd, QSocketNotifier::Read, parent );
109 connect( sn, SIGNAL( activated( int ) ), this, SLOT( dataReceived() ) ); 110 connect( sn, SIGNAL( activated( int ) ), this, SLOT( dataReceived() ) );
110 } 111 }
111 112
112 // setup GUI 113 // setup GUI
113
114 connect( button, SIGNAL( clicked() ), this, SLOT( buttonClicked() ) );
115 // button->setEnabled( false );
116 netview->setColumnWidthMode( 1, QListView::Manual ); 114 netview->setColumnWidthMode( 1, QListView::Manual );
117 115
118 if ( manufacturerdb ) 116 if ( manufacturerdb )
119 netview->setManufacturerDB( manufacturerdb ); 117 netview->setManufacturerDB( manufacturerdb );
120 118
121} 119}
122 120
123Wellenreiter::~Wellenreiter() 121Wellenreiter::~Wellenreiter()
124{ 122{
125 // no need to delete child widgets, Qt does it all for us 123 // no need to delete child widgets, Qt does it all for us
126 124
127 delete manufacturerdb; 125 delete manufacturerdb;
128} 126}
129 127
128void Wellenreiter::setConfigWindow( WellenreiterConfigWindow* cw )
129{
130 configwindow = cw;
131}
132
130void Wellenreiter::handleMessage() 133void Wellenreiter::handleMessage()
131{ 134{
132 // FIXME: receive message and handle it 135 // FIXME: receive message and handle it
133 136
134 qDebug( "received message from daemon." ); 137 qDebug( "received message from daemon." );
135 138
136 /*char buffer[10000]; 139 /*char buffer[10000];
137 memset( &buffer, 0, sizeof( buffer ) );*/ 140 memset( &buffer, 0, sizeof( buffer ) );*/
138 141
139 char buffer[WL_SOCKBUF]; 142 char buffer[WL_SOCKBUF];
140 143
141 // int result = #wl_recv( &daemon_fd, (char*) &buffer, sizeof(buffer) ); 144 // int result = #wl_recv( &daemon_fd, (char*) &buffer, sizeof(buffer) );
@@ -202,42 +205,31 @@ typedef struct {
202 { 205 {
203 qDebug( "unknown sniffer command." ); 206 qDebug( "unknown sniffer command." );
204 } 207 }
205 208
206} 209}
207 210
208void Wellenreiter::dataReceived() 211void Wellenreiter::dataReceived()
209{ 212{
210 logwindow->log( "(d) Received data from daemon" ); 213 logwindow->log( "(d) Received data from daemon" );
211 handleMessage(); 214 handleMessage();
212} 215}
213 216
214void Wellenreiter::buttonClicked() 217void Wellenreiter::startStopClicked()
215{ 218{
216 /*
217 // add some test stations, so that we can see if the GUI part works
218 addNewItem( "managed", "Vanille", "04:00:20:EF:A6:43", true, 6, 80 );
219 addNewItem( "managed", "Vanille", "04:00:20:EF:A6:23", true, 11, 10 );
220 addNewItem( "adhoc", "ELAN", "40:03:43:E7:16:22", false, 3, 10 );
221 addNewItem( "adhoc", "ELAN", "40:03:53:E7:56:62", false, 3, 15 );
222 addNewItem( "adhoc", "ELAN", "40:03:63:E7:56:E2", false, 3, 20 );
223 */
224
225
226 if ( daemonRunning ) 219 if ( daemonRunning )
227 { 220 {
228 daemonRunning = false; 221 daemonRunning = false;
229 222
230 logwindow->log( "(i) Daemon has been stopped." ); 223 logwindow->log( "(i) Daemon has been stopped." );
231 button->setText( tr( "Start Scanning" ) );
232 setCaption( tr( "Wellenreiter/Opie" ) ); 224 setCaption( tr( "Wellenreiter/Opie" ) );
233 225
234 // Stop daemon - ugly for now... later better 226 // Stop daemon - ugly for now... later better
235 227
236 system( "killall wellenreiterd" ); 228 system( "killall wellenreiterd" );
237 229
238 // get configuration from config window 230 // get configuration from config window
239 231
240 const QString& interface = configwindow->interfaceName->currentText(); 232 const QString& interface = configwindow->interfaceName->currentText();
241 233
242 // reset the interface trying to get it into a usable state again 234 // reset the interface trying to get it into a usable state again
243 235
@@ -252,32 +244,31 @@ void Wellenreiter::buttonClicked()
252 244
253 else 245 else
254 { 246 {
255 247
256 // get configuration from config window 248 // get configuration from config window
257 249
258 const QString& interface = configwindow->interfaceName->currentText(); 250 const QString& interface = configwindow->interfaceName->currentText();
259 const int cardtype = configwindow->daemonDeviceType(); 251 const int cardtype = configwindow->daemonDeviceType();
260 const int interval = configwindow->daemonHopInterval(); 252 const int interval = configwindow->daemonHopInterval();
261 253
262 if ( ( interface == "<select>" ) || ( cardtype == 0 ) ) 254 if ( ( interface == "<select>" ) || ( cardtype == 0 ) )
263 { 255 {
264 QMessageBox::information( this, "Wellenreiter/Opie", "You must configure your\ndevice before scanning." ); 256 QMessageBox::information( this, "Wellenreiter/Opie", "Your device is not\nptoperly configured. Please reconfigure!" );
265 return; 257 return;
266 } 258 }
267 259
268 // start wellenreiterd 260 // start wellenreiterd
269 261
270 QString cmdline; 262 QString cmdline;
271 cmdline.sprintf( "wellenreiterd %s %d &", (const char*) interface, cardtype ); 263 cmdline.sprintf( "wellenreiterd %s %d &", (const char*) interface, cardtype );
272 264
273 qDebug( "about to execute '%s' ...", (const char*) cmdline ); 265 qDebug( "about to execute '%s' ...", (const char*) cmdline );
274 system( cmdline ); 266 system( cmdline );
275 qDebug( "done!" ); 267 qDebug( "done!" );
276 268
277 logwindow->log( "(i) Daemon has been started." ); 269 logwindow->log( "(i) Daemon has been started." );
278 daemonRunning = true; 270 daemonRunning = true;
279 button->setText( tr( "Stop Scanning" ) );
280 setCaption( tr( "Scanning ..." ) ); 271 setCaption( tr( "Scanning ..." ) );
281 272
282 } 273 }
283} 274}