summaryrefslogtreecommitdiff
path: root/noncore/apps/opie-console/dialer.cpp
Unidiff
Diffstat (limited to 'noncore/apps/opie-console/dialer.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/apps/opie-console/dialer.cpp14
1 files changed, 1 insertions, 13 deletions
diff --git a/noncore/apps/opie-console/dialer.cpp b/noncore/apps/opie-console/dialer.cpp
index 7010594..8883b83 100644
--- a/noncore/apps/opie-console/dialer.cpp
+++ b/noncore/apps/opie-console/dialer.cpp
@@ -1,19 +1,15 @@
1#include "dialer.h" 1#include "dialer.h"
2#include "io_modem.h" 2#include "io_modem.h"
3 3
4/* OPIE */
5#include <opie2/odebug.h>
6using namespace Opie::Core;
7
8/* QT */ 4/* QT */
9#include <qlayout.h> 5#include <qlayout.h>
10#include <qprogressbar.h> 6#include <qprogressbar.h>
11#include <qlabel.h> 7#include <qlabel.h>
12#include <qpushbutton.h> 8#include <qpushbutton.h>
13#include <qapp.h> 9#include <qapp.h>
14#include <qtimer.h> 10#include <qtimer.h>
15#include <qmessagebox.h> 11#include <qmessagebox.h>
16 12
17/* STD */ 13/* STD */
18#include <unistd.h> 14#include <unistd.h>
19#include <string.h> 15#include <string.h>
@@ -100,25 +96,24 @@ void Dialer::slotCancel()
100 if(state != state_online) 96 if(state != state_online)
101 { 97 {
102 usercancel = 1; 98 usercancel = 1;
103 reset(); 99 reset();
104 } 100 }
105 else { 101 else {
106 accept(); 102 accept();
107 } 103 }
108} 104}
109 105
110void Dialer::reset() 106void Dialer::reset()
111{ 107{
112 owarn << "reset" << oendl;
113 switchState(state_cancel); 108 switchState(state_cancel);
114} 109}
115 110
116void Dialer::slotAutostart() 111void Dialer::slotAutostart()
117{ 112{
118 //state = state_preinit; 113 //state = state_preinit;
119 dial(m_profile.readEntry("Number")); 114 dial(m_profile.readEntry("Number"));
120} 115}
121 116
122void Dialer::dial(const QString& number) 117void Dialer::dial(const QString& number)
123{ 118{
124 while(state != state_online) 119 while(state != state_online)
@@ -132,36 +127,33 @@ void Dialer::dial(const QString& number)
132 } 127 }
133 128
134 if(usercancel) 129 if(usercancel)
135 { 130 {
136 // modem hangup 131 // modem hangup
137 trydial(QString::null); 132 trydial(QString::null);
138 reject(); 133 reject();
139 } 134 }
140} 135}
141 136
142void Dialer::trydial(const QString& number) 137void Dialer::trydial(const QString& number)
143{ 138{
144 owarn << "TryDial:" << number.latin1() << "" << oendl;
145 if(state != state_cancel) switchState(state_preinit); 139 if(state != state_cancel) switchState(state_preinit);
146 if(cleanshutdown) 140 if(cleanshutdown)
147 { 141 {
148 owarn << "HangupString " << m_profile.readEntry("HangupString") << oendl;
149 send(m_profile.readEntry("HangupString", MODEM_DEFAULT_HANGUP_STRING ) + "\r"); 142 send(m_profile.readEntry("HangupString", MODEM_DEFAULT_HANGUP_STRING ) + "\r");
150 } 143 }
151 144
152 if(state != state_cancel) 145 if(state != state_cancel)
153 { 146 {
154 switchState(state_init); 147 switchState(state_init);
155// owarn << "Init String " + m_profile.readEntry("InitString") << oendl;
156 send(m_profile.readEntry("InitString",MODEM_DEFAULT_INIT_STRING ) + "\r"); 148 send(m_profile.readEntry("InitString",MODEM_DEFAULT_INIT_STRING ) + "\r");
157 QString response2 = receive(); 149 QString response2 = receive();
158 if(!response2.contains("\nOK\r")) 150 if(!response2.contains("\nOK\r"))
159 reset(); 151 reset();
160 } 152 }
161 153
162 /*if(state != state_cancel) 154 /*if(state != state_cancel)
163 { 155 {
164 switchState(state_options); 156 switchState(state_options);
165 157
166 owarn << "ATM3l3" << oendl; 158 owarn << "ATM3l3" << oendl;
167 send("ATM3L3\r"); 159 send("ATM3L3\r");
@@ -174,61 +166,59 @@ void Dialer::trydial(const QString& number)
174 if(state != state_cancel) 166 if(state != state_cancel)
175 { 167 {
176 switchState(state_dialtone); 168 switchState(state_dialtone);
177 169
178 send("ATX1\r"); 170 send("ATX1\r");
179 QString response4 = receive(); 171 QString response4 = receive();
180 if(!response4.contains("\nOK\r")) 172 if(!response4.contains("\nOK\r"))
181 reset(); 173 reset();
182 } 174 }
183 175
184 if(state != state_cancel) 176 if(state != state_cancel)
185 { 177 {
186 owarn << "progress" << oendl;
187 switchState(state_dialing); 178 switchState(state_dialing);
188 179
189 // send(QString("ATDT %1\r").arg(number)); 180 // send(QString("ATDT %1\r").arg(number));
190 send(QString("%1 %2\r").arg(m_profile.readEntry("DialPrefix1", MODEM_DEFAULT_DIAL_PREFIX1 )) 181 send(QString("%1 %2\r").arg(m_profile.readEntry("DialPrefix1", MODEM_DEFAULT_DIAL_PREFIX1 ))
191 .arg(number)); 182 .arg(number));
192 183
193 QString response5 = receive(); 184 QString response5 = receive();
194 if(!response5.contains("CONNECT") ) 185 if(!response5.contains("CONNECT") )
195 { 186 {
196 if(response5.contains("BUSY")) 187 if(response5.contains("BUSY"))
197 switchState(state_dialing); 188 switchState(state_dialing);
198 else 189 else
199 { 190 {
200 QMessageBox::warning(this, 191 QMessageBox::warning(this,
201 QObject::tr("Failure"), 192 QObject::tr("Failure"),
202 QObject::tr("Dialing the number failed.")); 193 QObject::tr("<qt>Dialing the number failed.</qt>"));
203 slotCancel(); 194 slotCancel();
204 } 195 }
205 } 196 }
206 } 197 }
207 198
208 199
209 if(state != state_cancel) 200 if(state != state_cancel)
210 { 201 {
211 state = state_online; 202 state = state_online;
212 slotCancel(); 203 slotCancel();
213 } 204 }
214} 205}
215 206
216void Dialer::send(const QString& msg) 207void Dialer::send(const QString& msg)
217{ 208{
218 QString m = msg; 209 QString m = msg;
219 int bytes; 210 int bytes;
220 QString termination; 211 QString termination;
221 212
222 owarn << "Sending: " << m.latin1() << "" << oendl;
223 213
224 /*termination = "\r"; 214 /*termination = "\r";
225 //termination = m_profile.readEntry("Termination"); 215 //termination = m_profile.readEntry("Termination");
226 if(termination == "\n") m = m + "\n"; 216 if(termination == "\n") m = m + "\n";
227 else if(termination == "\r") m = m + "\r"; 217 else if(termination == "\r") m = m + "\r";
228 else m = m + "\r\n"; 218 else m = m + "\r\n";
229*/ 219*/
230 m = m.replace(QRegExp("\n"), "\r"); 220 m = m.replace(QRegExp("\n"), "\r");
231 221
232 bytes = ::write(m_fd, m.local8Bit(), strlen(m.local8Bit())); 222 bytes = ::write(m_fd, m.local8Bit(), strlen(m.local8Bit()));
233 if(bytes < 0) 223 if(bytes < 0)
234 { 224 {
@@ -243,29 +233,27 @@ QString Dialer::receive()
243 int ret; 233 int ret;
244 int counter = 0; 234 int counter = 0;
245 235
246 while(1) 236 while(1)
247 { 237 {
248 ret = ::read(m_fd, buffer, sizeof(buffer)); 238 ret = ::read(m_fd, buffer, sizeof(buffer));
249 239
250 if(ret > 0) 240 if(ret > 0)
251 { 241 {
252 for(int i = 0; i < ret; i++) 242 for(int i = 0; i < ret; i++)
253 buffer[i] = buffer[i] & 0x7F; 243 buffer[i] = buffer[i] & 0x7F;
254 buffer[ret] = 0; 244 buffer[ret] = 0;
255 owarn << "Got: " << buffer << "" << oendl;
256 buf.append(QString(buffer)); 245 buf.append(QString(buffer));
257 if(buf.contains("OK") || buf.contains("ERROR") || buf.contains("CONNECT") || (buf.contains("BUSY"))) 246 if(buf.contains("OK") || buf.contains("ERROR") || buf.contains("CONNECT") || (buf.contains("BUSY")))
258 { 247 {
259 //owarn << "Receiving: '" << buf.latin1() << "'" << oendl;
260 cleanshutdown = 1; 248 cleanshutdown = 1;
261 return buf; 249 return buf;
262 }else if (buf.contains("NO CARRIER") || buf.contains("NO DIALTONE") ) { 250 }else if (buf.contains("NO CARRIER") || buf.contains("NO DIALTONE") ) {
263 cleanshutdown = 1; 251 cleanshutdown = 1;
264 return QString::null; 252 return QString::null;
265 } 253 }
266 } 254 }
267 else if(ret < 0) 255 else if(ret < 0)
268 { 256 {
269 if(errno != EAGAIN) reset(); 257 if(errno != EAGAIN) reset();
270 else if(!(counter++ % 100)) qApp->processEvents(); 258 else if(!(counter++ % 100)) qApp->processEvents();
271 } 259 }