summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opietooth/applet/bluezapplet.cpp2
-rw-r--r--noncore/net/opietooth/lib/device.cc11
-rw-r--r--noncore/net/opietooth/lib/lib.pro2
3 files changed, 11 insertions, 4 deletions
diff --git a/noncore/net/opietooth/applet/bluezapplet.cpp b/noncore/net/opietooth/applet/bluezapplet.cpp
index a380ac7..6e5ee82 100644
--- a/noncore/net/opietooth/applet/bluezapplet.cpp
+++ b/noncore/net/opietooth/applet/bluezapplet.cpp
@@ -31,97 +31,97 @@
#include <qapplication.h>
#include <qpe/resource.h>
#include <qpe/qcopenvelope_qws.h>
#include <qpe/resource.h>
#include <qpe/config.h>
#include <qpoint.h>
#include <qpainter.h>
#include <qlayout.h>
#include <qframe.h>
#include <qpixmap.h>
#include <qstring.h>
#include <qtimer.h>
#include <qpopupmenu.h>
#include <device.h>
namespace OpieTooth {
BluezApplet::BluezApplet( QWidget *parent, const char *name ) : QWidget( parent, name ) {
setFixedHeight( 18 );
setFixedWidth( 14 );
bluezOnPixmap = Resource::loadPixmap( "bluetoothapplet/bluezon" );
bluezOffPixmap = Resource::loadPixmap( "bluetoothapplet/bluezoff" );
// bluezDiscoveryOnPixmap = Resource::loadPixmap( "bluetoothapplet/magglass" );
startTimer(5000);
timerEvent(NULL);
}
BluezApplet::~BluezApplet() {
}
int BluezApplet::checkBluezStatus() {
if (btDevice) {
if (btDevice->isLoaded() ) {
return 1;
} else {
return 0;
}
} else {
return 0;
}
}
int BluezApplet::setBluezStatus(int c) {
if (c == 1) {
- btDevice = new Device("/dev/ttySB0", "scr" );
+ btDevice = new Device("/dev/ttySB0", "csr" );
// system("hciattach /dev/ttySB0 csr");
//system("hcid");
} else {
if (btDevice) {
delete btDevice;
}
//system("killall hciattach");
//system("killall hcid");
}
return 0;
}
int BluezApplet::checkBluezDiscoveryStatus() {
}
int BluezApplet::setBluezDiscoveryStatus(int d) {
}
void BluezApplet::mousePressEvent( QMouseEvent *) {
QPopupMenu *menu = new QPopupMenu();
QPopupMenu *signal = new QPopupMenu();
int ret=0;
/* Refresh active state */
timerEvent(NULL);
if (bluezactive) {
menu->insertItem( tr("Disable Bluetooth"), 0 );
} else {
menu->insertItem( tr("Enable Bluetooth"), 1 );
}
menu->insertItem( tr("Launch manager"), 2 );
menu->insertSeparator(6);
menu->insertItem( tr("Signal strength"), signal, 5);
menu->insertSeparator(8);
if (bluezDiscoveryActive) {
menu->insertItem( tr("Disable discovery"), 3 );
} else {
menu->insertItem( tr("Enable discovery"), 4 );
}
//menu->insertItem( tr("More..."), 7 )
QPoint p = mapToGlobal( QPoint(1, -menu->sizeHint().height()-1) );
diff --git a/noncore/net/opietooth/lib/device.cc b/noncore/net/opietooth/lib/device.cc
index 5234996..5edfc03 100644
--- a/noncore/net/opietooth/lib/device.cc
+++ b/noncore/net/opietooth/lib/device.cc
@@ -1,142 +1,149 @@
#include <signal.h>
#include <opie/oprocess.h>
#include "device.h"
using namespace OpieTooth;
namespace {
int parsePid( const QCString& par ){
int id=0;
QString string( par );
QStringList list = QStringList::split( '\n', string );
for( QStringList::Iterator it = list.begin(); it != list.end(); ++it ){
+ qWarning("parsePID: %s", (*it).latin1() );
if( !(*it).startsWith("CSR") ){
id = (*it).toInt();
break;
}
}
return id;
}
}
Device::Device(const QString &device, const QString &mode )
: QObject(0, "device" ) {
qWarning("OpieTooth::Device create" );
m_hci = 0;
m_process = 0;
m_attached = false;
m_device = device;
m_mode = mode;
attach();
}
Device::~Device(){
detach();
}
void Device::attach(){
qWarning("attaching %s %s", m_device.latin1(), m_mode.latin1() );
if(m_process == 0 ){
m_output.resize(0);
qWarning("new process to create" );
m_process = new OProcess();
*m_process << "hciattach";
*m_process << "-p";
*m_process << m_device << m_mode;
connect(m_process, SIGNAL( processExited(OProcess*) ),
this, SLOT( slotExited(OProcess* ) ) );
connect(m_process, SIGNAL( receivedStdout(OProcess*, char*, int) ),
this, SLOT(slotStdOut(OProcess*,char*,int ) ) );
connect(m_process, SIGNAL(receivedStderr(OProcess*, char*, int ) ),
this, SLOT(slotStdErr(OProcess*,char*,int) ) );
if(!m_process->start(OProcess::NotifyOnExit, OProcess::AllOutput ) ){
qWarning("Could not start" );
delete m_process;
m_process = 0;
}
};
}
void Device::detach(){
delete m_hci;
delete m_process;
// kill the pid we got
if(m_attached ){
//kill the pid
qWarning( "killing" );
kill(pid, 9);
}
qWarning("detached" );
}
bool Device::isLoaded()const{
return m_attached;
}
QString Device::devName()const {
return QString::fromLatin1("hci0");
};
void Device::slotExited( OProcess* proc)
{
qWarning("prcess exited" );
if(proc== m_process ){
+ qWarning("proc == m_process" );
if( m_process->normalExit() ){ // normal exit
+ qWarning("normalExit" );
int ret = m_process->exitStatus();
if( ret == 0 ){ // attached
qWarning("attached" );
qWarning("Output: %s", m_output.data() );
pid = parsePid( m_output );
qWarning("Pid = %d", pid );
// now hciconfig hci0 up ( determine hciX FIXME)
// and call hciconfig hci0 up
// FIXME hardcoded to hci0 now :(
m_hci = new OProcess( );
*m_hci << "hciconfig";
*m_hci << "hci0 up";
connect(m_hci, SIGNAL( processExited(OProcess*) ),
this, SLOT( slotExited(OProcess* ) ) );
if(!m_hci->start() ){
qWarning("could not start" );
m_attached = false;
emit device("hci0", false );
}
}else{
+ qWarning("crass" );
m_attached = false;
emit device("hci0", false );
}
}
delete m_process;
m_process = 0;
}else if(proc== m_hci ){
qWarning("M HCI exited" );
if( m_hci->normalExit() ){
qWarning("normal exit" );
int ret = m_hci->exitStatus();
if( ret == 0 ){
qWarning("attached really really attached" );
m_attached = true;
emit device("hci0", true );
}else{
qWarning( "failed" );
emit device("hci0", false );
m_attached = false;
}
}// normal exit
delete m_hci;
m_hci = 0;
}
}
void Device::slotStdOut(OProcess* proc, char* chars, int len)
{
qWarning("std out" );
- if( len <1 )
+ if( len <1 ){
+ qWarning( "len < 1 " );
return;
+ }
if(proc == m_process ){
QCString string( chars, len+1 ); // \0 == +1
qWarning("output: %s", string.data() );
m_output.append( string.data() );
}
}
-void Device::slotStdErr(OProcess*, char*, int )
+void Device::slotStdErr(OProcess* proc, char* chars, int len)
{
qWarning("std err" );
+ slotStdOut( proc, chars, len );
}
diff --git a/noncore/net/opietooth/lib/lib.pro b/noncore/net/opietooth/lib/lib.pro
index f2cde06..ce36d66 100644
--- a/noncore/net/opietooth/lib/lib.pro
+++ b/noncore/net/opietooth/lib/lib.pro
@@ -1,9 +1,9 @@
TEMPLATE = lib
CONFIG += qte warn_on release
HEADERS = device.h manager.h remotedevice.h services.h
SOURCES = device.cc manager.cc remotedevice.cc services.cc
TARGET = opietooth
INCLUDEPATH += $(OPIEDIR)/include
DESTDIR = $(QTDIR)/lib$(PROJMAK)
-LIBS = -lopie
+LIBS += -lopie
#VERSION = 0.0.0