summaryrefslogtreecommitdiff
authormickeyl <mickeyl>2003-03-31 14:30:17 (UTC)
committer mickeyl <mickeyl>2003-03-31 14:30:17 (UTC)
commit13e8e8cbaede72948d3901a1a903eba43854d770 (patch) (unidiff)
tree672679ac87efdfecd4755f712cfd11c2d2abad43
parente609b9726786efe7cd5be0cd6d8d9f4d91703da5 (diff)
downloadopie-13e8e8cbaede72948d3901a1a903eba43854d770.zip
opie-13e8e8cbaede72948d3901a1a903eba43854d770.tar.gz
opie-13e8e8cbaede72948d3901a1a903eba43854d770.tar.bz2
- initial attempt to autodetect driver
- add possibility to play sounds when receiving beacon and/or found a new network
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/gui/configbase.ui155
-rw-r--r--noncore/net/wellenreiter/gui/configwindow.cpp32
-rw-r--r--noncore/net/wellenreiter/gui/configwindow.h8
-rw-r--r--noncore/net/wellenreiter/gui/scanlist.cpp24
-rw-r--r--noncore/net/wellenreiter/gui/scanlist.h3
-rw-r--r--noncore/net/wellenreiter/gui/wellenreiter.cpp16
6 files changed, 166 insertions, 72 deletions
diff --git a/noncore/net/wellenreiter/gui/configbase.ui b/noncore/net/wellenreiter/gui/configbase.ui
index fa727f9..dda7ba0 100644
--- a/noncore/net/wellenreiter/gui/configbase.ui
+++ b/noncore/net/wellenreiter/gui/configbase.ui
@@ -1,415 +1,460 @@
1<!DOCTYPE UI><UI> 1<!DOCTYPE UI><UI>
2<class>WellenreiterConfigBase</class> 2<class>WellenreiterConfigBase</class>
3<widget> 3<widget>
4 <class>QDialog</class> 4 <class>QDialog</class>
5 <property stdset="1"> 5 <property stdset="1">
6 <name>name</name> 6 <name>name</name>
7 <cstring>WellenreiterConfigBase</cstring> 7 <cstring>WellenreiterConfigBase</cstring>
8 </property> 8 </property>
9 <property stdset="1"> 9 <property stdset="1">
10 <name>geometry</name> 10 <name>geometry</name>
11 <rect> 11 <rect>
12 <x>0</x> 12 <x>0</x>
13 <y>0</y> 13 <y>0</y>
14 <width>212</width> 14 <width>220</width>
15 <height>267</height> 15 <height>306</height>
16 </rect> 16 </rect>
17 </property> 17 </property>
18 <property stdset="1"> 18 <property stdset="1">
19 <name>caption</name> 19 <name>caption</name>
20 <string>Form1</string> 20 <string>Form1</string>
21 </property> 21 </property>
22 <property> 22 <property>
23 <name>layoutMargin</name> 23 <name>layoutMargin</name>
24 </property> 24 </property>
25 <property> 25 <property>
26 <name>layoutSpacing</name> 26 <name>layoutSpacing</name>
27 </property> 27 </property>
28 <vbox> 28 <vbox>
29 <property stdset="1"> 29 <property stdset="1">
30 <name>margin</name> 30 <name>margin</name>
31 <number>4</number> 31 <number>3</number>
32 </property> 32 </property>
33 <property stdset="1"> 33 <property stdset="1">
34 <name>spacing</name> 34 <name>spacing</name>
35 <number>1</number> 35 <number>1</number>
36 </property> 36 </property>
37 <widget> 37 <widget>
38 <class>QLayoutWidget</class> 38 <class>QLayoutWidget</class>
39 <property stdset="1"> 39 <property stdset="1">
40 <name>name</name> 40 <name>name</name>
41 <cstring>Layout5</cstring> 41 <cstring>Layout5</cstring>
42 </property> 42 </property>
43 <property> 43 <property>
44 <name>layoutSpacing</name> 44 <name>layoutSpacing</name>
45 </property> 45 </property>
46 <hbox> 46 <hbox>
47 <property stdset="1"> 47 <property stdset="1">
48 <name>margin</name> 48 <name>margin</name>
49 <number>0</number> 49 <number>0</number>
50 </property> 50 </property>
51 <property stdset="1"> 51 <property stdset="1">
52 <name>spacing</name> 52 <name>spacing</name>
53 <number>2</number> 53 <number>2</number>
54 </property> 54 </property>
55 <widget> 55 <widget>
56 <class>QLabel</class> 56 <class>QLabel</class>
57 <property stdset="1"> 57 <property stdset="1">
58 <name>name</name> 58 <name>name</name>
59 <cstring>TextLabel3_2</cstring> 59 <cstring>TextLabel3_2</cstring>
60 </property> 60 </property>
61 <property stdset="1"> 61 <property stdset="1">
62 <name>sizePolicy</name> 62 <name>sizePolicy</name>
63 <sizepolicy> 63 <sizepolicy>
64 <hsizetype>4</hsizetype> 64 <hsizetype>4</hsizetype>
65 <vsizetype>1</vsizetype> 65 <vsizetype>1</vsizetype>
66 </sizepolicy> 66 </sizepolicy>
67 </property> 67 </property>
68 <property stdset="1"> 68 <property stdset="1">
69 <name>text</name> 69 <name>text</name>
70 <string>Sniffer</string> 70 <string>Sniffer</string>
71 </property> 71 </property>
72 </widget> 72 </widget>
73 <widget> 73 <widget>
74 <class>Line</class> 74 <class>Line</class>
75 <property stdset="1"> 75 <property stdset="1">
76 <name>name</name> 76 <name>name</name>
77 <cstring>Line9</cstring> 77 <cstring>Line9</cstring>
78 </property> 78 </property>
79 <property stdset="1"> 79 <property stdset="1">
80 <name>orientation</name> 80 <name>orientation</name>
81 <enum>Horizontal</enum> 81 <enum>Horizontal</enum>
82 </property> 82 </property>
83 </widget> 83 </widget>
84 </hbox> 84 </hbox>
85 </widget> 85 </widget>
86 <widget> 86 <widget>
87 <class>QLayoutWidget</class> 87 <class>QLayoutWidget</class>
88 <property stdset="1"> 88 <property stdset="1">
89 <name>name</name> 89 <name>name</name>
90 <cstring>Layout7</cstring> 90 <cstring>Layout7</cstring>
91 </property> 91 </property>
92 <property> 92 <property>
93 <name>layoutSpacing</name> 93 <name>layoutSpacing</name>
94 </property> 94 </property>
95 <grid> 95 <grid>
96 <property stdset="1"> 96 <property stdset="1">
97 <name>margin</name> 97 <name>margin</name>
98 <number>0</number> 98 <number>0</number>
99 </property> 99 </property>
100 <property stdset="1"> 100 <property stdset="1">
101 <name>spacing</name> 101 <name>spacing</name>
102 <number>2</number> 102 <number>2</number>
103 </property> 103 </property>
104 <widget row="0" column="0" > 104 <widget row="0" column="0" >
105 <class>QComboBox</class> 105 <class>QComboBox</class>
106 <property stdset="1"> 106 <property stdset="1">
107 <name>name</name> 107 <name>name</name>
108 <cstring>interfaceName</cstring> 108 <cstring>interfaceName</cstring>
109 </property> 109 </property>
110 <property stdset="1"> 110 <property stdset="1">
111 <name>enabled</name> 111 <name>enabled</name>
112 <bool>true</bool> 112 <bool>true</bool>
113 </property> 113 </property>
114 <property> 114 <property>
115 <name>whatsThis</name> 115 <name>whatsThis</name>
116 <string>Choose the interface used for sniffing.</string> 116 <string>Choose the interface used for sniffing.</string>
117 </property> 117 </property>
118 </widget> 118 </widget>
119 <widget row="4" column="0" rowspan="1" colspan="2" > 119 <widget row="4" column="0" rowspan="1" colspan="2" >
120 <class>QCheckBox</class> 120 <class>QCheckBox</class>
121 <property stdset="1"> 121 <property stdset="1">
122 <name>name</name> 122 <name>name</name>
123 <cstring>activeScanning</cstring> 123 <cstring>activeScanning</cstring>
124 </property> 124 </property>
125 <property stdset="1"> 125 <property stdset="1">
126 <name>enabled</name> 126 <name>enabled</name>
127 <bool>false</bool> 127 <bool>false</bool>
128 </property> 128 </property>
129 <property stdset="1"> 129 <property stdset="1">
130 <name>text</name> 130 <name>text</name>
131 <string>Active Scanning (caution!)</string> 131 <string>Active Scanning (caution!)</string>
132 </property> 132 </property>
133 </widget> 133 </widget>
134 <widget row="1" column="0" > 134 <widget row="1" column="0" >
135 <class>QComboBox</class> 135 <class>QComboBox</class>
136 <item> 136 <item>
137 <property> 137 <property>
138 <name>text</name> 138 <name>text</name>
139 <string>&lt;select&gt;</string> 139 <string>&lt;select&gt;</string>
140 </property> 140 </property>
141 </item> 141 </item>
142 <item> 142 <item>
143 <property> 143 <property>
144 <name>text</name> 144 <name>text</name>
145 <string>cisco</string> 145 <string>cisco</string>
146 </property> 146 </property>
147 </item> 147 </item>
148 <item> 148 <item>
149 <property> 149 <property>
150 <name>text</name> 150 <name>text</name>
151 <string>wlan-ng</string> 151 <string>wlan-ng</string>
152 </property> 152 </property>
153 </item> 153 </item>
154 <item> 154 <item>
155 <property> 155 <property>
156 <name>text</name> 156 <name>text</name>
157 <string>hostap</string> 157 <string>hostap</string>
158 </property> 158 </property>
159 </item> 159 </item>
160 <item> 160 <item>
161 <property> 161 <property>
162 <name>text</name> 162 <name>text</name>
163 <string>orinoco</string> 163 <string>orinoco</string>
164 </property> 164 </property>
165 </item> 165 </item>
166 <item> 166 <item>
167 <property> 167 <property>
168 <name>text</name> 168 <name>text</name>
169 <string>&lt;manual&gt;</string> 169 <string>&lt;manual&gt;</string>
170 </property> 170 </property>
171 </item> 171 </item>
172 <property stdset="1"> 172 <property stdset="1">
173 <name>name</name> 173 <name>name</name>
174 <cstring>deviceType</cstring> 174 <cstring>deviceType</cstring>
175 </property> 175 </property>
176 <property stdset="1"> 176 <property stdset="1">
177 <name>enabled</name> 177 <name>enabled</name>
178 <bool>true</bool> 178 <bool>true</bool>
179 </property> 179 </property>
180 <property> 180 <property>
181 <name>whatsThis</name> 181 <name>whatsThis</name>
182 <string>Choose the type of driver used for sniffing.</string> 182 <string>Choose the type of driver used for sniffing.</string>
183 </property> 183 </property>
184 </widget> 184 </widget>
185 <widget row="3" column="0" rowspan="1" colspan="2" > 185 <widget row="3" column="0" rowspan="1" colspan="2" >
186 <class>QCheckBox</class> 186 <class>QCheckBox</class>
187 <property stdset="1"> 187 <property stdset="1">
188 <name>name</name> 188 <name>name</name>
189 <cstring>additionalInfo</cstring> 189 <cstring>additionalInfo</cstring>
190 </property> 190 </property>
191 <property stdset="1"> 191 <property stdset="1">
192 <name>enabled</name> 192 <name>enabled</name>
193 <bool>false</bool> 193 <bool>false</bool>
194 </property> 194 </property>
195 <property stdset="1"> 195 <property stdset="1">
196 <name>text</name> 196 <name>text</name>
197 <string>Gather Additional Info</string> 197 <string>Gather Additional Info</string>
198 </property> 198 </property>
199 </widget> 199 </widget>
200 <widget row="2" column="0" > 200 <widget row="2" column="0" >
201 <class>QSpinBox</class> 201 <class>QSpinBox</class>
202 <property stdset="1"> 202 <property stdset="1">
203 <name>name</name> 203 <name>name</name>
204 <cstring>hopInterval</cstring> 204 <cstring>hopInterval</cstring>
205 </property> 205 </property>
206 <property stdset="1"> 206 <property stdset="1">
207 <name>enabled</name> 207 <name>enabled</name>
208 <bool>true</bool> 208 <bool>true</bool>
209 </property> 209 </property>
210 <property stdset="1"> 210 <property stdset="1">
211 <name>suffix</name> 211 <name>suffix</name>
212 <string> ms</string> 212 <string> ms</string>
213 </property> 213 </property>
214 <property stdset="1"> 214 <property stdset="1">
215 <name>maxValue</name> 215 <name>maxValue</name>
216 <number>2000</number> 216 <number>2000</number>
217 </property> 217 </property>
218 <property stdset="1"> 218 <property stdset="1">
219 <name>minValue</name> 219 <name>minValue</name>
220 <number>100</number> 220 <number>100</number>
221 </property> 221 </property>
222 <property stdset="1"> 222 <property stdset="1">
223 <name>lineStep</name> 223 <name>lineStep</name>
224 <number>100</number> 224 <number>100</number>
225 </property> 225 </property>
226 <property> 226 <property>
227 <name>whatsThis</name> 227 <name>whatsThis</name>
228 <string>Choose the channel hop interval.</string> 228 <string>Choose the channel hop interval.</string>
229 </property> 229 </property>
230 </widget> 230 </widget>
231 <widget row="2" column="1" > 231 <widget row="2" column="1" >
232 <class>QLabel</class> 232 <class>QLabel</class>
233 <property stdset="1"> 233 <property stdset="1">
234 <name>name</name> 234 <name>name</name>
235 <cstring>TextLabel3_3</cstring> 235 <cstring>TextLabel3_3</cstring>
236 </property> 236 </property>
237 <property stdset="1"> 237 <property stdset="1">
238 <name>enabled</name> 238 <name>enabled</name>
239 <bool>true</bool> 239 <bool>true</bool>
240 </property> 240 </property>
241 <property stdset="1"> 241 <property stdset="1">
242 <name>text</name> 242 <name>text</name>
243 <string>Hop Interval</string> 243 <string>Hop Interval</string>
244 </property> 244 </property>
245 </widget> 245 </widget>
246 <widget row="1" column="1" > 246 <widget row="1" column="1" >
247 <class>QLabel</class> 247 <class>QLabel</class>
248 <property stdset="1"> 248 <property stdset="1">
249 <name>name</name> 249 <name>name</name>
250 <cstring>TextLabel2_3</cstring> 250 <cstring>TextLabel2_3</cstring>
251 </property> 251 </property>
252 <property stdset="1"> 252 <property stdset="1">
253 <name>enabled</name> 253 <name>enabled</name>
254 <bool>true</bool> 254 <bool>true</bool>
255 </property> 255 </property>
256 <property stdset="1"> 256 <property stdset="1">
257 <name>text</name> 257 <name>text</name>
258 <string>Device Type</string> 258 <string>Device Type</string>
259 </property> 259 </property>
260 </widget> 260 </widget>
261 <widget row="0" column="1" > 261 <widget row="0" column="1" >
262 <class>QLabel</class> 262 <class>QLabel</class>
263 <property stdset="1"> 263 <property stdset="1">
264 <name>name</name> 264 <name>name</name>
265 <cstring>TextLabel1_2</cstring> 265 <cstring>TextLabel1_2</cstring>
266 </property> 266 </property>
267 <property stdset="1"> 267 <property stdset="1">
268 <name>enabled</name> 268 <name>enabled</name>
269 <bool>true</bool> 269 <bool>true</bool>
270 </property> 270 </property>
271 <property stdset="1"> 271 <property stdset="1">
272 <name>text</name> 272 <name>text</name>
273 <string>Interface Name</string> 273 <string>Interface Name</string>
274 </property> 274 </property>
275 </widget> 275 </widget>
276 </grid> 276 </grid>
277 </widget> 277 </widget>
278 <widget> 278 <widget>
279 <class>QLayoutWidget</class> 279 <class>QLayoutWidget</class>
280 <property stdset="1"> 280 <property stdset="1">
281 <name>name</name> 281 <name>name</name>
282 <cstring>Layout6</cstring> 282 <cstring>Layout6</cstring>
283 </property> 283 </property>
284 <property> 284 <property>
285 <name>layoutSpacing</name> 285 <name>layoutSpacing</name>
286 </property> 286 </property>
287 <hbox> 287 <hbox>
288 <property stdset="1"> 288 <property stdset="1">
289 <name>margin</name> 289 <name>margin</name>
290 <number>0</number> 290 <number>0</number>
291 </property> 291 </property>
292 <property stdset="1"> 292 <property stdset="1">
293 <name>spacing</name> 293 <name>spacing</name>
294 <number>2</number> 294 <number>2</number>
295 </property> 295 </property>
296 <widget> 296 <widget>
297 <class>QLabel</class> 297 <class>QLabel</class>
298 <property stdset="1"> 298 <property stdset="1">
299 <name>name</name> 299 <name>name</name>
300 <cstring>TextLabel3_2_2</cstring> 300 <cstring>TextLabel3_2_2</cstring>
301 </property> 301 </property>
302 <property stdset="1"> 302 <property stdset="1">
303 <name>sizePolicy</name> 303 <name>sizePolicy</name>
304 <sizepolicy> 304 <sizepolicy>
305 <hsizetype>4</hsizetype> 305 <hsizetype>4</hsizetype>
306 <vsizetype>1</vsizetype> 306 <vsizetype>1</vsizetype>
307 </sizepolicy> 307 </sizepolicy>
308 </property> 308 </property>
309 <property stdset="1"> 309 <property stdset="1">
310 <name>text</name> 310 <name>text</name>
311 <string>GUI</string> 311 <string>GUI</string>
312 </property> 312 </property>
313 </widget> 313 </widget>
314 <widget> 314 <widget>
315 <class>Line</class> 315 <class>Line</class>
316 <property stdset="1"> 316 <property stdset="1">
317 <name>name</name> 317 <name>name</name>
318 <cstring>Line9_2</cstring> 318 <cstring>Line9_2</cstring>
319 </property> 319 </property>
320 <property stdset="1"> 320 <property stdset="1">
321 <name>orientation</name> 321 <name>orientation</name>
322 <enum>Horizontal</enum> 322 <enum>Horizontal</enum>
323 </property> 323 </property>
324 </widget> 324 </widget>
325 </hbox> 325 </hbox>
326 </widget> 326 </widget>
327 <widget> 327 <widget>
328 <class>QCheckBox</class>
329 <property stdset="1">
330 <name>name</name>
331 <cstring>groupNetworks</cstring>
332 </property>
333 <property stdset="1">
334 <name>enabled</name>
335 <bool>false</bool>
336 </property>
337 <property stdset="1">
338 <name>text</name>
339 <string>Group Detected Networks</string>
340 </property>
341 </widget>
342 <widget>
343 <class>QCheckBox</class>
344 <property stdset="1">
345 <name>name</name>
346 <cstring>enableActivity</cstring>
347 </property>
348 <property stdset="1">
349 <name>enabled</name>
350 <bool>false</bool>
351 </property>
352 <property stdset="1">
353 <name>text</name>
354 <string>Enable Activity Display</string>
355 </property>
356 </widget>
357 <widget>
328 <class>QLayoutWidget</class> 358 <class>QLayoutWidget</class>
329 <property stdset="1"> 359 <property stdset="1">
330 <name>name</name> 360 <name>name</name>
331 <cstring>Layout5</cstring> 361 <cstring>Layout5</cstring>
332 </property> 362 </property>
333 <property> 363 <grid>
334 <name>layoutSpacing</name>
335 </property>
336 <vbox>
337 <property stdset="1"> 364 <property stdset="1">
338 <name>margin</name> 365 <name>margin</name>
339 <number>0</number> 366 <number>0</number>
340 </property> 367 </property>
341 <property stdset="1"> 368 <property stdset="1">
342 <name>spacing</name> 369 <name>spacing</name>
343 <number>-1</number> 370 <number>6</number>
344 </property> 371 </property>
345 <widget> 372 <widget row="0" column="1" >
346 <class>QCheckBox</class> 373 <class>QLabel</class>
347 <property stdset="1"> 374 <property stdset="1">
348 <name>name</name> 375 <name>name</name>
349 <cstring>groupNetworks</cstring> 376 <cstring>TextLabel1</cstring>
350 </property>
351 <property stdset="1">
352 <name>enabled</name>
353 <bool>false</bool>
354 </property> 377 </property>
355 <property stdset="1"> 378 <property stdset="1">
356 <name>text</name> 379 <name>text</name>
357 <string>Group Detected Networks</string> 380 <string>sound on new net</string>
358 </property> 381 </property>
359 </widget> 382 </widget>
360 <widget> 383 <widget row="1" column="0" >
361 <class>QCheckBox</class> 384 <class>QComboBox</class>
385 <item>
386 <property>
387 <name>text</name>
388 <string>Ignore</string>
389 </property>
390 </item>
391 <item>
392 <property>
393 <name>text</name>
394 <string>Touch</string>
395 </property>
396 </item>
397 <item>
398 <property>
399 <name>text</name>
400 <string>Key</string>
401 </property>
402 </item>
403 <item>
404 <property>
405 <name>text</name>
406 <string>Alarm</string>
407 </property>
408 </item>
362 <property stdset="1"> 409 <property stdset="1">
363 <name>name</name> 410 <name>name</name>
364 <cstring>enableActivity</cstring> 411 <cstring>beaconSound</cstring>
365 </property>
366 <property stdset="1">
367 <name>enabled</name>
368 <bool>false</bool>
369 </property>
370 <property stdset="1">
371 <name>text</name>
372 <string>Enable Activity Display</string>
373 </property> 412 </property>
374 </widget> 413 </widget>
375 <widget> 414 <widget row="0" column="0" >
376 <class>QCheckBox</class> 415 <class>QComboBox</class>
416 <item>
417 <property>
418 <name>text</name>
419 <string>Ignore</string>
420 </property>
421 </item>
422 <item>
423 <property>
424 <name>text</name>
425 <string>Touch</string>
426 </property>
427 </item>
428 <item>
429 <property>
430 <name>text</name>
431 <string>Key</string>
432 </property>
433 </item>
434 <item>
435 <property>
436 <name>text</name>
437 <string>Alarm</string>
438 </property>
439 </item>
377 <property stdset="1"> 440 <property stdset="1">
378 <name>name</name> 441 <name>name</name>
379 <cstring>beepOnFound</cstring> 442 <cstring>netSound</cstring>
380 </property> 443 </property>
444 </widget>
445 <widget row="1" column="1" >
446 <class>QLabel</class>
381 <property stdset="1"> 447 <property stdset="1">
382 <name>enabled</name> 448 <name>name</name>
383 <bool>false</bool> 449 <cstring>TextLabel1_3</cstring>
384 </property> 450 </property>
385 <property stdset="1"> 451 <property stdset="1">
386 <name>text</name> 452 <name>text</name>
387 <string>Beep on new network</string> 453 <string>sound on beacon</string>
388 </property> 454 </property>
389 </widget> 455 </widget>
390 </vbox> 456 </grid>
391 </widget> 457 </widget>
392 <spacer>
393 <property>
394 <name>name</name>
395 <cstring>Spacer2</cstring>
396 </property>
397 <property stdset="1">
398 <name>orientation</name>
399 <enum>Vertical</enum>
400 </property>
401 <property stdset="1">
402 <name>sizeType</name>
403 <enum>Expanding</enum>
404 </property>
405 <property>
406 <name>sizeHint</name>
407 <size>
408 <width>20</width>
409 <height>20</height>
410 </size>
411 </property>
412 </spacer>
413 </vbox> 458 </vbox>
414</widget> 459</widget>
415</UI> 460</UI>
diff --git a/noncore/net/wellenreiter/gui/configwindow.cpp b/noncore/net/wellenreiter/gui/configwindow.cpp
index 6dd862f..e287b47 100644
--- a/noncore/net/wellenreiter/gui/configwindow.cpp
+++ b/noncore/net/wellenreiter/gui/configwindow.cpp
@@ -1,72 +1,100 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved. 2** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved.
3** 3**
4** This file is part of Opie Environment. 4** This file is part of Opie Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14**********************************************************************/ 14**********************************************************************/
15 15
16/* LOCAL */ 16/* LOCAL */
17#include "configwindow.h" 17#include "configwindow.h"
18 18
19/* QT */ 19/* QT */
20#include <qmap.h>
21#include <qcombobox.h> 20#include <qcombobox.h>
21#include <qfile.h>
22#include <qlayout.h>
23#include <qmap.h>
22#include <qpushbutton.h> 24#include <qpushbutton.h>
23#include <qspinbox.h> 25#include <qspinbox.h>
24#include <qlayout.h> 26#include <qtextstream.h>
25 27
26/* OPIE */ 28/* OPIE */
27#include <opie2/onetwork.h> 29#include <opie2/onetwork.h>
28 30
31WellenreiterConfigWindow* WellenreiterConfigWindow::_instance = 0;
32
29WellenreiterConfigWindow::WellenreiterConfigWindow( QWidget * parent, const char * name, WFlags f ) 33WellenreiterConfigWindow::WellenreiterConfigWindow( QWidget * parent, const char * name, WFlags f )
30 :WellenreiterConfigBase( parent, name, true, f ) 34 :WellenreiterConfigBase( parent, name, true, f )
31{ 35{
32 _devicetype[ "cisco" ] = 1; 36 _devicetype[ "cisco" ] = 1;
33 _devicetype[ "wlan-ng" ] = 2; 37 _devicetype[ "wlan-ng" ] = 2;
34 _devicetype[ "hostap" ] = 3; 38 _devicetype[ "hostap" ] = 3;
35 _devicetype[ "orinoco" ] = 4; 39 _devicetype[ "orinoco" ] = 4;
36 _devicetype[ "<manual>" ] = 5; 40 _devicetype[ "<manual>" ] = 5;
37 41
38 // gather possible interface names from ONetwork 42 // gather possible interface names from ONetwork
39 ONetwork* net = ONetwork::instance(); 43 ONetwork* net = ONetwork::instance();
40 ONetwork::InterfaceIterator it = net->iterator(); 44 ONetwork::InterfaceIterator it = net->iterator();
41 while ( it.current() ) 45 while ( it.current() )
42 { 46 {
43 if ( it.current()->isWireless() ) 47 if ( it.current()->isWireless() )
44 interfaceName->insertItem( it.current()->name() ); 48 interfaceName->insertItem( it.current()->name() );
45 ++it; 49 ++it;
46 } 50 }
47 51
52 // try to guess device type
53 QFile m( "/proc/modules" );
54 if ( m.open( IO_ReadOnly ) )
55 {
56 int devicetype(0);
57 QString line;
58 QTextStream modules( &m );
59 while( !modules.atEnd() && !devicetype )
60 {
61 modules >> line;
62 if ( line.contains( "cisco" ) ) devicetype = 1;
63 else if ( line.contains( "wlan" ) ) devicetype = 2;
64 else if ( line.contains( "hostap" ) ) devicetype = 3;
65 else if ( line.contains( "orinoco" ) ) devicetype = 4;
66 }
67 if ( devicetype )
68 {
69 deviceType->setCurrentItem( devicetype );
70 qDebug( "Wellenreiter: guessed device type to be %d", devicetype );
71 }
72 }
73
48 #ifdef Q_WS_X11 // We're on X11: adding an Ok-Button for the Dialog here 74 #ifdef Q_WS_X11 // We're on X11: adding an Ok-Button for the Dialog here
49 QPushButton* okButton = new QPushButton( "ok", this ); 75 QPushButton* okButton = new QPushButton( "ok", this );
50 okButton->show(); 76 okButton->show();
51 Layout5_2->addWidget( okButton ); //FIXME: rename this in configbase.ui 77 Layout5_2->addWidget( okButton ); //FIXME: rename this in configbase.ui
52 connect( okButton, SIGNAL( clicked() ), this, SLOT( accept() ) ); 78 connect( okButton, SIGNAL( clicked() ), this, SLOT( accept() ) );
53 #endif 79 #endif
80
81 WellenreiterConfigWindow::_instance = this;
54}; 82};
55 83
56int WellenreiterConfigWindow::daemonDeviceType() 84int WellenreiterConfigWindow::daemonDeviceType()
57{ 85{
58 QString name = deviceType->currentText(); 86 QString name = deviceType->currentText();
59 if ( _devicetype.contains( name ) ) 87 if ( _devicetype.contains( name ) )
60 { 88 {
61 return _devicetype[name]; 89 return _devicetype[name];
62 } 90 }
63 else 91 else
64 { 92 {
65 return 0; 93 return 0;
66 } 94 }
67}; 95};
68 96
69int WellenreiterConfigWindow::daemonHopInterval() 97int WellenreiterConfigWindow::daemonHopInterval()
70{ 98{
71 return hopInterval->cleanText().toInt(); 99 return hopInterval->cleanText().toInt();
72} 100}
diff --git a/noncore/net/wellenreiter/gui/configwindow.h b/noncore/net/wellenreiter/gui/configwindow.h
index c627901..5fd0327 100644
--- a/noncore/net/wellenreiter/gui/configwindow.h
+++ b/noncore/net/wellenreiter/gui/configwindow.h
@@ -1,36 +1,44 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved. 2** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved.
3** 3**
4** This file is part of Opie Environment. 4** This file is part of Opie Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14**********************************************************************/ 14**********************************************************************/
15 15
16#ifndef WELLENREITERCONFIGWINDOW_H 16#ifndef WELLENREITERCONFIGWINDOW_H
17#define WELLENREITERCONFIGWINDOW_H 17#define WELLENREITERCONFIGWINDOW_H
18 18
19#include "configbase.h" 19#include "configbase.h"
20#include <qmap.h> 20#include <qmap.h>
21#include <qcombobox.h>
22#include <qstring.h>
23
24class WellenreiterConfigWindow;
21 25
22class WellenreiterConfigWindow : public WellenreiterConfigBase 26class WellenreiterConfigWindow : public WellenreiterConfigBase
23{ 27{
24 28
25 public: 29 public:
26 WellenreiterConfigWindow( QWidget * parent = 0, const char * name = "WellenreiterConfigWindow", WFlags f = 0 ); 30 WellenreiterConfigWindow( QWidget * parent = 0, const char * name = "WellenreiterConfigWindow", WFlags f = 0 );
27 int daemonDeviceType(); 31 int daemonDeviceType();
28 int daemonHopInterval(); 32 int daemonHopInterval();
33 const QString soundOnNetwork() const { return netSound->currentText(); };
34 const QString soundOnBeacon() const { return beaconSound->currentText(); };
35 static WellenreiterConfigWindow* instance() { return _instance; };
29 36
30 protected: 37 protected:
31 QMap<QString, int> _devicetype; 38 QMap<QString, int> _devicetype;
39 static WellenreiterConfigWindow* _instance;
32 40
33}; 41};
34 42
35#endif 43#endif
36 44
diff --git a/noncore/net/wellenreiter/gui/scanlist.cpp b/noncore/net/wellenreiter/gui/scanlist.cpp
index be1245e..a006a3c 100644
--- a/noncore/net/wellenreiter/gui/scanlist.cpp
+++ b/noncore/net/wellenreiter/gui/scanlist.cpp
@@ -1,288 +1,310 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved. 2** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved.
3** 3**
4** This file is part of Opie Environment. 4** This file is part of Opie Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14**********************************************************************/ 14**********************************************************************/
15 15
16#include "scanlist.h" 16#include "scanlist.h"
17#include "configwindow.h"
17 18
18#include <assert.h> 19#include <assert.h>
19#include "manufacturers.h" 20#include "manufacturers.h"
20#include <qdatetime.h> 21#include <qdatetime.h>
21#include <qtextstream.h> 22#include <qtextstream.h>
22 23
24#ifdef QWS
25#include <opie/odevice.h>
26using namespace Opie;
27#endif
28
23MScanListView::MScanListView( QWidget* parent, const char* name ) 29MScanListView::MScanListView( QWidget* parent, const char* name )
24 :OListView( parent, name ), _manufacturerdb( 0 ) 30 :OListView( parent, name ), _manufacturerdb( 0 )
25{ 31{
26 32
27 setFrameShape( QListView::StyledPanel ); 33 setFrameShape( QListView::StyledPanel );
28 setFrameShadow( QListView::Sunken ); 34 setFrameShadow( QListView::Sunken );
29 35
30 addColumn( tr( "Net/Station" ) ); 36 addColumn( tr( "Net/Station" ) );
31 setColumnAlignment( 0, AlignLeft || AlignVCenter ); 37 setColumnAlignment( 0, AlignLeft || AlignVCenter );
32 addColumn( tr( "B" ) ); 38 addColumn( tr( "B" ) );
33 setColumnAlignment( 1, AlignCenter ); 39 setColumnAlignment( 1, AlignCenter );
34 addColumn( tr( "AP" ) ); 40 addColumn( tr( "AP" ) );
35 setColumnAlignment( 2, AlignCenter ); 41 setColumnAlignment( 2, AlignCenter );
36 addColumn( tr( "Chn" ) ); 42 addColumn( tr( "Chn" ) );
37 setColumnAlignment( 3, AlignCenter ); 43 setColumnAlignment( 3, AlignCenter );
38 addColumn( tr( "W" ) ); 44 addColumn( tr( "W" ) );
39 setColumnAlignment( 4, AlignCenter ); 45 setColumnAlignment( 4, AlignCenter );
40 addColumn( tr( "T" ) ); 46 addColumn( tr( "T" ) );
41 setColumnAlignment( 5, AlignCenter ); 47 setColumnAlignment( 5, AlignCenter );
42 addColumn( tr( "Manufacturer" ) ); 48 addColumn( tr( "Manufacturer" ) );
43 setColumnAlignment( 6, AlignCenter ); 49 setColumnAlignment( 6, AlignCenter );
44 addColumn( tr( "First Seen" ) ); 50 addColumn( tr( "First Seen" ) );
45 setColumnAlignment( 7, AlignCenter ); 51 setColumnAlignment( 7, AlignCenter );
46 addColumn( tr( "Last Seen" ) ); 52 addColumn( tr( "Last Seen" ) );
47 setColumnAlignment( 8, AlignCenter ); 53 setColumnAlignment( 8, AlignCenter );
48 setRootIsDecorated( true ); 54 setRootIsDecorated( true );
49 setAllColumnsShowFocus( true ); 55 setAllColumnsShowFocus( true );
50}; 56};
51 57
52MScanListView::~MScanListView() 58MScanListView::~MScanListView()
53{ 59{
54}; 60};
55 61
56OListViewItem* MScanListView::childFactory() 62OListViewItem* MScanListView::childFactory()
57{ 63{
58 return new MScanListItem( this ); 64 return new MScanListItem( this );
59} 65}
60 66
61void MScanListView::serializeTo( QDataStream& s) const 67void MScanListView::serializeTo( QDataStream& s) const
62{ 68{
63 qDebug( "serializing MScanListView" ); 69 qDebug( "serializing MScanListView" );
64 OListView::serializeTo( s ); 70 OListView::serializeTo( s );
65} 71}
66 72
67void MScanListView::serializeFrom( QDataStream& s) 73void MScanListView::serializeFrom( QDataStream& s)
68{ 74{
69 qDebug( "serializing MScanListView" ); 75 qDebug( "serializing MScanListView" );
70 OListView::serializeFrom( s ); 76 OListView::serializeFrom( s );
71} 77}
72 78
73void MScanListView::setManufacturerDB( ManufacturerDB* manufacturerdb ) 79void MScanListView::setManufacturerDB( ManufacturerDB* manufacturerdb )
74{ 80{
75 _manufacturerdb = manufacturerdb; 81 _manufacturerdb = manufacturerdb;
76} 82}
77 83
78void MScanListView::addNewItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal ) 84void MScanListView::addNewItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal )
79{ 85{
80 // FIXME: scanlistitem needs a proper encapsulation and not such a damn dealing with text(...) 86 // FIXME: scanlistitem needs a proper encapsulation and not such a damn dealing with text(...)
81 87
82 qDebug( "MScanList::addNewItem( %s / %s / %s [%d]", 88 qDebug( "MScanList::addNewItem( %s / %s / %s [%d]",
83 (const char*) type, 89 (const char*) type,
84 (const char*) essid, 90 (const char*) essid,
85 (const char*) macaddr, 91 (const char*) macaddr,
86 channel ); 92 channel );
87 93
88 // search, if we already have seen this net 94 // search, if we already have seen this net
89 95
90 QString s; 96 QString s;
91 MScanListItem* network; 97 MScanListItem* network;
92 MScanListItem* item = static_cast<MScanListItem*> ( firstChild() ); 98 MScanListItem* item = static_cast<MScanListItem*> ( firstChild() );
93 99
94 while ( item && ( item->text( 0 ) != essid ) ) 100 while ( item && ( item->text( 0 ) != essid ) )
95 { 101 {
96 qDebug( "itemtext: %s", (const char*) item->text( 0 ) ); 102 qDebug( "itemtext: %s", (const char*) item->text( 0 ) );
97 item = static_cast<MScanListItem*> ( item->itemBelow() ); 103 item = static_cast<MScanListItem*> ( item->itemBelow() );
98 } 104 }
99 if ( item ) 105 if ( item )
100 { 106 {
101 // animate the item 107 // animate the item
102 108
103 /* 109 /*
104 110
105 const QPixmap* pixmap = item->pixmap( 0 ); 111 const QPixmap* pixmap = item->pixmap( 0 );
106 const QPixmap* nextpixmap = ani2; 112 const QPixmap* nextpixmap = ani2;
107 if ( pixmap == ani1 ) 113 if ( pixmap == ani1 )
108 nextpixmap = ani2; 114 nextpixmap = ani2;
109 else if ( pixmap == ani2 ) 115 else if ( pixmap == ani2 )
110 nextpixmap = ani3; 116 nextpixmap = ani3;
111 else if ( pixmap == ani3 ) 117 else if ( pixmap == ani3 )
112 nextpixmap = ani4; 118 nextpixmap = ani4;
113 else if ( pixmap == ani4 ) 119 else if ( pixmap == ani4 )
114 nextpixmap = ani1; 120 nextpixmap = ani1;
115 item->setPixmap( 0, *nextpixmap ); */ 121 item->setPixmap( 0, *nextpixmap ); */
116 122
117 //qDebug( "current pixmap %d, next %d", pixmap, nextpixmap ); 123 //qDebug( "current pixmap %d, next %d", pixmap, nextpixmap );
118 124
119 // we have already seen this net, check all childs if MAC exists 125 // we have already seen this net, check all childs if MAC exists
120 126
121 network = item; 127 network = item;
122 128
123 item = static_cast<MScanListItem*> ( item->firstChild() ); 129 item = static_cast<MScanListItem*> ( item->firstChild() );
124 assert( item ); // this shouldn't fail 130 assert( item ); // this shouldn't fail
125 131
126 while ( item && ( item->text( 2 ) != macaddr ) ) 132 while ( item && ( item->text( 2 ) != macaddr ) )
127 { 133 {
128 qDebug( "subitemtext: %s", (const char*) item->text( 2 ) ); 134 qDebug( "subitemtext: %s", (const char*) item->text( 2 ) );
129 item = static_cast<MScanListItem*> ( item->itemBelow() ); 135 item = static_cast<MScanListItem*> ( item->itemBelow() );
130 } 136 }
131 137
132 if ( item ) 138 if ( item )
133 { 139 {
134 // we have already seen this item, it's a dupe 140 // we have already seen this item, it's a dupe
135 #ifdef DEBUG 141 #ifdef DEBUG
136 qDebug( "%s is a dupe - ignoring...", (const char*) macaddr ); 142 qDebug( "%s is a dupe - ignoring...", (const char*) macaddr );
137 #endif 143 #endif
138 item->receivedBeacon(); 144 item->receivedBeacon();
139 return; 145 return;
140 } 146 }
141 } 147 }
142 else 148 else
143 { 149 {
144 s.sprintf( "(i) new network: '%s'", (const char*) essid ); 150 s.sprintf( "(i) new network: '%s'", (const char*) essid );
145
146 network = new MScanListItem( this, "networks", essid, QString::null, 0, 0, 0 ); 151 network = new MScanListItem( this, "networks", essid, QString::null, 0, 0, 0 );
147 } 152 }
148 153
149 154
150 // insert new station as child from network 155 // insert new station as child from network
151 156
152 // no essid to reduce clutter, maybe later we have a nick or stationname to display!? 157 // no essid to reduce clutter, maybe later we have a nick or stationname to display!?
153 158
154 qDebug( "inserting new station %s", (const char*) macaddr ); 159 qDebug( "inserting new station %s", (const char*) macaddr );
155 160
156 MScanListItem* station = new MScanListItem( network, type, "", macaddr, wep, channel, signal ); 161 MScanListItem* station = new MScanListItem( network, type, "", macaddr, wep, channel, signal );
157 if ( _manufacturerdb ) 162 if ( _manufacturerdb )
158 station->setManufacturer( _manufacturerdb->lookup( macaddr ) ); 163 station->setManufacturer( _manufacturerdb->lookup( macaddr ) );
159 164
160 if ( type == "managed" ) 165 if ( type == "managed" )
161 { 166 {
162 s.sprintf( "(i) new AP in '%s' [%d]", (const char*) essid, channel ); 167 s.sprintf( "(i) new AP in '%s' [%d]", (const char*) essid, channel );
163 } 168 }
164 else 169 else
165 { 170 {
166 s.sprintf( "(i) new adhoc station in '%s' [%d]", (const char*) essid, channel ); 171 s.sprintf( "(i) new adhoc station in '%s' [%d]", (const char*) essid, channel );
167 } 172 }
168 173
169} 174}
170 175
171#ifdef QWS 176#ifdef QWS
172#include <qpe/resource.h> 177#include <qpe/resource.h>
173#else 178#else
174#include "resource.h" 179#include "resource.h"
175#endif 180#endif
176 181
177const int col_type = 0; 182const int col_type = 0;
178const int col_essid = 0; 183const int col_essid = 0;
179const int col_sig = 1; 184const int col_sig = 1;
180const int col_ap = 2; 185const int col_ap = 2;
181const int col_channel = 3; 186const int col_channel = 3;
182const int col_wep = 4; 187const int col_wep = 4;
183const int col_traffic = 5; 188const int col_traffic = 5;
184const int col_manuf = 6; 189const int col_manuf = 6;
185const int col_firstseen = 7; 190const int col_firstseen = 7;
186const int col_lastseen = 8; 191const int col_lastseen = 8;
187 192
188MScanListItem::MScanListItem( QListView* parent, QString type, QString essid, QString macaddr, 193MScanListItem::MScanListItem( QListView* parent, QString type, QString essid, QString macaddr,
189 bool wep, int channel, int signal ) 194 bool wep, int channel, int signal )
190 :OListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null ), 195 :OListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null ),
191 _type( type ), _essid( essid ), _macaddr( macaddr ), _wep( wep ), 196 _type( type ), _essid( essid ), _macaddr( macaddr ), _wep( wep ),
192 _channel( channel ), _signal( signal ), _beacons( 0 ) 197 _channel( channel ), _signal( signal ), _beacons( 0 )
193{ 198{
194 qDebug( "creating scanlist item" ); 199 qDebug( "creating scanlist item" );
200 if ( WellenreiterConfigWindow::instance() && type == "networks" )
201 playSound( WellenreiterConfigWindow::instance()->soundOnNetwork() );
195 decorateItem( type, essid, macaddr, wep, channel, signal ); 202 decorateItem( type, essid, macaddr, wep, channel, signal );
196} 203}
197 204
198MScanListItem::MScanListItem( QListViewItem* parent, QString type, QString essid, QString macaddr, 205MScanListItem::MScanListItem( QListViewItem* parent, QString type, QString essid, QString macaddr,
199 bool wep, int channel, int signal ) 206 bool wep, int channel, int signal )
200 :OListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null ) 207 :OListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null )
201{ 208{
202 qDebug( "creating scanlist item" ); 209 qDebug( "creating scanlist item" );
203 decorateItem( type, essid, macaddr, wep, channel, signal ); 210 decorateItem( type, essid, macaddr, wep, channel, signal );
204} 211}
205 212
206OListViewItem* MScanListItem::childFactory() 213OListViewItem* MScanListItem::childFactory()
207{ 214{
208 return new MScanListItem( this ); 215 return new MScanListItem( this );
209} 216}
210 217
211void MScanListItem::serializeTo( QDataStream& s ) const 218void MScanListItem::serializeTo( QDataStream& s ) const
212{ 219{
213 qDebug( "serializing MScanListItem" ); 220 qDebug( "serializing MScanListItem" );
214 OListViewItem::serializeTo( s ); 221 OListViewItem::serializeTo( s );
215 222
216 s << _type; 223 s << _type;
217 s << (Q_UINT8) _wep; 224 s << (Q_UINT8) _wep;
218} 225}
219 226
220void MScanListItem::serializeFrom( QDataStream& s ) 227void MScanListItem::serializeFrom( QDataStream& s )
221{ 228{
222 qDebug( "serializing MScanListItem" ); 229 qDebug( "serializing MScanListItem" );
223 OListViewItem::serializeFrom( s ); 230 OListViewItem::serializeFrom( s );
224 231
225 s >> _type; 232 s >> _type;
226 s >> (Q_UINT8) _wep; 233 s >> (Q_UINT8) _wep;
227 234
228 QString name; 235 QString name;
229 name.sprintf( "wellenreiter/%s", (const char*) _type ); 236 name.sprintf( "wellenreiter/%s", (const char*) _type );
230 setPixmap( col_type, Resource::loadPixmap( name ) ); 237 setPixmap( col_type, Resource::loadPixmap( name ) );
231 if ( _wep ) 238 if ( _wep )
232 setPixmap( col_wep, Resource::loadPixmap( "wellenreiter/cracked" ) ); //FIXME: rename the pixmap! 239 setPixmap( col_wep, Resource::loadPixmap( "wellenreiter/cracked" ) ); //FIXME: rename the pixmap!
233 listView()->triggerUpdate(); 240 listView()->triggerUpdate();
234} 241}
235 242
236void MScanListItem::decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal ) 243void MScanListItem::decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal )
237{ 244{
238 qDebug( "decorating scanlist item %s / %s / %s [%d]", 245 qDebug( "decorating scanlist item %s / %s / %s [%d]",
239 (const char*) type, 246 (const char*) type,
240 (const char*) essid, 247 (const char*) essid,
241 (const char*) macaddr, 248 (const char*) macaddr,
242 channel ); 249 channel );
243 250
244 // set icon for managed or adhoc mode 251 // set icon for managed or adhoc mode
245 QString name; 252 QString name;
246 name.sprintf( "wellenreiter/%s", (const char*) type ); 253 name.sprintf( "wellenreiter/%s", (const char*) type );
247 setPixmap( col_type, Resource::loadPixmap( name ) ); 254 setPixmap( col_type, Resource::loadPixmap( name ) );
248 255
249 // set icon for wep (wireless encryption protocol) 256 // set icon for wep (wireless encryption protocol)
250 if ( wep ) 257 if ( wep )
251 setPixmap( col_wep, Resource::loadPixmap( "wellenreiter/cracked" ) ); //FIXME: rename the pixmap! 258 setPixmap( col_wep, Resource::loadPixmap( "wellenreiter/cracked" ) ); //FIXME: rename the pixmap!
252 259
253 // set channel and signal text 260 // set channel and signal text
254 261
255 if ( signal != -1 ) 262 if ( signal != -1 )
256 setText( col_sig, QString::number( signal ) ); 263 setText( col_sig, QString::number( signal ) );
257 if ( channel != -1 ) 264 if ( channel != -1 )
258 setText( col_channel, QString::number( channel ) ); 265 setText( col_channel, QString::number( channel ) );
259 266
260 setText( col_firstseen, QTime::currentTime().toString() ); 267 setText( col_firstseen, QTime::currentTime().toString() );
261 //setText( col_lastseen, QTime::currentTime().toString() ); 268 //setText( col_lastseen, QTime::currentTime().toString() );
262 269
263 listView()->triggerUpdate(); 270 listView()->triggerUpdate();
264 271
265 this->type = type; 272 this->type = type;
266 _type = type; 273 _type = type;
267 _essid = essid; 274 _essid = essid;
268 _macaddr = macaddr; 275 _macaddr = macaddr;
269 _channel = channel; 276 _channel = channel;
270 _beacons = 0; 277 _beacons = 0;
271 _signal = 0; 278 _signal = 0;
272} 279}
273 280
281
274void MScanListItem::setManufacturer( const QString& manufacturer ) 282void MScanListItem::setManufacturer( const QString& manufacturer )
275{ 283{
276 setText( col_manuf, manufacturer ); 284 setText( col_manuf, manufacturer );
277} 285}
278 286
287
288void MScanListItem::playSound( const QString& sound ) const
289{
290 #ifdef QWS
291 if ( sound == "Ignore" ) return;
292 else if ( sound == "Touch" ) ODevice::inst()->touchSound();
293 else if ( sound == "Key" ) ODevice::inst()->keySound();
294 else if ( sound == "Alarm" ) ODevice::inst()->alarmSound();
295 #endif
296}
297
298
279void MScanListItem::receivedBeacon() 299void MScanListItem::receivedBeacon()
280{ 300{
281 _beacons++; 301 _beacons++;
282 #ifdef DEBUG 302 #ifdef DEBUG
283 qDebug( "MScanListItem %s: received beacon #%d", (const char*) _macaddr, _beacons ); 303 qDebug( "MScanListItem %s: received beacon #%d", (const char*) _macaddr, _beacons );
284 #endif 304 #endif
285 setText( col_sig, QString::number( _beacons ) ); 305 setText( col_sig, QString::number( _beacons ) );
286 setText( col_lastseen, QTime::currentTime().toString() ); 306 setText( col_lastseen, QTime::currentTime().toString() );
307 if ( WellenreiterConfigWindow::instance() )
308 playSound( WellenreiterConfigWindow::instance()->soundOnBeacon() );
287} 309}
288 310
diff --git a/noncore/net/wellenreiter/gui/scanlist.h b/noncore/net/wellenreiter/gui/scanlist.h
index da9369f..01db172 100644
--- a/noncore/net/wellenreiter/gui/scanlist.h
+++ b/noncore/net/wellenreiter/gui/scanlist.h
@@ -1,121 +1,124 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved. 2** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved.
3** 3**
4** This file is part of Opie Environment. 4** This file is part of Opie Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14**********************************************************************/ 14**********************************************************************/
15 15
16#ifndef SCANLIST_H 16#ifndef SCANLIST_H
17#define SCANLIST_H 17#define SCANLIST_H
18 18
19#include <opie2/olistview.h> 19#include <opie2/olistview.h>
20 20
21#include <qtextstream.h> 21#include <qtextstream.h>
22 22
23class QString; 23class QString;
24class ManufacturerDB; 24class ManufacturerDB;
25 25
26class MScanListView: public OListView 26class MScanListView: public OListView
27{ 27{
28 Q_OBJECT 28 Q_OBJECT
29 29
30 public: 30 public:
31 MScanListView( QWidget* parent = 0, const char* name = 0 ); 31 MScanListView( QWidget* parent = 0, const char* name = 0 );
32 virtual ~MScanListView(); 32 virtual ~MScanListView();
33 33
34 void setManufacturerDB( ManufacturerDB* manufacturerdb ); 34 void setManufacturerDB( ManufacturerDB* manufacturerdb );
35 35
36 virtual OListViewItem* childFactory(); 36 virtual OListViewItem* childFactory();
37 virtual void serializeTo( QDataStream& s ) const; 37 virtual void serializeTo( QDataStream& s ) const;
38 virtual void serializeFrom( QDataStream& s ); 38 virtual void serializeFrom( QDataStream& s );
39 39
40 public slots: 40 public slots:
41 void addNewItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal ); 41 void addNewItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal );
42 42
43 private: 43 private:
44 ManufacturerDB* _manufacturerdb; 44 ManufacturerDB* _manufacturerdb;
45 45
46}; 46};
47 47
48//****************************** MScanListItem **************************************************************** 48//****************************** MScanListItem ****************************************************************
49 49
50class MScanListItem: public OListViewItem 50class MScanListItem: public OListViewItem
51{ 51{
52 public: 52 public:
53 MScanListItem::MScanListItem( QListView* parent, 53 MScanListItem::MScanListItem( QListView* parent,
54 QString type = "unknown", 54 QString type = "unknown",
55 QString essid = "unknown", 55 QString essid = "unknown",
56 QString macaddr = "unknown", 56 QString macaddr = "unknown",
57 bool wep = false, 57 bool wep = false,
58 int channel = 0, 58 int channel = 0,
59 int signal = 0 ); 59 int signal = 0 );
60 60
61 MScanListItem::MScanListItem( QListViewItem* parent, 61 MScanListItem::MScanListItem( QListViewItem* parent,
62 QString type = "unknown", 62 QString type = "unknown",
63 QString essid = "unknown", 63 QString essid = "unknown",
64 QString macaddr = "unknown", 64 QString macaddr = "unknown",
65 bool wep = false, 65 bool wep = false,
66 int channel = 0, 66 int channel = 0,
67 int signal = 0 ); 67 int signal = 0 );
68 68
69 69
70 protected: 70 protected:
71 virtual void decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal ); 71 virtual void decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal );
72 72
73 public: 73 public:
74 QString type; 74 QString type;
75 75
76 public: 76 public:
77 //const QString& type() { return _type; }; 77 //const QString& type() { return _type; };
78 const QString& essid() { return _essid; }; 78 const QString& essid() { return _essid; };
79 const QString& macaddr() { return _macaddr; }; 79 const QString& macaddr() { return _macaddr; };
80 bool wep() { return _wep; }; 80 bool wep() { return _wep; };
81 int channel() { return _channel; }; 81 int channel() { return _channel; };
82 int signal() { return _signal; }; 82 int signal() { return _signal; };
83 int beacons() { return _beacons; }; 83 int beacons() { return _beacons; };
84 84
85 void setSignal( int signal ) { /* TODO */ }; 85 void setSignal( int signal ) { /* TODO */ };
86 void receivedBeacon(); 86 void receivedBeacon();
87 87
88 void setManufacturer( const QString& manufacturer ); 88 void setManufacturer( const QString& manufacturer );
89 89
90 virtual OListViewItem* childFactory(); 90 virtual OListViewItem* childFactory();
91 virtual void serializeTo( QDataStream& s ) const; 91 virtual void serializeTo( QDataStream& s ) const;
92 virtual void serializeFrom( QDataStream& s ); 92 virtual void serializeFrom( QDataStream& s );
93 93
94 protected:
95 void playSound( const QString& ) const;
96
94 private: 97 private:
95 QString _type; 98 QString _type;
96 QString _essid; 99 QString _essid;
97 QString _macaddr; 100 QString _macaddr;
98 bool _wep; 101 bool _wep;
99 int _channel; 102 int _channel;
100 int _signal; 103 int _signal;
101 int _beacons; 104 int _beacons;
102 105
103}; 106};
104 107
105//****************************** MScanListViewFactory **************************************************************** 108//****************************** MScanListViewFactory ****************************************************************
106 109
107/* 110/*
108 111
109class MScanListViewFactory : public OListViewFactory 112class MScanListViewFactory : public OListViewFactory
110{ 113{
111public: 114public:
112 virtual QListView* listViewFactory(); 115 virtual QListView* listViewFactory();
113 virtual QListViewItem* listViewItemFactory( QListView* lv ); 116 virtual QListViewItem* listViewItemFactory( QListView* lv );
114 virtual QListViewItem* listViewItemFactory( QListViewItem* lvi ); 117 virtual QListViewItem* listViewItemFactory( QListViewItem* lvi );
115 virtual void setColumnText( int depth, QListViewItem* lvi, int column, const QString& text ); 118 virtual void setColumnText( int depth, QListViewItem* lvi, int column, const QString& text );
116 virtual void setCustomData( int depth, QListViewItem* lvi, const QString& text ); 119 virtual void setCustomData( int depth, QListViewItem* lvi, const QString& text );
117} 120}
118*/ 121*/
119 122
120#endif 123#endif
121 124
diff --git a/noncore/net/wellenreiter/gui/wellenreiter.cpp b/noncore/net/wellenreiter/gui/wellenreiter.cpp
index 41ffdcc..d1dd73a 100644
--- a/noncore/net/wellenreiter/gui/wellenreiter.cpp
+++ b/noncore/net/wellenreiter/gui/wellenreiter.cpp
@@ -1,240 +1,228 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved. 2** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved.
3** 3**
4** This file is part of Opie Environment. 4** This file is part of Opie Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14***********************************************************************/ 14***********************************************************************/
15 15
16// Opie 16// Opie
17 17
18#ifdef QWS 18#ifdef QWS
19#include <opie/odevice.h> 19#include <opie/odevice.h>
20using namespace Opie; 20using namespace Opie;
21#endif 21#endif
22 22
23#ifdef QWS 23#ifdef QWS
24#include <opie2/oapplication.h> 24#include <opie2/oapplication.h>
25#else 25#else
26#include <qapplication.h> 26#include <qapplication.h>
27#endif 27#endif
28#include <opie2/onetwork.h> 28#include <opie2/onetwork.h>
29#include <opie2/opcap.h> 29#include <opie2/opcap.h>
30 30
31// Qt 31// Qt
32 32
33#include <qpushbutton.h> 33#include <qpushbutton.h>
34#include <qmessagebox.h> 34#include <qmessagebox.h>
35#include <qcombobox.h> 35#include <qcombobox.h>
36#include <qspinbox.h> 36#include <qspinbox.h>
37#include <qsocketnotifier.h> 37#include <qsocketnotifier.h>
38 38
39// Standard 39// Standard
40 40
41#include <assert.h> 41#include <assert.h>
42#include <errno.h> 42#include <errno.h>
43#include <unistd.h> 43#include <unistd.h>
44#include <string.h> 44#include <string.h>
45#include <sys/types.h> 45#include <sys/types.h>
46#include <stdlib.h> 46#include <stdlib.h>
47 47
48// Local 48// Local
49 49
50#include "wellenreiter.h" 50#include "wellenreiter.h"
51#include "scanlist.h" 51#include "scanlist.h"
52#include "logwindow.h" 52#include "logwindow.h"
53#include "hexwindow.h" 53#include "hexwindow.h"
54#include "configwindow.h" 54#include "configwindow.h"
55 55
56#include "manufacturers.h" 56#include "manufacturers.h"
57 57
58Wellenreiter::Wellenreiter( QWidget* parent ) 58Wellenreiter::Wellenreiter( QWidget* parent )
59 : WellenreiterBase( parent, 0, 0 ), 59 : WellenreiterBase( parent, 0, 0 ),
60 sniffing( false ), iface( 0 ), manufacturerdb( 0 ), configwindow( 0 ) 60 sniffing( false ), iface( 0 ), manufacturerdb( 0 ), configwindow( 0 )
61{ 61{
62 62
63 // 63 //
64 // construct manufacturer database 64 // construct manufacturer database
65 // 65 //
66 66
67 QString manufile; 67 QString manufile;
68 #ifdef QWS 68 #ifdef QWS
69 manufile.sprintf( "%s/share/wellenreiter/manufacturers.dat", (const char*) QPEApplication::qpeDir() ); 69 manufile.sprintf( "%s/share/wellenreiter/manufacturers.dat", (const char*) QPEApplication::qpeDir() );
70 #else 70 #else
71 manufile.sprintf( "/usr/local/share/wellenreiter/manufacturers.dat" ); 71 manufile.sprintf( "/usr/local/share/wellenreiter/manufacturers.dat" );
72 #endif 72 #endif
73 manufacturerdb = new ManufacturerDB( manufile ); 73 manufacturerdb = new ManufacturerDB( manufile );
74 74
75 logwindow->log( "(i) Wellenreiter has been started." ); 75 logwindow->log( "(i) Wellenreiter has been started." );
76 76
77 // 77 //
78 // detect operating system 78 // detect operating system
79 // 79 //
80 80
81 #ifdef QWS 81 #ifdef QWS
82 QString sys; 82 QString sys;
83 sys.sprintf( "(i) Running on '%s'.", (const char*) ODevice::inst()->systemString() ); 83 sys.sprintf( "(i) Running on '%s'.", (const char*) ODevice::inst()->systemString() );
84 _system = ODevice::inst()->system(); 84 _system = ODevice::inst()->system();
85 logwindow->log( sys ); 85 logwindow->log( sys );
86 #endif 86 #endif
87 87
88 // setup GUI 88 // setup GUI
89 netview->setColumnWidthMode( 1, QListView::Manual ); 89 netview->setColumnWidthMode( 1, QListView::Manual );
90 90
91 if ( manufacturerdb ) 91 if ( manufacturerdb )
92 netview->setManufacturerDB( manufacturerdb ); 92 netview->setManufacturerDB( manufacturerdb );
93 93
94 pcap = new OPacketCapturer(); 94 pcap = new OPacketCapturer();
95 95
96} 96}
97 97
98Wellenreiter::~Wellenreiter() 98Wellenreiter::~Wellenreiter()
99{ 99{
100 // no need to delete child widgets, Qt does it all for us 100 // no need to delete child widgets, Qt does it all for us
101 101
102 delete manufacturerdb; 102 delete manufacturerdb;
103 delete pcap; 103 delete pcap;
104} 104}
105 105
106void Wellenreiter::setConfigWindow( WellenreiterConfigWindow* cw ) 106void Wellenreiter::setConfigWindow( WellenreiterConfigWindow* cw )
107{ 107{
108 configwindow = cw; 108 configwindow = cw;
109} 109}
110 110
111void Wellenreiter::receivePacket(OPacket* p) 111void Wellenreiter::receivePacket(OPacket* p)
112{ 112{
113 logwindow->log( "(d) Received data from daemon" );
114 //TODO
115
116 // check if we received a beacon frame 113 // check if we received a beacon frame
117 // static_cast is justified here 114 // static_cast is justified here
118 OWaveLanManagementPacket* beacon = static_cast<OWaveLanManagementPacket*>( p->child( "802.11 Management" ) ); 115 OWaveLanManagementPacket* beacon = static_cast<OWaveLanManagementPacket*>( p->child( "802.11 Management" ) );
119 if ( !beacon ) return; 116 if ( !beacon ) return;
120 QString type; 117 QString type;
121 118
122 //FIXME: Can stations in ESS mode can be distinguished from APs? 119 //FIXME: Can stations in ESS mode can be distinguished from APs?
123 //FIXME: Apparently yes, but not by listening to beacons, because 120 //FIXME: Apparently yes, but not by listening to beacons, because
124 //FIXME: they simply don't send beacons in infrastructure mode. 121 //FIXME: they simply don't send beacons in infrastructure mode.
125 //FIXME: so we also have to listen to data packets 122 //FIXME: so we also have to listen to data packets
126 123
127 if ( beacon->canIBSS() ) 124 if ( beacon->canIBSS() )
128 type = "adhoc"; 125 type = "adhoc";
129 else 126 else
130 type = "managed"; 127 type = "managed";
131 128
132 OWaveLanManagementSSID* ssid = static_cast<OWaveLanManagementSSID*>( p->child( "802.11 SSID" ) ); 129 OWaveLanManagementSSID* ssid = static_cast<OWaveLanManagementSSID*>( p->child( "802.11 SSID" ) );
133 QString essid = ssid ? ssid->ID() : QString("<unknown>"); 130 QString essid = ssid ? ssid->ID() : QString("<unknown>");
134 OWaveLanManagementDS* ds = static_cast<OWaveLanManagementDS*>( p->child( "802.11 DS" ) ); 131 OWaveLanManagementDS* ds = static_cast<OWaveLanManagementDS*>( p->child( "802.11 DS" ) );
135 int channel = ds ? ds->channel() : -1; 132 int channel = ds ? ds->channel() : -1;
136 133
137 OWaveLanPacket* header = static_cast<OWaveLanPacket*>( p->child( "802.11" ) ); 134 OWaveLanPacket* header = static_cast<OWaveLanPacket*>( p->child( "802.11" ) );
138 netView()->addNewItem( type, essid, header->macAddress2().toString(), header->usesWep(), channel, 0 ); 135 netView()->addNewItem( type, essid, header->macAddress2().toString(), header->usesWep(), channel, 0 );
139} 136}
140 137
141void Wellenreiter::startStopClicked() 138void Wellenreiter::startStopClicked()
142{ 139{
143 if ( sniffing ) 140 if ( sniffing )
144 { 141 {
145 disconnect( SIGNAL( receivedPacket(OPacket*) ), this, SLOT( receivePacket(OPacket*) ) ); 142 disconnect( SIGNAL( receivedPacket(OPacket*) ), this, SLOT( receivePacket(OPacket*) ) );
146 143
147 iface->setChannelHopping(); // stop hopping channels 144 iface->setChannelHopping(); // stop hopping channels
148 pcap->close(); 145 pcap->close();
149 sniffing = false; 146 sniffing = false;
150 #ifdef QWS 147 #ifdef QWS
151 oApp->setTitle(); 148 oApp->setTitle();
152 #else 149 #else
153 qApp->mainWidget()->setCaption( "Wellenreiter II" ); 150 qApp->mainWidget()->setCaption( "Wellenreiter II" );
154 #endif 151 #endif
155 152
156 // get interface name from config window 153 // get interface name from config window
157 const QString& interface = configwindow->interfaceName->currentText(); 154 const QString& interface = configwindow->interfaceName->currentText();
158 ONetwork* net = ONetwork::instance(); 155 ONetwork* net = ONetwork::instance();
159 iface = static_cast<OWirelessNetworkInterface*>(net->interface( interface )); 156 iface = static_cast<OWirelessNetworkInterface*>(net->interface( interface ));
160 157
161 // switch off monitor mode 158 // switch off monitor mode
162 iface->setMonitorMode( false ); 159 iface->setMonitorMode( false );
163 // switch off promisc flag 160 // switch off promisc flag
164 iface->setPromiscuousMode( false ); 161 iface->setPromiscuousMode( false );
165 162
166 //TODO: Display "please wait..." (use owait?) 163 system( "cardctl reset; sleep 1; dhclient; udhcpc" ); //FIXME: Use OProcess
167
168 /*
169
170 QString cmdline;
171 cmdline.sprintf( "ifdown %s; sleep 1; ifup %s", (const char*) interface, (const char*) interface, (const char*) interface );
172 system( cmdline ); //FIXME: Use OProcess
173
174 */
175 164
176 // message the user 165 // message the user
177 166 QMessageBox::information( this, "Wellenreiter II", "Your wireless card\nshould now be usable again." );
178 //QMessageBox::information( this, "Wellenreiter II", "Your wireless card\nshould now be usable again." );
179 } 167 }
180 168
181 else 169 else
182 { 170 {
183 // get configuration from config window 171 // get configuration from config window
184 172
185 const QString& interface = configwindow->interfaceName->currentText(); 173 const QString& interface = configwindow->interfaceName->currentText();
186 const int cardtype = configwindow->daemonDeviceType(); 174 const int cardtype = configwindow->daemonDeviceType();
187 const int interval = configwindow->daemonHopInterval(); 175 const int interval = configwindow->daemonHopInterval();
188 176
189 if ( ( interface == "" ) || ( cardtype == 0 ) ) 177 if ( ( interface == "" ) || ( cardtype == 0 ) )
190 { 178 {
191 QMessageBox::information( this, "Wellenreiter II", "Your device is not\nproperly configured. Please reconfigure!" ); 179 QMessageBox::information( this, "Wellenreiter II", "Your device is not\nproperly configured. Please reconfigure!" );
192 return; 180 return;
193 } 181 }
194 182
195 // configure device 183 // configure device
196 184
197 ONetwork* net = ONetwork::instance(); 185 ONetwork* net = ONetwork::instance();
198 iface = static_cast<OWirelessNetworkInterface*>(net->interface( interface )); 186 iface = static_cast<OWirelessNetworkInterface*>(net->interface( interface ));
199 187
200 // set monitor mode 188 // set monitor mode
201 189
202 switch ( cardtype ) 190 switch ( cardtype )
203 { 191 {
204 case 1: iface->setMonitoring( new OCiscoMonitoringInterface( iface ) ); break; 192 case 1: iface->setMonitoring( new OCiscoMonitoringInterface( iface ) ); break;
205 case 2: iface->setMonitoring( new OWlanNGMonitoringInterface( iface ) ); break; 193 case 2: iface->setMonitoring( new OWlanNGMonitoringInterface( iface ) ); break;
206 case 3: iface->setMonitoring( new OHostAPMonitoringInterface( iface ) ); break; 194 case 3: iface->setMonitoring( new OHostAPMonitoringInterface( iface ) ); break;
207 case 4: iface->setMonitoring( new OOrinocoMonitoringInterface( iface ) ); break; 195 case 4: iface->setMonitoring( new OOrinocoMonitoringInterface( iface ) ); break;
208 default: assert( 0 ); // shouldn't happen 196 default: assert( 0 ); // shouldn't happen
209 } 197 }
210 198
211 iface->setMonitorMode( true ); 199 iface->setMonitorMode( true );
212 200
213 // open pcap and start sniffing 201 // open pcap and start sniffing
214 pcap->open( interface ); 202 pcap->open( interface );
215 203
216 if ( !pcap->isOpen() ) 204 if ( !pcap->isOpen() )
217 { 205 {
218 QMessageBox::warning( this, "Wellenreiter II", "Can't open packet capturer:\n" + QString(strerror( errno ) )); 206 QMessageBox::warning( this, "Wellenreiter II", "Can't open packet capturer:\n" + QString(strerror( errno ) ));
219 return; 207 return;
220 } 208 }
221 209
222 // set capturer to non-blocking mode 210 // set capturer to non-blocking mode
223 pcap->setBlocking( false ); 211 pcap->setBlocking( false );
224 212
225 // start channel hopper 213 // start channel hopper
226 iface->setChannelHopping( 1000 ); //use interval from config window 214 iface->setChannelHopping( 1000 ); //use interval from config window
227 215
228 // connect 216 // connect
229 connect( pcap, SIGNAL( receivedPacket(OPacket*) ), this, SLOT( receivePacket(OPacket*) ) ); 217 connect( pcap, SIGNAL( receivedPacket(OPacket*) ), this, SLOT( receivePacket(OPacket*) ) );
230 218
231 logwindow->log( "(i) Daemon has been started." ); 219 logwindow->log( "(i) Daemon has been started." );
232 #ifdef QWS 220 #ifdef QWS
233 oApp->setTitle( "Scanning ..." ); 221 oApp->setTitle( "Scanning ..." );
234 #else 222 #else
235 qApp->mainWidget()->setCaption( "Wellenreiter II / Scanning ..." ); 223 qApp->mainWidget()->setCaption( "Wellenreiter II / Scanning ..." );
236 #endif 224 #endif
237 sniffing = true; 225 sniffing = true;
238 226
239 } 227 }
240} 228}