summaryrefslogtreecommitdiffstats
path: root/wifi/interface_wireless.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'wifi/interface_wireless.cpp')
-rw-r--r--wifi/interface_wireless.cpp210
1 files changed, 210 insertions, 0 deletions
diff --git a/wifi/interface_wireless.cpp b/wifi/interface_wireless.cpp
new file mode 100644
index 00000000..5ece6301
--- /dev/null
+++ b/wifi/interface_wireless.cpp
@@ -0,0 +1,210 @@
+/***************************************************************************
+ stuff.cpp - description
+ -------------------
+ begin : Sun May 6 2001
+ copyright : (C) 2001 by Stefan Winter
+ email : mail@stefan-winter.de
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#include "interface_wireless.h"
+#include <qdir.h>
+#include <qfile.h>
+#include <qstringlist.h>
+
+#ifndef WITHOUT_ARTS
+#include <arts/artsflow.h>
+#include <arts/connect.h>
+#include <arts/iomanager.h>
+#include <arts/referenceclean.h>
+#endif // WITHOUT_ARTS
+
+#include <iostream>
+#include <string>
+#include <klocale.h>
+#include <kprocio.h>
+#include <kdebug.h>
+#include <qstring.h>
+#include <arpa/inet.h>
+
+Interface_wireless::Interface_wireless (QStringList * ignoreInterfaces)
+{
+ this->ignoreInterfaces = ignoreInterfaces;
+ has_frequency = false;
+ frequency = 0.;
+ has_mode = false;
+ mode = 0;
+ has_key = 0;
+ key = "";
+ key_size = 0;
+ key_flags = 0;
+ essid = "";
+ access_point_address = "";
+ ip_address = "";
+ bitrate = 0.;
+ socket = -1;
+ has_range = false;
+ for (int i = 0; i < MAX_HISTORY; i++)
+ {
+ sigLevel[i] = -255;
+ noiseLevel[i] = -255;
+ qual[i] = -255;
+ valid[i] = false;
+ }
+ current = 0;
+ sigLevelMin = 32000;
+ noiseLevelMin = 32000;
+ sigLevelMax = -32000;
+ noiseLevelMax = -32000;
+
+ already_warned = false;
+}
+
+bool Interface_wireless::get_device_freq (double &freq)
+{
+ if (has_frequency)
+ {
+ freq = frequency;
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+}
+
+bool Interface_wireless::get_mode (int &ext_mode)
+{
+ if (has_mode)
+ {
+ ext_mode = mode;
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+}
+
+bool Interface_wireless::get_key (QString & ext_key,
+ int &ext_size,
+ int &ext_flags)
+{
+ if (has_key)
+ {
+ ext_key = key;
+ ext_size = key_size;
+ ext_flags = key_flags;
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+}
+
+QString Interface_wireless::get_essid ()
+{
+ return essid;
+}
+
+bool Interface_wireless::get_has_txpower()
+{
+ return has_txpower;
+}
+
+int Interface_wireless::get_txpower_disabled()
+{
+ return txpower_disabled;
+}
+
+bool Interface_wireless::get_AP_info (QString & mac, QString &/*ip*/)
+{
+ mac = access_point_address;
+ return false;
+}
+
+QString Interface_wireless::get_IP_info ()
+{
+ return ip_address;
+}
+
+double Interface_wireless::get_bitrate ()
+{
+ return bitrate;
+}
+
+QString Interface_wireless::get_interface_name ()
+{
+ return interface_name;
+}
+
+bool Interface_wireless::get_current_quality (int &sig,
+ int &noi,
+ int &qua)
+{
+ if (valid[current])
+ {
+ sig = sigLevel[current];
+ noi = noiseLevel[current];
+ qua = qual[current];
+ return true;
+ }
+ else
+ return false;
+}
+
+#ifndef WITHOUT_ARTS
+
+void
+sinus_wave (double frequency)
+{
+ using namespace Arts;
+ StdIOManager *limiter = new StdIOManager;
+ Dispatcher dispatcher (limiter);
+ MyTimeNotify *zeit = new MyTimeNotify (&dispatcher);
+ Synth_FREQUENCY freq;
+ Synth_WAVE_SIN sin;
+ Synth_PLAY play;
+ setValue (freq, frequency);
+ connect (freq, sin);
+ connect (sin, play, "invalue_left");
+ freq.start ();
+ sin.start ();
+ play.start ();
+ limiter->addTimer (240, zeit);
+ dispatcher.run ();
+ play.stop ();
+ sin.stop ();
+ freq.stop ();
+}
+
+void
+MyTimeNotify::notifyTime ()
+{
+ test->terminate ();
+}
+
+#endif
+
+QString
+whois (const char *MAC_ADR, QStringList APList)
+{
+ for (QStringList::Iterator it = APList.begin (); it != APList.end ();
+ (it++)++)
+ {
+ if ((*it) == (QString) MAC_ADR)
+ return *(++it);
+ }
+ return i18n ("UNKNOWN");
+}
+
+#include "interface_wireless.moc"