From 460c52653ab0dcca6f19a4f492ed2c5e4e963ab0 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdepim@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kandy/src/modem.h | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 kandy/src/modem.h (limited to 'kandy/src/modem.h') diff --git a/kandy/src/modem.h b/kandy/src/modem.h new file mode 100644 index 000000000..ecb0cfe91 --- /dev/null +++ b/kandy/src/modem.h @@ -0,0 +1,124 @@ +/* + KMLOCfg + + A utility to configure the ELSA MicroLink(tm) Office modem. + + Copyright (C) 2000 Oliver Gantz + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + ------ + ELSA and MicroLink are trademarks of ELSA AG, Aachen. +*/ + +#ifndef MODEM_H +#define MODEM_H + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include + +#include +#include +#include +#include +#include + +#include "kandyprefs.h" + + + + +class Modem : public QObject +{ + Q_OBJECT +public: + Modem(KandyPrefs *kprefs, QObject *parent = 0, const char *name = 0); + virtual ~Modem(); + + void setSpeed(int speed); + void setData(int data); + void setParity(char parity); + void setStop(int stop); + + bool open(); + void close(); + + bool isOpen() { return mOpen; } + + void flush(); + + bool lockDevice(); + void unlockDevice(); + + bool dsrOn(); + bool ctsOn(); + + void writeChar(const char c); + void writeLine(const char *line); + + void timerStart(int msec); + + void receiveXModem(bool crc); + void abortXModem(); + +private slots: + void timerDone(); + + void readChar(int); + void readXChar(int); + +private: + bool mOpen; + + void init(); + void xreset(); + + uchar calcChecksum(); + ushort calcCRC(); + + bool is_locked; + struct termios init_tty; + + speed_t cspeed; + tcflag_t cflag; + + int fd; + QTimer *timer; + QSocketNotifier *sn; + + uchar buffer[1024]; + int bufpos; + + int xstate; + bool xcrc; + uchar xblock; + int xsize; + + KandyPrefs *prefs; + +signals: + void gotLine(const char *); + void gotXBlock(const uchar *, int); + void xmodemDone(bool); + void timeout(); + + void errorMessage( const QString & ); +}; + + +#endif // MODEM_H -- cgit v1.2.1