You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdenetwork/wifi/interface_wireless.cpp

211 lines
4.3 KiB

/***************************************************************************
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 <tqdir.h>
#include <tqfile.h>
#include <tqstringlist.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 <tdelocale.h>
#include <kprocio.h>
#include <kdebug.h>
#include <tqstring.h>
#include <arpa/inet.h>
Interface_wireless::Interface_wireless (TQStringList * 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 (TQString & 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;
}
}
TQString 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 (TQString & mac, TQString &/*ip*/)
{
mac = access_point_address;
return false;
}
TQString Interface_wireless::get_IP_info ()
{
return ip_address;
}
double Interface_wireless::get_bitrate ()
{
return bitrate;
}
TQString 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
TQString
whois (const char *MAC_ADR, TQStringList APList)
{
for (TQStringList::Iterator it = APList.begin (); it != APList.end ();
(it++)++)
{
if ((*it) == (TQString) MAC_ADR)
return *(++it);
}
return i18n ("UNKNOWN");
}
#include "interface_wireless.moc"