diff options
-rw-r--r-- | kde2/klipsi/toplevel.cpp | 12 | ||||
-rw-r--r-- | lib/rfsv.h | 7 | ||||
-rw-r--r-- | lib/rfsv16.h | 1 | ||||
-rw-r--r-- | lib/rfsv32.h | 1 |
4 files changed, 21 insertions, 0 deletions
diff --git a/kde2/klipsi/toplevel.cpp b/kde2/klipsi/toplevel.cpp index 1a7d4dd..1de43b7 100644 --- a/kde2/klipsi/toplevel.cpp +++ b/kde2/klipsi/toplevel.cpp @@ -554,6 +554,18 @@ checkConnection() { rf = rff->create(true); if (rf) { + if (rf->getProtocolVersion() == 3) { + closeConnection(); + delete timer; + timer = NULL; + KMessageBox::error(NULL, i18n( + "<QT>Your Psion is reported to be a <B>Series 3</B> " + "machine. This type of machine does <B>not support</B> the " + "remote clipboard protocol; Sorry.<BR/>" + "<B>Klipsi</B> will now terminate.</QT>"), + i18n("Protocol not supported")); + return false; + } if (!rc) { rc = new rclip(rclipSocket); Enum<rfsv::errs> ret; @@ -607,6 +607,13 @@ public: */ int getSpeed(); + /** + * Retrieves the protocol version. + * + * @returns Either 3 or 5 representing Series 3 (SIBO) or Series 5 (EPOC) + */ + virtual int getProtocolVersion() = 0; + protected: /** * Retrieves the PLP protocol name. Mainly internal use. diff --git a/lib/rfsv16.h b/lib/rfsv16.h index b0f5e98..94b6742 100644 --- a/lib/rfsv16.h +++ b/lib/rfsv16.h @@ -75,6 +75,7 @@ public: Enum<rfsv::errs> setVolumeName(const char, const char * const); u_int32_t opMode(const u_int32_t); + int getProtocolVersion() { return 3; } private: enum commands { diff --git a/lib/rfsv32.h b/lib/rfsv32.h index 2adf4d8..4de3feb 100644 --- a/lib/rfsv32.h +++ b/lib/rfsv32.h @@ -77,6 +77,7 @@ public: Enum<rfsv::errs> closedir(rfsvDirhandle &); Enum<rfsv::errs> setVolumeName(const char, const char * const); u_int32_t opMode(const u_int32_t); + int getProtocolVersion() { return 5; } private: |