summaryrefslogtreecommitdiff
path: root/noncore/settings/networksettings2/opietooth2
Side-by-side diff
Diffstat (limited to 'noncore/settings/networksettings2/opietooth2') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/networksettings2/opietooth2/Opietooth.cpp136
-rw-r--r--noncore/settings/networksettings2/opietooth2/Opietooth.h23
-rw-r--r--noncore/settings/networksettings2/opietooth2/libopietooth2.control2
-rw-r--r--noncore/settings/networksettings2/opietooth2/opietooth2.pro4
4 files changed, 148 insertions, 17 deletions
diff --git a/noncore/settings/networksettings2/opietooth2/Opietooth.cpp b/noncore/settings/networksettings2/opietooth2/Opietooth.cpp
index 2d4885c..5a890da 100644
--- a/noncore/settings/networksettings2/opietooth2/Opietooth.cpp
+++ b/noncore/settings/networksettings2/opietooth2/Opietooth.cpp
@@ -1,53 +1,59 @@
#include <opie2/odebug.h>
#include <opie2/oledbox.h>
+#include <opie2/ofiledialog.h>
+
using namespace Opie::Core;
using namespace Opie::Ui;
#include <qpe/resource.h>
+#include <qapplication.h>
#include <qcheckbox.h>
+#include <qcombobox.h>
+#include <qdialog.h>
+#include <qdir.h>
+#include <qfile.h>
#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qprogressbar.h>
#include <qheader.h>
-#include <qmessagebox.h>
-#include <qapplication.h>
-#include <qlistbox.h>
-#include <qdialog.h>
-#include <qlayout.h>
-#include <qcombobox.h>
#include <qlabel.h>
+#include <qlayout.h>
+#include <qlistbox.h>
#include <qlistview.h>
+#include <qmessagebox.h>
+#include <qprogressbar.h>
#include <qpushbutton.h>
+#include <qtextstream.h>
#include <Opietooth.h>
#include <OTDriver.h>
#include <OTPeer.h>
#include <OTGateway.h>
#include <OTSDPAttribute.h>
#include <OTSDPService.h>
#include <OTInquiry.h>
+#include <system.h>
+
using namespace Opietooth2;
namespace Opietooth2 {
class PeerLVI : public QListViewItem {
public :
PeerLVI( OTPeer * P, QListView * it ) : QListViewItem (it) {
Peer = P;
}
~PeerLVI( void ) {
}
inline OTPeer * peer( void )
{ return Peer; }
private :
OTPeer * Peer;
};
class ChannelLVI : public QListViewItem {
@@ -92,58 +98,163 @@ public :
LinkKeyLVI( int Ch, QListView * it ) : QListViewItem (it) {
LinkKey = Ch;
}
~LinkKeyLVI( void ) {
}
inline int index( void )
{ return LinkKey; }
private :
int LinkKey;
};
};
//
//
//
//
//
OTSniffing::OTSniffing( QWidget * parent ) : OTSniffGUI( parent ) {
OT = OTGateway::getOTGateway();
-
+ HciDump = 0;
+ Sys = new System();
}
OTSniffing::~OTSniffing() {
+ printf( "CLOSE \n" );
+ if ( HciDump ) {
+ HciDump->process().kill();
+ delete HciDump;
+ }
+ delete Sys;
}
-void OTSniffing::SLOT_Trace( void ) {
+void OTSniffing::SLOT_Trace( bool ) {
+ HciDump = new MyProcess();
+ QStringList SL;
+
+ SL << "hcidump";
+ switch( DataFormat_CB->currentItem() ) {
+ case 0 : // Hex
+ SL << "-x";
+ break;
+ case 1 : // Ascii
+ SL << "-a";
+ break;
+ case 2 : // both
+ SL << "-X";
+ break;
+ }
+
+ SL << "-i";
+ SL << OT->scanWith()->devname();
+
+ connect( HciDump,
+ SIGNAL( stdoutLine( const QString & ) ),
+ this,
+ SLOT( SLOT_Show( const QString & ) ) );
+
+ connect( HciDump,
+ SIGNAL(processExited(MyProcess*) ),
+ this,
+ SLOT( SLOT_ProcessExited(MyProcess*) ) );
+
+ if( ! Sys->runAsRoot( SL, HciDump ) ) {
+ QMessageBox::warning(0,
+ tr("Run hcidump"),
+ tr("Cannot start %1").arg(SL.join(" "))
+ );
+ delete HciDump;
+ HciDump = 0;
+ }
+
+}
+
+void OTSniffing::SLOT_Show( const QString & S ) {
+ printf( "%s\n", S.latin1() );
+ Output_LB->insertItem( S );
+ Output_LB->setCurrentItem( Output_LB->count()-1 );
+ Output_LB->ensureCurrentVisible();
+}
+
+void OTSniffing::SLOT_ProcessExited( MyProcess * ) {
+ printf( "Exited\n" );
+ delete HciDump;
+ HciDump = 0;
+}
+
+void OTSniffing::SLOT_Save( void ) {
+ QString S = OFileDialog::getSaveFileName(
+ OFileSelector::Extended,
+ QDir::home().path(),
+ QString::null,
+ MimeTypes(),
+ this );
+
+ if( ! S.isEmpty() ) {
+ QFile F( S );
+ if( ! F.open( IO_WriteOnly ) ) {
+ QMessageBox::warning(0,
+ tr("Save log"),
+ tr("Cannot open %1").arg(S)
+ );
+ return;
+ }
+ QTextStream TS( &F );
+ TS << S << endl;
+ }
+}
+
+void OTSniffing::SLOT_Load( void ) {
+ QString S = OFileDialog::getOpenFileName(
+ OFileSelector::Extended,
+ QDir::home().path(),
+ QString::null,
+ MimeTypes(),
+ this );
+
+ if( ! S.isEmpty() ) {
+ QFile F( S );
+ if( ! F.open( IO_ReadOnly ) ) {
+ QMessageBox::warning(0,
+ tr("Save log"),
+ tr("Cannot open %1").arg(S)
+ );
+ return;
+ }
+ QTextStream TS ( &F );
+ SLOT_ClearLog();
+ S = TS.read();
+ Output_LB->insertStringList( QStringList::split( "\n", S ) );
+ }
}
void OTSniffing::SLOT_ClearLog( void ) {
+ Output_LB->clear();
}
//
//
//
//
//
OTPairing::OTPairing( QWidget * parent, OTIcons * _IC ) :
OTPairingGUI( parent ) {
OT = OTGateway::getOTGateway();
Icons = (_IC ) ? _IC : new OTIcons();
MyIcons = (_IC == 0 );
// unpairing can only be done if bluetooth is disabled
Unpair_But->setEnabled( ! OT->isEnabled() );
if( ! OT->isEnabled() ) {
Unpair_LBL->hide();
} else {
Unpair_LBL->show();
}
// open linkkey file and load pairs
@@ -1008,30 +1119,33 @@ void OTMain::SLOT_StateChange( OTDriver * D, bool Up ) {
Icons->loadPixmap( (Up) ? "bluezon" : "bluezoff" ),
D->devname(),
i );
return;
}
}
}
void OTMain::SLOT_Pairing( void ) {
QDialog * Dlg = new QDialog( this, 0, TRUE );
QVBoxLayout * V = new QVBoxLayout( Dlg );
OTPairing * Pair = new OTPairing( Dlg, Icons );
V->addWidget( Pair );
Dlg->showMaximized();
Dlg->setCaption( tr("Manage pairing" ) );
Dlg->exec();
delete Dlg;
}
void OTMain::SLOT_Sniffing( void ) {
if( SnifWindow == 0 ) {
- SnifWindow = new OTSniffing( this );
+ SnifWindow = new QDialog( this, 0, FALSE );
+ QVBoxLayout * V = new QVBoxLayout( SnifWindow );
+ OTSniffing * SN = new OTSniffing( SnifWindow );
+ V->addWidget( SN );
}
SnifWindow->showMaximized();
SnifWindow->show();
}
diff --git a/noncore/settings/networksettings2/opietooth2/Opietooth.h b/noncore/settings/networksettings2/opietooth2/Opietooth.h
index 211ae65..2b20975 100644
--- a/noncore/settings/networksettings2/opietooth2/Opietooth.h
+++ b/noncore/settings/networksettings2/opietooth2/Opietooth.h
@@ -1,61 +1,78 @@
#ifndef OPIETOOTH_H
#define OPIETOOTH_H
#include <OTIcons.h>
-namespace Opie { namespace Ui { class OLedBox; }; };
+class MyProcess;
+class System;
+
+namespace Opie {
+
+ namespace Ui {
+
+ class OLedBox;
+
+ };
+
+};
#include <OTSniffGUI.h>
namespace Opietooth2 {
class OTGateway;
class OTDriver;
class OTInquiry;
class OTPeer;
class PeerLVI;
class OTSniffing : public OTSniffGUI {
Q_OBJECT
public :
OTSniffing( QWidget * parent );
~OTSniffing();
private slots :
- void SLOT_Trace( void );
+ void SLOT_Trace( bool );
void SLOT_ClearLog( void );
+ void SLOT_Load( void );
+ void SLOT_Save( void );
+ void SLOT_ProcessExited( MyProcess * );
+ void SLOT_Show( const QString & );
signals :
protected :
private :
OTGateway * OT;
+ MyProcess * HciDump;
+ System * Sys;
};
};
#include <OTPairingGUI.h>
namespace Opietooth2 {
class OTPairing : public OTPairingGUI {
Q_OBJECT
public :
OTPairing( QWidget * parent,
OTIcons * _Ic = 0 );
~OTPairing();
private slots :
void SLOT_Unpair( void );
signals :
protected :
@@ -196,28 +213,28 @@ public :
~OTMain();
public slots :
private slots :
void SLOT_Pairing( void );
void SLOT_Manage( void );
void SLOT_Sniffing( void );
void SLOT_Scan( void );
void SLOT_EnableBluetooth( bool );
void SLOT_DriverListChanged();
void SLOT_DeviceIsEnabled( bool );
void SLOT_StateChange( OTDriver * , bool );
signals :
protected :
private :
// load scanned devices
OTIcons * Icons;
OTGateway * OT;
- OTSniffing * SnifWindow;
+ QDialog * SnifWindow;
};
};
#endif
diff --git a/noncore/settings/networksettings2/opietooth2/libopietooth2.control b/noncore/settings/networksettings2/opietooth2/libopietooth2.control
index fd01fb5..c2c8eb8 100644
--- a/noncore/settings/networksettings2/opietooth2/libopietooth2.control
+++ b/noncore/settings/networksettings2/opietooth2/libopietooth2.control
@@ -1,9 +1,9 @@
Package: libopietooth2
Files: lib/libopietooth2.so.* apps/Settings/opietooth-manager.desktop pics/opietooth/*.png pics/opietooth/icons/*.png
Priority: optional
Section: opie/system
Maintainer: wim delvaux <wim.delvaux@handhelds.org>
Architecture: arm
Version: $QPE_VERSION$EXTRAVERSION
-Depends: task-opie-minimal, libbluetooth1, opie-bluepin | opie-multiauth-bluepingplugin, bluez-utils-nodbus
+Depends: task-opie-minimal, opie-networksettings2, libbluetooth1, opie-bluepin | opie-multiauth-bluepingplugin, bluez-utils-nodbus
Description: Opie bluetooth support library version 2
diff --git a/noncore/settings/networksettings2/opietooth2/opietooth2.pro b/noncore/settings/networksettings2/opietooth2/opietooth2.pro
index cfb527d..e0057a9 100644
--- a/noncore/settings/networksettings2/opietooth2/opietooth2.pro
+++ b/noncore/settings/networksettings2/opietooth2/opietooth2.pro
@@ -6,32 +6,32 @@ HEADERS = OTDevice.h \
OTDriver.h \
OTGateway.h \
OTHCISocket.h \
OTInquiry.h \
OTDeviceAddress.h \
OTIcons.h \
OTUUID.h \
OTSDPAttribute.h \
OTSDPService.h \
OTPeer.h \
Opietooth.h
SOURCES = OTDevice.cpp \
OTDriver.cpp \
OTDriverList.cpp \
OTHCISocket.cpp \
OTInquiry.cpp \
OTDeviceAddress.cpp \
OTUUID.cpp \
OTSDPAttribute.cpp \
OTSDPService.cpp \
OTIcons.cpp \
OTPeer.cpp \
OTGateway.cpp \
Opietooth.cpp
-INCLUDEPATH += $(OPIEDIR)/include
+INCLUDEPATH += $(OPIEDIR)/include ../networksettings2
DEPENDPATH += $(OPIEDIR)/include
-LIBS += -lqpe -lopiecore2 -lbluetooth
+LIBS += -lqpe -lopiecore2 -lbluetooth -lnetworksettings2
INTERFACES = OTMainGUI.ui OTSniffGUI.ui OTScanGUI.ui OTManageGUI.ui OTPairingGUI.ui
TARGET = opietooth2
VERSION = 1.0.0
include ( $(OPIEDIR)/include.pro )