Diffstat (limited to 'noncore/net/opietooth/lib/manager.cc') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/net/opietooth/lib/manager.cc | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/noncore/net/opietooth/lib/manager.cc b/noncore/net/opietooth/lib/manager.cc index 177c94e..23506b3 100644 --- a/noncore/net/opietooth/lib/manager.cc +++ b/noncore/net/opietooth/lib/manager.cc | |||
@@ -85,103 +85,110 @@ void Manager::addService(const QString& name ){ | |||
85 | emit addedService( name, bo ); | 85 | emit addedService( name, bo ); |
86 | } | 86 | } |
87 | void Manager::addServices(const QStringList& list){ | 87 | void 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 | } |
92 | void Manager::removeService( const QString& name ){ | 92 | void 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 | } |
100 | void Manager::removeServices( const QStringList& list){ | 100 | void 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 | } |
105 | void Manager::searchServices( const QString& remDevice ){ | 105 | void 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 | connect(m_sdp, SIGNAL(processExited(OProcess*) ), | 110 | connect(m_sdp, SIGNAL(processExited(OProcess*) ), |
110 | this, SLOT(slotSDPExited(OProcess* ) ) ); | 111 | this, SLOT(slotSDPExited(OProcess* ) ) ); |
111 | connect(m_sdp, SIGNAL(receivedStdout(OProcess*, char*, int ) ), | 112 | connect(m_sdp, SIGNAL(receivedStdout(OProcess*, char*, int ) ), |
112 | this, SLOT(slotSDPOut(OProcess*, char*, int) ) ); | 113 | this, SLOT(slotSDPOut(OProcess*, char*, int) ) ); |
113 | if (!m_sdp->start(OProcess::NotifyOnExit, OProcess::AllOutput) ) { | 114 | if (!m_sdp->start(OProcess::NotifyOnExit, OProcess::AllOutput) ) { |
115 | qWarning("could not start sdptool" ); | ||
114 | delete m_sdp; | 116 | delete m_sdp; |
115 | Services::ValueList list; | 117 | Services::ValueList list; |
116 | emit foundServices( remDevice, list ); | 118 | emit foundServices( remDevice, list ); |
117 | } | 119 | } |
118 | } | 120 | } |
119 | void Manager::searchServices( const RemoteDevice& dev){ | 121 | void Manager::searchServices( const RemoteDevice& dev){ |
120 | searchServices( dev.mac() ); | 122 | searchServices( dev.mac() ); |
121 | } | 123 | } |
122 | QString Manager::toDevice( const QString& /*mac*/ ){ | 124 | QString Manager::toDevice( const QString& /*mac*/ ){ |
123 | return QString::null; | 125 | return QString::null; |
124 | } | 126 | } |
125 | QString Manager::toMac( const QString &/*device*/ ){ | 127 | QString Manager::toMac( const QString &/*device*/ ){ |
126 | return QString::null; | 128 | return QString::null; |
127 | } | 129 | } |
128 | void Manager::slotProcessExited(OProcess* proc ) { | 130 | void Manager::slotProcessExited(OProcess* proc ) { |
129 | bool conn= false; | 131 | bool conn= false; |
130 | if (proc->normalExit() && proc->exitStatus() == 0 ) | 132 | if (proc->normalExit() && proc->exitStatus() == 0 ) |
131 | conn = true; | 133 | conn = true; |
132 | 134 | ||
133 | QString name = QString::fromLatin1(proc->name() ); | 135 | QString name = QString::fromLatin1(proc->name() ); |
134 | emit available( name, conn ); | 136 | emit available( name, conn ); |
135 | delete proc; | 137 | delete proc; |
136 | } | 138 | } |
137 | void Manager::slotSDPOut(OProcess* proc, char* ch, int len) | 139 | void Manager::slotSDPOut(OProcess* proc, char* ch, int len) |
138 | { | 140 | { |
139 | QCString str(ch, len+1 ); | 141 | QCString str(ch, len+1 ); |
142 | qWarning("SDP:%s", str.data() ); | ||
140 | QMap<QString, QString>::Iterator it; | 143 | QMap<QString, QString>::Iterator it; |
141 | it = m_out.find(proc->name() ); | 144 | it = m_out.find(proc->name() ); |
145 | QString string; | ||
142 | if ( it != m_out.end() ) { | 146 | if ( it != m_out.end() ) { |
143 | QString string = it.data(); | 147 | string = it.data(); |
144 | string.append( str ); | ||
145 | m_out.replace( proc->name(), string ); | ||
146 | } | 148 | } |
149 | string.append( str ); | ||
150 | m_out.replace( proc->name(), string ); | ||
147 | 151 | ||
148 | } | 152 | } |
149 | void Manager::slotSDPExited( OProcess* proc) | 153 | void Manager::slotSDPExited( OProcess* proc) |
150 | { | 154 | { |
155 | qWarning("proc name %s", proc->name() ); | ||
151 | Services::ValueList list; | 156 | Services::ValueList list; |
152 | if (proc->normalExit() ) { | 157 | if (proc->normalExit() ) { |
153 | QMap<QString, QString>::Iterator it = m_out.find( proc->name() ); | 158 | QMap<QString, QString>::Iterator it = m_out.find( proc->name() ); |
154 | if ( it != m_out.end() ) { | 159 | if ( it != m_out.end() ) { |
160 | qWarning("found process" ); | ||
155 | list = parseSDPOutput( it.data() ); | 161 | list = parseSDPOutput( it.data() ); |
156 | m_out.remove( it ); | 162 | m_out.remove( it ); |
157 | } | 163 | } |
158 | } | 164 | } |
159 | emit foundServices( proc->name(), list ); | 165 | emit foundServices( proc->name(), list ); |
160 | delete proc; | 166 | delete proc; |
161 | } | 167 | } |
162 | Services::ValueList Manager::parseSDPOutput( const QString& out ) { | 168 | Services::ValueList Manager::parseSDPOutput( const QString& out ) { |
163 | Services::ValueList list; | 169 | Services::ValueList list; |
170 | qWarning("parsing output" ); | ||
164 | Parser parser( out ); | 171 | Parser parser( out ); |
165 | list = parser.services(); | 172 | list = parser.services(); |
166 | return list; | 173 | return list; |
167 | } | 174 | } |
168 | 175 | ||
169 | void Manager::slotHCIExited(OProcess* proc ) { | 176 | void Manager::slotHCIExited(OProcess* proc ) { |
170 | qWarning("process exited"); | 177 | qWarning("process exited"); |
171 | RemoteDevice::ValueList list; | 178 | RemoteDevice::ValueList list; |
172 | if (proc->normalExit() ) { | 179 | if (proc->normalExit() ) { |
173 | qWarning("normalExit %s", proc->name() ); | 180 | qWarning("normalExit %s", proc->name() ); |
174 | QMap<QString, QString>::Iterator it = m_devices.find(proc->name() ); | 181 | QMap<QString, QString>::Iterator it = m_devices.find(proc->name() ); |
175 | if (it != m_devices.end() ) { | 182 | if (it != m_devices.end() ) { |
176 | qWarning("!= end ;)"); | 183 | qWarning("!= end ;)"); |
177 | list = parseHCIOutput( it.data() ); | 184 | list = parseHCIOutput( it.data() ); |
178 | m_devices.remove( it ); | 185 | m_devices.remove( it ); |
179 | } | 186 | } |
180 | } | 187 | } |
181 | emit foundDevices( proc->name(), list ); | 188 | emit foundDevices( proc->name(), list ); |
182 | delete proc; | 189 | delete proc; |
183 | } | 190 | } |
184 | void Manager::slotHCIOut(OProcess* proc, char* ch, int len) { | 191 | void Manager::slotHCIOut(OProcess* proc, char* ch, int len) { |
185 | QCString str( ch, len+1 ); | 192 | QCString str( ch, len+1 ); |
186 | qWarning("hci: %s", str.data() ); | 193 | qWarning("hci: %s", str.data() ); |
187 | QMap<QString, QString>::Iterator it; | 194 | QMap<QString, QString>::Iterator it; |