summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opietooth/lib/device.cc12
-rw-r--r--noncore/net/opietooth/lib/device.h9
2 files changed, 13 insertions, 8 deletions
diff --git a/noncore/net/opietooth/lib/device.cc b/noncore/net/opietooth/lib/device.cc
index 5edfc03..bae1c47 100644
--- a/noncore/net/opietooth/lib/device.cc
+++ b/noncore/net/opietooth/lib/device.cc
@@ -18,38 +18,40 @@ namespace {
id = (*it).toInt();
break;
}
}
return id;
}
}
-Device::Device(const QString &device, const QString &mode )
- : QObject(0, "device" ) {
+Device::Device(const QString &device, const QString &mode, const QString &speed )
+ : QObject(0, "device") {
+
qWarning("OpieTooth::Device create" );
m_hci = 0;
m_process = 0;
m_attached = false;
m_device = device;
m_mode = mode;
+ m_speed = speed;
attach();
}
Device::~Device(){
detach();
}
void Device::attach(){
- qWarning("attaching %s %s", m_device.latin1(), m_mode.latin1() );
+ qWarning("attaching %s %s %s", m_device.latin1(), m_mode.latin1(), m_speed.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;
+ *m_process << m_device << m_mode << m_speed;
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" );
@@ -129,17 +131,17 @@ void Device::slotExited( OProcess* proc)
m_hci = 0;
}
}
void Device::slotStdOut(OProcess* proc, char* chars, int len)
{
qWarning("std out" );
if( len <1 ){
qWarning( "len < 1 " );
- return;
+ 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* proc, char* chars, int len)
diff --git a/noncore/net/opietooth/lib/device.h b/noncore/net/opietooth/lib/device.h
index c0e2658..ce7fccc 100644
--- a/noncore/net/opietooth/lib/device.h
+++ b/noncore/net/opietooth/lib/device.h
@@ -6,33 +6,35 @@
#include <qstring.h>
#include <qvaluelist.h>
#include <sys/types.h>
class OProcess;
namespace OpieTooth {
/**
- * Device takes care of attaching serial
+ * Device takes care of attaching serial
* devices to the blueZ stack.
* After attaching it hciconfig ups it
*/
class Device : public QObject {
- Q_OBJECT
+
+ Q_OBJECT
public:
/**
* Brings up an device.
* Usage example: new Device(/dev/ttySB0, csr)
*
* @param &device QString the device name
* @param &mode QString the mode
+ * @param &speed QString the speed of the device, can be left blank
*/
- Device(const QString &device, const QString& mode);
+ Device(const QString &device, const QString& mode, const QString& speed);
/**
* unloads the device
*/
~Device();
/**
* attach the device
@@ -72,14 +74,15 @@ namespace OpieTooth {
class Private;
Private *d;
QString m_device;
bool m_attached:1;
OProcess* m_hci;
OProcess* m_process;
QString m_devId;
QString m_mode;
+ QString m_speed;
pid_t pid;
QCString m_output;
};
};
#endif