summaryrefslogtreecommitdiff
authorzecke <zecke>2002-06-28 21:22:46 (UTC)
committer zecke <zecke>2002-06-28 21:22:46 (UTC)
commit26be5facf38c25f2b22b18a19ea7fa710f5e2236 (patch) (unidiff)
treedc78f9e3b27968675f25f8613e23d9d08499d0e8
parent63c022af051f205c8080040bf60a9221e691304b (diff)
downloadopie-26be5facf38c25f2b22b18a19ea7fa710f5e2236.zip
opie-26be5facf38c25f2b22b18a19ea7fa710f5e2236.tar.gz
opie-26be5facf38c25f2b22b18a19ea7fa710f5e2236.tar.bz2
update the parser
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opietooth/lib/manager.cc12
1 files changed, 10 insertions, 2 deletions
diff --git a/noncore/net/opietooth/lib/manager.cc b/noncore/net/opietooth/lib/manager.cc
index 2234333..e07f9da 100644
--- a/noncore/net/opietooth/lib/manager.cc
+++ b/noncore/net/opietooth/lib/manager.cc
@@ -215,77 +215,85 @@ RemoteDevice::ValueList Manager::parseHCIOutput(const QString& output ) {
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 227
228////// hcitool cc and hcitool con 228////// hcitool cc and hcitool con
229 229
230/** 230/**
231 * Create it on the stack as don't care 231 * Create it on the stack as don't care
232 * so we don't need to care for it 232 * so we don't need to care for it
233 * cause hcitool gets reparented 233 * cause hcitool gets reparented
234 */ 234 */
235void Manager::connectTo( const QString& mac) { 235void Manager::connectTo( const QString& mac) {
236 OProcess proc; 236 OProcess proc;
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
244void Manager::searchConnections() { 244void 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 Connection::ValueList list; 257 Connection::ValueList list;
258 emit connections( list ); 258 emit connections( list );
259 delete proc; 259 delete proc;
260 } 260 }
261} 261}
262void Manager::slotConnectionExited( OProcess* proc ) { 262void Manager::slotConnectionExited( OProcess* /*proc*/ ) {
263 qWarning("exited"); 263 qWarning("exited");
264 Connection::ValueList list; 264 Connection::ValueList list;
265 list = parseConnections( m_hcitoolCon ); 265 list = parseConnections( m_hcitoolCon );
266 emit connections(list ); 266 emit connections(list );
267} 267}
268void Manager::slotConnectionOutput(OProcess* proc, char* cha, int len) { 268void Manager::slotConnectionOutput(OProcess* proc, char* cha, int len) {
269 QCString str(cha, len ); 269 QCString str(cha, len );
270 m_hcitoolCon.append( str ); 270 m_hcitoolCon.append( str );
271 delete proc; 271 delete proc;
272} 272}
273Connection::ValueList Manager::parseConnections( const QString& out ) { 273Connection::ValueList Manager::parseConnections( const QString& out ) {
274 Connection::ValueList list2; 274 Connection::ValueList list2;
275 QStringList list = QStringList::split('\n', out ); 275 QStringList list = QStringList::split('\n', out );
276 QStringList::Iterator it; 276 QStringList::Iterator it;
277 for (it = list.begin(); it != list.end(); ++it ) { 277 for (it = list.begin(); it != list.end(); ++it ) {
278 QString row = (*it).stripWhiteSpace(); 278 QString row = (*it).stripWhiteSpace();
279 QStringList value = QStringList::split(' ', row ); 279 QStringList value = QStringList::split(' ', row );
280 qWarning("0: %s", value[0].latin1() ); 280 qWarning("0: %s", value[0].latin1() );
281 qWarning("1: %s", value[1].latin1() ); 281 qWarning("1: %s", value[1].latin1() );
282 qWarning("2: %s", value[2].latin1() ); 282 qWarning("2: %s", value[2].latin1() );
283 qWarning("3: %s", value[3].latin1() ); 283 qWarning("3: %s", value[3].latin1() );
284 qWarning("4: %s", value[4].latin1() ); 284 qWarning("4: %s", value[4].latin1() );
285 qWarning("5: %s", value[5].latin1() ); 285 qWarning("5: %s", value[5].latin1() );
286 qWarning("6: %s", value[6].latin1() ); 286 qWarning("6: %s", value[6].latin1() );
287 qWarning("7: %s", value[7].latin1() ); 287 qWarning("7: %s", value[7].latin1() );
288 qWarning("8: %s", value[8].latin1() ); 288 qWarning("8: %s", value[8].latin1() );
289 Connection con;
290 con.setDirection( value[0] == QString::fromLatin1("<") ? Outgoing : Incoming );
291 con.setConnectionMode( value[1] );
292 con.setMac( value[2] );
293 con.setHandle( value[4].toInt() );
294 con.setState( value[6].toInt() );
295 con.setLinkMode( value[8] == QString::fromLatin1("MASTER") ? Master : Client );
296 list2.append( con );
289 } 297 }
290 return list2; 298 return list2;
291} 299}