00001
00002 #include "io_modem.h"
00003 #include "dialer.h"
00004
00005 IOModem::IOModem( const Profile &profile )
00006 : IOSerial( profile ) {
00007 m_profile = profile;
00008 }
00009
00010
00011 IOModem::~IOModem() {
00012 }
00013
00014
00015 void IOModem::close() {
00016
00017
00018 internDetach();
00019 Dialer d(m_profile, m_fd);
00020 d.setHangupOnly();
00021
00022 internAttach();
00023
00024
00025 IOSerial::close();
00026 }
00027
00028 bool IOModem::open() {
00029 bool ret = IOSerial::open();
00030 if(!ret) return false;
00031
00032
00033 internDetach();
00034 Dialer d(m_profile, m_fd);
00035
00036 int result = d.exec();
00037 internAttach();
00038
00039 if(result == QDialog::Accepted)
00040 {
00041 return true;
00042 }
00043 else
00044 {
00045 close();
00046 return false;
00047 }
00048 }
00049
00050 void IOModem::reload( const Profile &config ) {
00051
00052 m_device = config.readEntry("Device", MODEM_DEFAULT_DEVICE);
00053 m_baud = config.readNumEntry("Baud", MODEM_DEFAULT_BAUD);
00054 m_parity = config.readNumEntry("Parity", MODEM_DEFAULT_PARITY);
00055 m_dbits = config.readNumEntry("DataBits", MODEM_DEFAULT_DBITS);
00056 m_sbits = config.readNumEntry("StopBits", MODEM_DEFAULT_SBITS);
00057 m_flow = config.readNumEntry("Flow", MODEM_DEFAULT_FLOW);
00058
00059 m_initString = config.readEntry("InitString", MODEM_DEFAULT_INIT_STRING );
00060 m_resetString = config.readEntry("ResetString", MODEM_DEFAULT_RESET_STRING );
00061 m_dialPref1 = config.readEntry("DialPrefix1", MODEM_DEFAULT_DIAL_PREFIX1 );
00062 m_dialSuf1 = config.readEntry("DialSuffix1", MODEM_DEFAULT_DIAL_SUFFIX1 );
00063 m_dialPref2 = config.readEntry("DialPrefix2", MODEM_DEFAULT_DIAL_PREFIX1 );
00064 m_dialSuf2 = config.readEntry("DialSuffix2", MODEM_DEFAULT_DIAL_SUFFIX1 );
00065 m_dialPref3 = config.readEntry("DialPrefix3", MODEM_DEFAULT_DIAL_PREFIX1 );
00066 m_dialSuf3 = config.readEntry("DialSuffix3", MODEM_DEFAULT_DIAL_SUFFIX1 );
00067 m_connect = config.readEntry("DefaultConnect" MODEM_DEFAULT_CONNECT_STRING );
00068 m_hangup = config.readEntry("HangupString", MODEM_DEFAULT_HANGUP_STRING );
00069 m_cancel = config.readEntry("CancelString", MODEM_DEFAULT_CANCEL_STRING );
00070 m_dialTime = config.readNumEntry("DialTime", MODEM_DEFAULT_DIAL_TIME );
00071 m_delayRedial = config.readNumEntry("DelayRedial", MODEM_DEFAULT_DELAY_REDIAL );
00072 m_numberTries = config.readNumEntry("NumberTries", MODEM_DEFAULT_NUMBER_TRIES );
00073 m_dtrDropTime = config.readNumEntry("DTRDRopTime", MODEM_DEFAULT_DTR_DROP_TIME );
00074 m_bpsDetect = config.readBoolEntry("BPSDetect", MODEM_DEFAULT_BPS_DETECT );
00075 m_dcdLines = config.readBoolEntry("DCDLines", MODEM_DEFAULT_DCD_LINES );
00076 m_multiLineUntag = config.readBoolEntry("MultiLineUntag", MODEM_DEFAULT_MULTI_LINE_UNTAG );
00077 }
00078
00079
00080 QString IOModem::identifier() const {
00081 return "modem";
00082 }
00083
00084 QString IOModem::name() const {
00085 return "Modem IO Layer";
00086 }