summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opietooth/lib/manager.cc65
-rw-r--r--noncore/net/opietooth/lib/manager.h18
2 files changed, 83 insertions, 0 deletions
diff --git a/noncore/net/opietooth/lib/manager.cc b/noncore/net/opietooth/lib/manager.cc
index 23506b3..2234333 100644
--- a/noncore/net/opietooth/lib/manager.cc
+++ b/noncore/net/opietooth/lib/manager.cc
@@ -1,226 +1,291 @@
1 1
2 2
3#include <opie/oprocess.h> 3#include <opie/oprocess.h>
4 4
5#include "parser.h" 5#include "parser.h"
6#include "manager.h" 6#include "manager.h"
7 7
8 8
9using namespace OpieTooth; 9using namespace OpieTooth;
10 10
11Manager::Manager( const QString& dev ) 11Manager::Manager( const QString& dev )
12 : QObject() 12 : QObject()
13{ 13{
14 qWarning("created"); 14 qWarning("created");
15 m_device = dev; 15 m_device = dev;
16 m_hcitool = 0; 16 m_hcitool = 0;
17 m_sdp = 0; 17 m_sdp = 0;
18} 18}
19Manager::Manager( Device* /*dev*/ ) 19Manager::Manager( Device* /*dev*/ )
20 : QObject() 20 : QObject()
21{ 21{
22 m_hcitool = 0; 22 m_hcitool = 0;
23 m_sdp = 0; 23 m_sdp = 0;
24} 24}
25Manager::Manager() 25Manager::Manager()
26 : QObject() 26 : QObject()
27{ 27{
28 m_hcitool = 0; 28 m_hcitool = 0;
29 m_sdp = 0; 29 m_sdp = 0;
30} 30}
31Manager::~Manager(){ 31Manager::~Manager(){
32 delete m_hcitool; 32 delete m_hcitool;
33 delete m_sdp; 33 delete m_sdp;
34} 34}
35void Manager::setDevice( const QString& dev ){ 35void Manager::setDevice( const QString& dev ){
36 m_device = dev; 36 m_device = dev;
37} 37}
38void Manager::setDevice( Device* /*dev*/ ){ 38void Manager::setDevice( Device* /*dev*/ ){
39 39
40} 40}
41void Manager::isAvailable( const QString& device ){ 41void Manager::isAvailable( const QString& device ){
42 OProcess* l2ping = new OProcess(); 42 OProcess* l2ping = new OProcess();
43 l2ping->setName( device.latin1() ); 43 l2ping->setName( device.latin1() );
44 *l2ping << "l2ping" << "-c1" << device; 44 *l2ping << "l2ping" << "-c1" << device;
45 connect(l2ping, SIGNAL(processExited(OProcess* ) ), 45 connect(l2ping, SIGNAL(processExited(OProcess* ) ),
46 this, SLOT(slotProcessExited(OProcess*) ) ); 46 this, SLOT(slotProcessExited(OProcess*) ) );
47 if (!l2ping->start() ) { 47 if (!l2ping->start() ) {
48 emit available( device, false ); 48 emit available( device, false );
49 delete l2ping; 49 delete l2ping;
50 } 50 }
51 51
52} 52}
53 53
54void Manager::isAvailable( Device* /*dev*/ ){ 54void Manager::isAvailable( Device* /*dev*/ ){
55 55
56 56
57} 57}
58void Manager::searchDevices( const QString& device ){ 58void Manager::searchDevices( const QString& device ){
59 qWarning("search devices"); 59 qWarning("search devices");
60 OProcess* hcitool = new OProcess(); 60 OProcess* hcitool = new OProcess();
61 hcitool->setName( device.isEmpty() ? "hci0" : device.latin1() ); 61 hcitool->setName( device.isEmpty() ? "hci0" : device.latin1() );
62 *hcitool << "hcitool" << "scan"; 62 *hcitool << "hcitool" << "scan";
63 connect( hcitool, SIGNAL(processExited(OProcess*) ) , 63 connect( hcitool, SIGNAL(processExited(OProcess*) ) ,
64 this, SLOT(slotHCIExited(OProcess* ) ) ); 64 this, SLOT(slotHCIExited(OProcess* ) ) );
65 connect( hcitool, SIGNAL(receivedStdout(OProcess*, char*, int ) ), 65 connect( hcitool, SIGNAL(receivedStdout(OProcess*, char*, int ) ),
66 this, SLOT(slotHCIOut(OProcess*, char*, int ) ) ); 66 this, SLOT(slotHCIOut(OProcess*, char*, int ) ) );
67 if (!hcitool->start(OProcess::NotifyOnExit, OProcess::AllOutput) ) { 67 if (!hcitool->start(OProcess::NotifyOnExit, OProcess::AllOutput) ) {
68 qWarning("could not start"); 68 qWarning("could not start");
69 RemoteDevice::ValueList list; 69 RemoteDevice::ValueList list;
70 emit foundDevices( device, list ); 70 emit foundDevices( device, list );
71 delete hcitool; 71 delete hcitool;
72 } 72 }
73} 73}
74 74
75void Manager::searchDevices(Device* /*d*/ ){ 75void Manager::searchDevices(Device* /*d*/ ){
76 76
77 77
78} 78}
79void Manager::addService(const QString& name ){ 79void Manager::addService(const QString& name ){
80 OProcess proc; 80 OProcess proc;
81 proc << "sdptool" << "add" << name; 81 proc << "sdptool" << "add" << name;
82 bool bo = true; 82 bool bo = true;
83 if (!proc.start(OProcess::DontCare ) ) 83 if (!proc.start(OProcess::DontCare ) )
84 bo = false; 84 bo = false;
85 emit addedService( name, bo ); 85 emit addedService( name, bo );
86} 86}
87void Manager::addServices(const QStringList& list){ 87void Manager::addServices(const QStringList& list){
88 QStringList::ConstIterator it; 88 QStringList::ConstIterator it;
89 for (it = list.begin(); it != list.end(); ++it ) 89 for (it = list.begin(); it != list.end(); ++it )
90 addService( (*it) ); 90 addService( (*it) );
91} 91}
92void Manager::removeService( const QString& name ){ 92void Manager::removeService( const QString& name ){
93 OProcess prc; 93 OProcess prc;
94 prc << "sdptool" << "del" << name; 94 prc << "sdptool" << "del" << name;
95 bool bo = true; 95 bool bo = true;
96 if (!prc.start(OProcess::DontCare ) ) 96 if (!prc.start(OProcess::DontCare ) )
97 bo = false; 97 bo = false;
98 emit removedService( name, bo ); 98 emit removedService( name, bo );
99} 99}
100void Manager::removeServices( const QStringList& list){ 100void Manager::removeServices( const QStringList& list){
101 QStringList::ConstIterator it; 101 QStringList::ConstIterator it;
102 for (it = list.begin(); it != list.end(); ++it ) 102 for (it = list.begin(); it != list.end(); ++it )
103 removeService( (*it) ); 103 removeService( (*it) );
104} 104}
105void Manager::searchServices( const QString& remDevice ){ 105void Manager::searchServices( const QString& remDevice ){
106 OProcess *m_sdp =new OProcess(); 106 OProcess *m_sdp =new OProcess();
107 *m_sdp << "sdptool" << "browse" << remDevice; 107 *m_sdp << "sdptool" << "browse" << remDevice;
108 m_sdp->setName( remDevice.latin1() ); 108 m_sdp->setName( remDevice.latin1() );
109 qWarning("search Services for %s", remDevice.latin1() ); 109 qWarning("search Services for %s", remDevice.latin1() );
110 connect(m_sdp, SIGNAL(processExited(OProcess*) ), 110 connect(m_sdp, SIGNAL(processExited(OProcess*) ),
111 this, SLOT(slotSDPExited(OProcess* ) ) ); 111 this, SLOT(slotSDPExited(OProcess* ) ) );
112 connect(m_sdp, SIGNAL(receivedStdout(OProcess*, char*, int ) ), 112 connect(m_sdp, SIGNAL(receivedStdout(OProcess*, char*, int ) ),
113 this, SLOT(slotSDPOut(OProcess*, char*, int) ) ); 113 this, SLOT(slotSDPOut(OProcess*, char*, int) ) );
114 if (!m_sdp->start(OProcess::NotifyOnExit, OProcess::AllOutput) ) { 114 if (!m_sdp->start(OProcess::NotifyOnExit, OProcess::AllOutput) ) {
115 qWarning("could not start sdptool" ); 115 qWarning("could not start sdptool" );
116 delete m_sdp; 116 delete m_sdp;
117 Services::ValueList list; 117 Services::ValueList list;
118 emit foundServices( remDevice, list ); 118 emit foundServices( remDevice, list );
119 } 119 }
120} 120}
121void Manager::searchServices( const RemoteDevice& dev){ 121void Manager::searchServices( const RemoteDevice& dev){
122 searchServices( dev.mac() ); 122 searchServices( dev.mac() );
123} 123}
124QString Manager::toDevice( const QString& /*mac*/ ){ 124QString Manager::toDevice( const QString& /*mac*/ ){
125 return QString::null; 125 return QString::null;
126} 126}
127QString Manager::toMac( const QString &/*device*/ ){ 127QString Manager::toMac( const QString &/*device*/ ){
128 return QString::null; 128 return QString::null;
129} 129}
130void Manager::slotProcessExited(OProcess* proc ) { 130void Manager::slotProcessExited(OProcess* proc ) {
131 bool conn= false; 131 bool conn= false;
132 if (proc->normalExit() && proc->exitStatus() == 0 ) 132 if (proc->normalExit() && proc->exitStatus() == 0 )
133 conn = true; 133 conn = true;
134 134
135 QString name = QString::fromLatin1(proc->name() ); 135 QString name = QString::fromLatin1(proc->name() );
136 emit available( name, conn ); 136 emit available( name, conn );
137 delete proc; 137 delete proc;
138} 138}
139void Manager::slotSDPOut(OProcess* proc, char* ch, int len) 139void Manager::slotSDPOut(OProcess* proc, char* ch, int len)
140{ 140{
141 QCString str(ch, len+1 ); 141 QCString str(ch, len+1 );
142 qWarning("SDP:%s", str.data() ); 142 qWarning("SDP:%s", str.data() );
143 QMap<QString, QString>::Iterator it; 143 QMap<QString, QString>::Iterator it;
144 it = m_out.find(proc->name() ); 144 it = m_out.find(proc->name() );
145 QString string; 145 QString string;
146 if ( it != m_out.end() ) { 146 if ( it != m_out.end() ) {
147 string = it.data(); 147 string = it.data();
148 } 148 }
149 string.append( str ); 149 string.append( str );
150 m_out.replace( proc->name(), string ); 150 m_out.replace( proc->name(), string );
151 151
152} 152}
153void Manager::slotSDPExited( OProcess* proc) 153void Manager::slotSDPExited( OProcess* proc)
154{ 154{
155 qWarning("proc name %s", proc->name() ); 155 qWarning("proc name %s", proc->name() );
156 Services::ValueList list; 156 Services::ValueList list;
157 if (proc->normalExit() ) { 157 if (proc->normalExit() ) {
158 QMap<QString, QString>::Iterator it = m_out.find( proc->name() ); 158 QMap<QString, QString>::Iterator it = m_out.find( proc->name() );
159 if ( it != m_out.end() ) { 159 if ( it != m_out.end() ) {
160 qWarning("found process" ); 160 qWarning("found process" );
161 list = parseSDPOutput( it.data() ); 161 list = parseSDPOutput( it.data() );
162 m_out.remove( it ); 162 m_out.remove( it );
163 } 163 }
164 } 164 }
165 emit foundServices( proc->name(), list ); 165 emit foundServices( proc->name(), list );
166 delete proc; 166 delete proc;
167} 167}
168Services::ValueList Manager::parseSDPOutput( const QString& out ) { 168Services::ValueList Manager::parseSDPOutput( const QString& out ) {
169 Services::ValueList list; 169 Services::ValueList list;
170 qWarning("parsing output" ); 170 qWarning("parsing output" );
171 Parser parser( out ); 171 Parser parser( out );
172 list = parser.services(); 172 list = parser.services();
173 return list; 173 return list;
174} 174}
175 175
176void Manager::slotHCIExited(OProcess* proc ) { 176void Manager::slotHCIExited(OProcess* proc ) {
177 qWarning("process exited"); 177 qWarning("process exited");
178 RemoteDevice::ValueList list; 178 RemoteDevice::ValueList list;
179 if (proc->normalExit() ) { 179 if (proc->normalExit() ) {
180 qWarning("normalExit %s", proc->name() ); 180 qWarning("normalExit %s", proc->name() );
181 QMap<QString, QString>::Iterator it = m_devices.find(proc->name() ); 181 QMap<QString, QString>::Iterator it = m_devices.find(proc->name() );
182 if (it != m_devices.end() ) { 182 if (it != m_devices.end() ) {
183 qWarning("!= end ;)"); 183 qWarning("!= end ;)");
184 list = parseHCIOutput( it.data() ); 184 list = parseHCIOutput( it.data() );
185 m_devices.remove( it ); 185 m_devices.remove( it );
186 } 186 }
187 } 187 }
188 emit foundDevices( proc->name(), list ); 188 emit foundDevices( proc->name(), list );
189 delete proc; 189 delete proc;
190} 190}
191void Manager::slotHCIOut(OProcess* proc, char* ch, int len) { 191void Manager::slotHCIOut(OProcess* proc, char* ch, int len) {
192 QCString str( ch, len+1 ); 192 QCString str( ch, len+1 );
193 qWarning("hci: %s", str.data() ); 193 qWarning("hci: %s", str.data() );
194 QMap<QString, QString>::Iterator it; 194 QMap<QString, QString>::Iterator it;
195 it = m_devices.find( proc->name() ); 195 it = m_devices.find( proc->name() );
196 qWarning("proc->name %s", proc->name() ); 196 qWarning("proc->name %s", proc->name() );
197 QString string; 197 QString string;
198 if (it != m_devices.end() ) { 198 if (it != m_devices.end() ) {
199 qWarning("slotHCIOut "); 199 qWarning("slotHCIOut ");
200 string = it.data(); 200 string = it.data();
201 } 201 }
202 string.append( str ); 202 string.append( str );
203 203
204 m_devices.replace( proc->name(), string ); 204 m_devices.replace( proc->name(), string );
205} 205}
206RemoteDevice::ValueList Manager::parseHCIOutput(const QString& output ) { 206RemoteDevice::ValueList Manager::parseHCIOutput(const QString& output ) {
207 qWarning("parseHCI %s", output.latin1() ); 207 qWarning("parseHCI %s", output.latin1() );
208 RemoteDevice::ValueList list; 208 RemoteDevice::ValueList list;
209 QStringList strList = QStringList::split('\n', output ); 209 QStringList strList = QStringList::split('\n', output );
210 QStringList::Iterator it; 210 QStringList::Iterator it;
211 QString str; 211 QString str;
212 for ( it = strList.begin(); it != strList.end(); ++it ) { 212 for ( it = strList.begin(); it != strList.end(); ++it ) {
213 str = (*it).stripWhiteSpace(); 213 str = (*it).stripWhiteSpace();
214 qWarning("OpieTooth %s", str.latin1() ); 214 qWarning("OpieTooth %s", str.latin1() );
215 int pos = str.findRev(':' ); 215 int pos = str.findRev(':' );
216 if ( pos > 0 ) { 216 if ( pos > 0 ) {
217 QString mac = str.left(17 ); 217 QString mac = str.left(17 );
218 str.remove( 0, 17 ); 218 str.remove( 0, 17 );
219 qWarning("mac %s", mac.latin1() ); 219 qWarning("mac %s", mac.latin1() );
220 qWarning("rest:%s", str.latin1() ); 220 qWarning("rest:%s", str.latin1() );
221 RemoteDevice rem( mac , str.stripWhiteSpace() ); 221 RemoteDevice rem( mac , str.stripWhiteSpace() );
222 list.append( rem ); 222 list.append( rem );
223 } 223 }
224 } 224 }
225 return list; 225 return list;
226} 226}
227
228////// hcitool cc and hcitool con
229
230/**
231 * Create it on the stack as don't care
232 * so we don't need to care for it
233 * cause hcitool gets reparented
234 */
235void Manager::connectTo( const QString& mac) {
236 OProcess proc;
237 proc << "hcitool";
238 proc << "cc";
239 proc << "mac";
240 proc.start(OProcess::DontCare); // the lib does not care at this point
241}
242
243
244void Manager::searchConnections() {
245 qWarning("searching connections?");
246 OProcess* proc = new OProcess();
247 m_hcitoolCon = QString::null;
248
249 connect(proc, SIGNAL(processExited(OProcess*) ),
250 this, SLOT(slotConnectionExited( OProcess*) ) );
251 connect(proc, SIGNAL(receivedStdout(OProcess*, char*, int) ),
252 this, SLOT(slotConnectionOutput(OProcess*, char*, int) ) );
253 *proc << "hcitool";
254 *proc << "con";
255
256 if (!proc->start(OProcess::NotifyOnExit, OProcess::AllOutput) ) {
257 Connection::ValueList list;
258 emit connections( list );
259 delete proc;
260 }
261}
262void Manager::slotConnectionExited( OProcess* proc ) {
263 qWarning("exited");
264 Connection::ValueList list;
265 list = parseConnections( m_hcitoolCon );
266 emit connections(list );
267}
268void Manager::slotConnectionOutput(OProcess* proc, char* cha, int len) {
269 QCString str(cha, len );
270 m_hcitoolCon.append( str );
271 delete proc;
272}
273Connection::ValueList Manager::parseConnections( const QString& out ) {
274 Connection::ValueList list2;
275 QStringList list = QStringList::split('\n', out );
276 QStringList::Iterator it;
277 for (it = list.begin(); it != list.end(); ++it ) {
278 QString row = (*it).stripWhiteSpace();
279 QStringList value = QStringList::split(' ', row );
280 qWarning("0: %s", value[0].latin1() );
281 qWarning("1: %s", value[1].latin1() );
282 qWarning("2: %s", value[2].latin1() );
283 qWarning("3: %s", value[3].latin1() );
284 qWarning("4: %s", value[4].latin1() );
285 qWarning("5: %s", value[5].latin1() );
286 qWarning("6: %s", value[6].latin1() );
287 qWarning("7: %s", value[7].latin1() );
288 qWarning("8: %s", value[8].latin1() );
289 }
290 return list2;
291}
diff --git a/noncore/net/opietooth/lib/manager.h b/noncore/net/opietooth/lib/manager.h
index 2589e9b..b32327c 100644
--- a/noncore/net/opietooth/lib/manager.h
+++ b/noncore/net/opietooth/lib/manager.h
@@ -1,148 +1,166 @@
1 1
2#ifndef OpieToothManager_H 2#ifndef OpieToothManager_H
3#define OpieToothManager_H 3#define OpieToothManager_H
4 4
5#include <qobject.h> 5#include <qobject.h>
6#include <qstring.h> 6#include <qstring.h>
7#include <qmap.h> 7#include <qmap.h>
8#include <qvaluelist.h> 8#include <qvaluelist.h>
9 9
10#include "connection.h"
10#include "remotedevice.h" 11#include "remotedevice.h"
11#include "services.h" 12#include "services.h"
12 13
13class OProcess; 14class OProcess;
14namespace OpieTooth { 15namespace OpieTooth {
15 class Device; 16 class Device;
16 /** Manager manages a blueZ device (hci0 for example) 17 /** Manager manages a blueZ device (hci0 for example)
17 * without Manager you can control the things you 18 * without Manager you can control the things you
18 * could do from command line in a OO and asynchronus 19 * could do from command line in a OO and asynchronus
19 * way. 20 * way.
20 */ 21 */
21 class Manager : public QObject { 22 class Manager : public QObject {
22 Q_OBJECT 23 Q_OBJECT
23 public: 24 public:
24 /** c'tor whichs create a new Manager 25 /** c'tor whichs create a new Manager
25 * @param device is the device to use. Either a mac or blueZ device name 26 * @param device is the device to use. Either a mac or blueZ device name
26 * 27 *
27 */ 28 */
28 Manager( const QString &device ); 29 Manager( const QString &device );
29 30
30 /** c'tor 31 /** c'tor
31 * @param dev The Device to be managed 32 * @param dev The Device to be managed
32 * We don't care of Device so you need to delete it 33 * We don't care of Device so you need to delete it
33 */ 34 */
34 Manager( Device* dev ); 35 Manager( Device* dev );
35 36
36 /** 37 /**
37 * c'tor 38 * c'tor
38 */ 39 */
39 Manager(); 40 Manager();
40 41
41 ~Manager(); 42 ~Manager();
42 43
43 /** Set the manager to control a new device 44 /** Set the manager to control a new device
44 * @param device the new device to control (hci0 ) 45 * @param device the new device to control (hci0 )
45 */ 46 */
46 void setDevice( const QString& device ); 47 void setDevice( const QString& device );
47 48
48 /** 49 /**
49 * Convience functions for setting a new device 50 * Convience functions for setting a new device
50 */ 51 */
51 void setDevice( Device *dev ); 52 void setDevice( Device *dev );
52 53
53 /** 54 /**
54 * Wether or not a device is connected. The function 55 * Wether or not a device is connected. The function
55 * is asynchron 56 * is asynchron
56 * If device is empty it will take the currently managed 57 * If device is empty it will take the currently managed
57 * device and see if it's up 58 * device and see if it's up
58 * for Remote devices it will ping and see. 59 * for Remote devices it will ping and see.
59 * @param either mac or hciX 60 * @param either mac or hciX
60 */ 61 */
61 void isAvailable(const QString& device= QString::null ); 62 void isAvailable(const QString& device= QString::null );
62 63
63 /** 64 /**
64 * same as above 65 * same as above
65 */ 66 */
66 void isAvailable(Device *dev ); 67 void isAvailable(Device *dev );
67 68
68 /** this searchs for devices reachable from the 69 /** this searchs for devices reachable from the
69 * currently managed device 70 * currently managed device
70 * or from device if @param device is not empty 71 * or from device if @param device is not empty
71 */ 72 */
72 void searchDevices(const QString& device= QString::null ); 73 void searchDevices(const QString& device= QString::null );
73 /** same as above 74 /** same as above
74 * 75 *
75 */ 76 */
76 void searchDevices(Device *d ); 77 void searchDevices(Device *d );
77 78
78 /** 79 /**
79 * This will add the service @param name 80 * This will add the service @param name
80 * to the sdpd daemon 81 * to the sdpd daemon
81 * It will start the daemon if necessary 82 * It will start the daemon if necessary
82 */ 83 */
83 void addService(const QString &name ); 84 void addService(const QString &name );
84 85
85 /** 86 /**
86 * This will add the services @param names 87 * This will add the services @param names
87 * to the sdpd daemon 88 * to the sdpd daemon
88 * It will start the daemon if necessary 89 * It will start the daemon if necessary
89 */ 90 */
90 void addServices( const QStringList& names ); 91 void addServices( const QStringList& names );
91 92
92 /** 93 /**
93 * This removes a service from the sdps 94 * This removes a service from the sdps
94 */ 95 */
95 void removeService(const QString &name ); 96 void removeService(const QString &name );
96 97
97 /** 98 /**
98 * Removes a list from the sdpd 99 * Removes a list from the sdpd
99 */ 100 */
100 void removeServices(const QStringList& ); 101 void removeServices(const QStringList& );
101 102
102 /** 103 /**
103 * search for services on a remote device 104 * search for services on a remote device
104 * 105 *
105 */ 106 */
106 void searchServices( const QString& remDevice ); 107 void searchServices( const QString& remDevice );
107 108
108 /** 109 /**
109 * search for services on a remote device 110 * search for services on a remote device
110 */ 111 */
111 void searchServices( const RemoteDevice& ); 112 void searchServices( const RemoteDevice& );
113
114 /**
115 * Starts to connect to the device
116 * in @param
117 */
118 void connectTo(const QString& );
119
120 /**
121 * Searches for active connections
122 * the result is emitted with the
123 * connections signal
124 */
125 void searchConnections();
126
127//// not implemented yet
112 /*static*/ QString toDevice( const QString& mac ); 128 /*static*/ QString toDevice( const QString& mac );
113 /*static*/ QString toMac( const QString &device ); 129 /*static*/ QString toMac( const QString &device );
130//// not implemented yet over
114 131
115 signals: 132 signals:
116 // device either mac or dev name 133 // device either mac or dev name
117 // the first device is the device which you access 134 // the first device is the device which you access
118 void available( const QString& device, bool connected ); 135 void available( const QString& device, bool connected );
119 void addedService( const QString& service, bool added ); 136 void addedService( const QString& service, bool added );
120 void removedService( const QString& service, bool removed ); 137 void removedService( const QString& service, bool removed );
121 void foundServices( const QString& device, Services::ValueList ); 138 void foundServices( const QString& device, Services::ValueList );
122 void foundDevices( const QString& device, RemoteDevice::ValueList ); 139 void foundDevices( const QString& device, RemoteDevice::ValueList );
123 void connections( Connection::ValueList ); 140 void connections( Connection::ValueList );
124 141
125private slots: 142private slots:
126 void slotProcessExited(OProcess* ); 143 void slotProcessExited(OProcess* );
127 144
128 void slotSDPExited(OProcess*); 145 void slotSDPExited(OProcess*);
129 void slotSDPOut(OProcess*, char*, int); 146 void slotSDPOut(OProcess*, char*, int);
130 147
131 void slotHCIExited(OProcess* ); 148 void slotHCIExited(OProcess* );
132 void slotHCIOut(OProcess*, char*, int ); 149 void slotHCIOut(OProcess*, char*, int );
133 150
134 void slotConnectionExited(OProcess* ); 151 void slotConnectionExited(OProcess* );
135 void slotConnectionOutput(OProcess*, char*, int ); 152 void slotConnectionOutput(OProcess*, char*, int );
136 private: 153 private:
137 Services::ValueList parseSDPOutput( const QString& ); 154 Services::ValueList parseSDPOutput( const QString& );
138 RemoteDevice::ValueList parseHCIOutput( const QString& ); 155 RemoteDevice::ValueList parseHCIOutput( const QString& );
156 Connection::ValueList parseConnections( const QString& );
139 OProcess *m_hcitool; 157 OProcess *m_hcitool;
140 OProcess *m_sdp; // not only one 158 OProcess *m_sdp; // not only one
141 QString m_device; 159 QString m_device;
142 QMap<QString, QString> m_out; 160 QMap<QString, QString> m_out;
143 QMap<QString, QString> m_devices; 161 QMap<QString, QString> m_devices;
144 QString m_hcitoolCon; 162 QString m_hcitoolCon;
145 }; 163 };
146}; 164};
147 165
148#endif 166#endif