-rw-r--r-- | noncore/net/opietooth/lib/manager.cc | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/noncore/net/opietooth/lib/manager.cc b/noncore/net/opietooth/lib/manager.cc index 59ade6d..8ddcfe8 100644 --- a/noncore/net/opietooth/lib/manager.cc +++ b/noncore/net/opietooth/lib/manager.cc | |||
@@ -237,64 +237,67 @@ void Manager::connectTo( const QString& mac) { | |||
237 | proc << "hcitool"; | 237 | proc << "hcitool"; |
238 | proc << "cc"; | 238 | proc << "cc"; |
239 | proc << mac; | 239 | proc << mac; |
240 | proc.start(OProcess::DontCare); // the lib does not care at this point | 240 | proc.start(OProcess::DontCare); // the lib does not care at this point |
241 | } | 241 | } |
242 | 242 | ||
243 | 243 | ||
244 | void Manager::searchConnections() { | 244 | void Manager::searchConnections() { |
245 | qWarning("searching connections?"); | 245 | qWarning("searching connections?"); |
246 | OProcess* proc = new OProcess(); | 246 | OProcess* proc = new OProcess(); |
247 | m_hcitoolCon = QString::null; | 247 | m_hcitoolCon = QString::null; |
248 | 248 | ||
249 | connect(proc, SIGNAL(processExited(OProcess*) ), | 249 | connect(proc, SIGNAL(processExited(OProcess*) ), |
250 | this, SLOT(slotConnectionExited( OProcess*) ) ); | 250 | this, SLOT(slotConnectionExited( OProcess*) ) ); |
251 | connect(proc, SIGNAL(receivedStdout(OProcess*, char*, int) ), | 251 | connect(proc, SIGNAL(receivedStdout(OProcess*, char*, int) ), |
252 | this, SLOT(slotConnectionOutput(OProcess*, char*, int) ) ); | 252 | this, SLOT(slotConnectionOutput(OProcess*, char*, int) ) ); |
253 | *proc << "hcitool"; | 253 | *proc << "hcitool"; |
254 | *proc << "con"; | 254 | *proc << "con"; |
255 | 255 | ||
256 | if (!proc->start(OProcess::NotifyOnExit, OProcess::AllOutput) ) { | 256 | if (!proc->start(OProcess::NotifyOnExit, OProcess::AllOutput) ) { |
257 | ConnectionState::ValueList list; | 257 | ConnectionState::ValueList list; |
258 | emit connections( list ); | 258 | emit connections( list ); |
259 | delete proc; | 259 | delete proc; |
260 | } | 260 | } |
261 | } | 261 | } |
262 | void Manager::slotConnectionExited( OProcess* proc ) { | 262 | void Manager::slotConnectionExited( OProcess* proc ) { |
263 | qWarning("<<<<<<<<<<<<<<<<<exited"); | 263 | qWarning("<<<<<<<<<<<<<<<<<exited"); |
264 | ConnectionState::ValueList list; | 264 | ConnectionState::ValueList list; |
265 | list = parseConnections( m_hcitoolCon ); | 265 | list = parseConnections( m_hcitoolCon ); |
266 | emit connections(list ); | 266 | emit connections(list ); |
267 | delete proc; | 267 | delete proc; |
268 | } | 268 | } |
269 | void Manager::slotConnectionOutput(OProcess* proc, char* cha, int len) { | 269 | void Manager::slotConnectionOutput(OProcess* /*proc*/, char* cha, int len) { |
270 | QCString str(cha, len ); | 270 | QCString str(cha, len ); |
271 | m_hcitoolCon.append( str ); | 271 | m_hcitoolCon.append( str ); |
272 | //delete proc; | 272 | //delete proc; |
273 | } | 273 | } |
274 | ConnectionState::ValueList Manager::parseConnections( const QString& out ) { | 274 | ConnectionState::ValueList Manager::parseConnections( const QString& out ) { |
275 | ConnectionState::ValueList list2; | 275 | ConnectionState::ValueList list2; |
276 | QStringList list = QStringList::split('\n', out ); | 276 | QStringList list = QStringList::split('\n', out ); |
277 | QStringList::Iterator it; | 277 | QStringList::Iterator it; |
278 | for (it = list.begin(); it != list.end(); ++it ) { | 278 | // remove the first line ( "Connections:") |
279 | it = list.begin(); | ||
280 | it = list.remove( it ); | ||
281 | for (; it != list.end(); ++it ) { | ||
279 | QString row = (*it).stripWhiteSpace(); | 282 | QString row = (*it).stripWhiteSpace(); |
280 | QStringList value = QStringList::split(' ', row ); | 283 | QStringList value = QStringList::split(' ', row ); |
281 | qWarning("0: %s", value[0].latin1() ); | 284 | qWarning("0: %s", value[0].latin1() ); |
282 | qWarning("1: %s", value[1].latin1() ); | 285 | qWarning("1: %s", value[1].latin1() ); |
283 | qWarning("2: %s", value[2].latin1() ); | 286 | qWarning("2: %s", value[2].latin1() ); |
284 | qWarning("3: %s", value[3].latin1() ); | 287 | qWarning("3: %s", value[3].latin1() ); |
285 | qWarning("4: %s", value[4].latin1() ); | 288 | qWarning("4: %s", value[4].latin1() ); |
286 | qWarning("5: %s", value[5].latin1() ); | 289 | qWarning("5: %s", value[5].latin1() ); |
287 | qWarning("6: %s", value[6].latin1() ); | 290 | qWarning("6: %s", value[6].latin1() ); |
288 | qWarning("7: %s", value[7].latin1() ); | 291 | qWarning("7: %s", value[7].latin1() ); |
289 | qWarning("8: %s", value[8].latin1() ); | 292 | qWarning("8: %s", value[8].latin1() ); |
290 | ConnectionState con; | 293 | ConnectionState con; |
291 | con.setDirection( value[0] == QString::fromLatin1("<") ? Outgoing : Incoming ); | 294 | con.setDirection( value[0] == QString::fromLatin1("<") ? Outgoing : Incoming ); |
292 | con.setConnectionMode( value[1] ); | 295 | con.setConnectionMode( value[1] ); |
293 | con.setMac( value[2] ); | 296 | con.setMac( value[2] ); |
294 | con.setHandle( value[4].toInt() ); | 297 | con.setHandle( value[4].toInt() ); |
295 | con.setState( value[6].toInt() ); | 298 | con.setState( value[6].toInt() ); |
296 | con.setLinkMode( value[8] == QString::fromLatin1("MASTER") ? Master : Client ); | 299 | con.setLinkMode( value[8] == QString::fromLatin1("MASTER") ? Master : Client ); |
297 | list2.append( con ); | 300 | list2.append( con ); |
298 | } | 301 | } |
299 | return list2; | 302 | return list2; |
300 | } | 303 | } |