Diffstat (limited to 'noncore/net/opietooth/lib/manager.cc') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/net/opietooth/lib/manager.cc | 65 |
1 files changed, 65 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 | |||
@@ -224,3 +224,68 @@ RemoteDevice::ValueList Manager::parseHCIOutput(const QString& output ) { | |||
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 | */ | ||
235 | void 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 | |||
244 | void 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 | } | ||
262 | void Manager::slotConnectionExited( OProcess* proc ) { | ||
263 | qWarning("exited"); | ||
264 | Connection::ValueList list; | ||
265 | list = parseConnections( m_hcitoolCon ); | ||
266 | emit connections(list ); | ||
267 | } | ||
268 | void Manager::slotConnectionOutput(OProcess* proc, char* cha, int len) { | ||
269 | QCString str(cha, len ); | ||
270 | m_hcitoolCon.append( str ); | ||
271 | delete proc; | ||
272 | } | ||
273 | Connection::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 | } | ||