--- Begin Message ---
Hello,

please find attached a patch against legacy qlandkarte-svn that
enables build of more serial drivers for win32.
Compile-tested only.
The NMEA driver didn't work, so I disabled it in the selection box.

best regards,
Andreas
Index: qlandkarte/trunk/QLandkarte.pro
===================================================================
--- qlandkarte/trunk/QLandkarte.pro	(Revision 519)
+++ qlandkarte/trunk/QLandkarte.pro	(Arbeitskopie)
@@ -24,9 +24,14 @@
 
 win32 {
 SUBDIRS += sub_WinGarminUSB \
+           sub_GPSMap76 \
+           sub_EtrexLegend \
+           sub_EtrexH \
+           sub_Emap \
+           sub_NMEA \
            sub_NMEATcp \
            sub_whatGarmin \
-           sub_EtrexLegend
+           sub_whatGarminSerial
 }
 
 sub_src.subdir               = src
Index: qlandkarte/trunk/src/CDlgDevice.cpp
===================================================================
--- qlandkarte/trunk/src/CDlgDevice.cpp	(Revision 519)
+++ qlandkarte/trunk/src/CDlgDevice.cpp	(Arbeitskopie)
@@ -55,7 +55,16 @@
     comboDev->addItem("EtrexVistaCx");
     comboDev->addItem("NMEATcp");
     comboDev->addItem("infoAboutMyGarmin");
+    comboDev->addItem("Emap");
     comboDev->addItem("EtrexLegend");
+    comboDev->addItem("EtrexVista");
+    comboDev->addItem("EtrexClassic");
+    comboDev->addItem("EtrexH");
+    comboDev->addItem("EtrexEuro");
+    comboDev->addItem("GPSMap76");
+    comboDev->addItem("GPSMap76S");
+    comboDev->addItem("whatGarminSerial");
+//    comboDev->addItem("NMEA"); // FIXME
     comboDev->setCurrentIndex(0);
 
     //  Die folgende Zeile funktioniert nicht, da m_DeviceName zu diesem Zeitpunkt leer ist
Index: qlandkarte/trunk/src/device/NMEA/NMEA.pro
===================================================================
--- qlandkarte/trunk/src/device/NMEA/NMEA.pro	(Revision 519)
+++ qlandkarte/trunk/src/device/NMEA/NMEA.pro	(Arbeitskopie)
@@ -9,7 +9,9 @@
 target.path = $${QLANDKARTE_LIBDIR}
 TARGETDEPS += ../../../src/device/libgarmin.a
 LIBS += ../../../src/device/libgarmin.a
+win32:LIBS  += -L../../../libs/mingw -lpthreadGC2 -lsetupapi
 INCLUDEPATH += ../../../src/device
+win32:INCLUDEPATH   += ../../../libs/mingw/include
 MOC_DIR = .tmp
 OBJECTS_DIR = .tmp
 TARGET = NMEA
Index: qlandkarte/trunk/src/device/NMEA/CDevice.cpp
===================================================================
--- qlandkarte/trunk/src/device/NMEA/CDevice.cpp	(Revision 519)
+++ qlandkarte/trunk/src/device/NMEA/CDevice.cpp	(Arbeitskopie)
@@ -31,6 +31,10 @@
 #include <errno.h>
 #include <iostream>
 #include <sstream>
+#ifdef HAVE_MALLOC_H
+#include <malloc.h>
+#endif
+#include <stdlib.h>
 
 #ifndef HAVE_STRSEP
 /* This function was added by JP because windows dosnt have it */
@@ -99,9 +103,18 @@
 
         str=(char*) alloca(256);
         strcpy(str,GPRMCLine);
+#ifdef WIN32
+        next = strtok(str, ",*");
+#else
         next = strsep(&str, ",*");
+#endif
         while( next ) {
+#ifdef WIN32
+            next = strtok(str, ",*");
+#else
             next = strsep(&str, ",*");
+#endif
+            //      next = strsep(&str, ",*");
             i++;
             switch (i) {
                 case 2:
@@ -177,9 +190,19 @@
         //$GPGGA,181724.000,3436.6185,S,05834.6896,W,1,05,1.7,27.9,M,14.8,M,,0000*6B
         str=(char*) alloca(256);
         strcpy(str,GPGGALine);
+#ifdef WIN32
+        next = strtok(str, ",*");
+#else
         next = strsep(&str, ",*");
+#endif
+        //      next = strsep(&str, ",*");
         while( next ) {
+#ifdef WIN32
+            next = strtok(str, ",*");
+#else
             next = strsep(&str, ",*");
+#endif
+            //          next = strsep(&str, ",*");
             i++;
             switch (i) {
                 case 8:
@@ -204,9 +227,19 @@
         double epe=0l,eph=0l,epv=0l;
         str=(char*) alloca(256);
         strcpy(str,GPGSALine);
+#ifdef WIN32
+        next = strtok(str, ",*");
+#else
         next = strsep(&str, ",*");
+#endif
+        //      next = strsep(&str, ",*");
         while( next ) {
+#ifdef WIN32
+            next = strtok(str, ",*");
+#else
             next = strsep(&str, ",*");
+#endif
+            //          next = strsep(&str, ",*");
             i++;
             switch (i) {
                 case 15:
Index: qlandkarte/trunk/src/device/NMEA/loader.cpp
===================================================================
--- qlandkarte/trunk/src/device/NMEA/loader.cpp	(Revision 519)
+++ qlandkarte/trunk/src/device/NMEA/loader.cpp	(Arbeitskopie)
@@ -27,8 +27,13 @@
     static CDevice * device = 0;
 }
 
+#ifdef WIN32
+#define WIN_EXPORT __declspec(dllexport)
+#else
+#define WIN_EXPORT
+#endif
 
-extern "C" Garmin::IDevice * initNMEA(const char * version)
+extern "C" WIN_EXPORT Garmin::IDevice * initNMEA(const char * version)
 {
     if(strncmp(version,INTERFACE_VERSION,5) != 0) {
         return 0;
Index: qlandkarte/trunk/src/device/Emap/Emap.pro
===================================================================
--- qlandkarte/trunk/src/device/Emap/Emap.pro	(Revision 519)
+++ qlandkarte/trunk/src/device/Emap/Emap.pro	(Arbeitskopie)
@@ -9,7 +9,9 @@
 target.path = $${QLANDKARTE_LIBDIR}
 TARGETDEPS += ../../../src/device/libgarmin.a
 LIBS += ../../../src/device/libgarmin.a
+win32:LIBS  += -L../../../libs/mingw -lpthreadGC2 -lsetupapi
 INCLUDEPATH += ../../../src/device
+win32:INCLUDEPATH   += ../../../libs/mingw/include
 MOC_DIR = .tmp
 OBJECTS_DIR = .tmp
 TARGET = Emap
Index: qlandkarte/trunk/src/device/Emap/loader.cpp
===================================================================
--- qlandkarte/trunk/src/device/Emap/loader.cpp	(Revision 519)
+++ qlandkarte/trunk/src/device/Emap/loader.cpp	(Arbeitskopie)
@@ -27,8 +27,13 @@
     static CDevice * device = 0;
 }
 
+#ifdef WIN32
+#define WIN_EXPORT __declspec(dllexport)
+#else
+#define WIN_EXPORT
+#endif
 
-extern "C" Garmin::IDevice * initEmap(const char * version)
+extern "C" WIN_EXPORT Garmin::IDevice * initEmap(const char * version)
 {
     if(strncmp(version,INTERFACE_VERSION,5) != 0) {
         return 0;
Index: qlandkarte/trunk/src/device/EtrexH/loader.cpp
===================================================================
--- qlandkarte/trunk/src/device/EtrexH/loader.cpp	(Revision 519)
+++ qlandkarte/trunk/src/device/EtrexH/loader.cpp	(Arbeitskopie)
@@ -27,8 +27,13 @@
     static CDevice * device = 0;
 }
 
+#ifdef WIN32
+#define WIN_EXPORT __declspec(dllexport)
+#else
+#define WIN_EXPORT
+#endif
 
-extern "C" Garmin::IDevice * initEtrexH(const char * version)
+extern "C" WIN_EXPORT Garmin::IDevice * initEtrexH(const char * version)
 {
     if(strncmp(version,INTERFACE_VERSION,5) != 0) {
         return 0;
@@ -43,7 +48,7 @@
     return EtrexH::device;
 }
 
-extern "C" Garmin::IDevice * initEtrexEuro(const char * version)
+extern "C" WIN_EXPORT Garmin::IDevice * initEtrexEuro(const char * version)
 {
     if(strncmp(version,INTERFACE_VERSION,5) != 0) {
         return 0;
Index: qlandkarte/trunk/src/device/EtrexH/EtrexH.pro
===================================================================
--- qlandkarte/trunk/src/device/EtrexH/EtrexH.pro	(Revision 519)
+++ qlandkarte/trunk/src/device/EtrexH/EtrexH.pro	(Arbeitskopie)
@@ -9,7 +9,9 @@
 target.path = $${QLANDKARTE_LIBDIR}
 TARGETDEPS += ../../../src/device/libgarmin.a
 LIBS += ../../../src/device/libgarmin.a
+win32:LIBS  += -L../../../libs/mingw -lpthreadGC2 -lsetupapi
 INCLUDEPATH += ../../../src/device
+win32:INCLUDEPATH   += ../../../libs/mingw/include
 MOC_DIR = .tmp
 OBJECTS_DIR = .tmp
 TARGET = EtrexH
Index: qlandkarte/trunk/src/device/whatGarminSerial/whatGarminSerial.pro
===================================================================
--- qlandkarte/trunk/src/device/whatGarminSerial/whatGarminSerial.pro	(Revision 519)
+++ qlandkarte/trunk/src/device/whatGarminSerial/whatGarminSerial.pro	(Arbeitskopie)
@@ -10,8 +10,9 @@
 TARGETDEPS += ../../../src/device/libgarmin.a
 
 LIBS += ../../../src/device/libgarmin.a
-
+win32:LIBS  += -L../../../libs/mingw -lpthreadGC2 -lsetupapi
 INCLUDEPATH += ../../../src/device
+win32:INCLUDEPATH   += ../../../libs/mingw/include
 
 MOC_DIR = .tmp
 OBJECTS_DIR = .tmp
Index: qlandkarte/trunk/src/device/whatGarminSerial/loader.cpp
===================================================================
--- qlandkarte/trunk/src/device/whatGarminSerial/loader.cpp	(Revision 519)
+++ qlandkarte/trunk/src/device/whatGarminSerial/loader.cpp	(Arbeitskopie)
@@ -27,8 +27,13 @@
     static CDevice * device = 0;
 }
 
+#ifdef WIN32
+#define WIN_EXPORT __declspec(dllexport)
+#else
+#define WIN_EXPORT
+#endif
 
-extern "C" Garmin::IDevice * initwhatGarminSerial(const char * version)
+extern "C" WIN_EXPORT Garmin::IDevice * initwhatGarminSerial(const char * version)
 {
     if(strncmp(version,INTERFACE_VERSION,5) != 0) {
         return 0;
Index: qlandkarte/trunk/src/device/GPSMap76/GPSMap76.pro
===================================================================
--- qlandkarte/trunk/src/device/GPSMap76/GPSMap76.pro	(Revision 519)
+++ qlandkarte/trunk/src/device/GPSMap76/GPSMap76.pro	(Arbeitskopie)
@@ -9,7 +9,9 @@
 target.path = $${QLANDKARTE_LIBDIR}
 TARGETDEPS += ../../../src/device/libgarmin.a
 LIBS += ../../../src/device/libgarmin.a
+win32:LIBS  += -L../../../libs/mingw -lpthreadGC2 -lsetupapi
 INCLUDEPATH += ../../../src/device
+win32:INCLUDEPATH   += ../../../libs/mingw/include
 MOC_DIR = .tmp
 OBJECTS_DIR = .tmp
 TARGET = GPSMap76
Index: qlandkarte/trunk/src/device/GPSMap76/loader.cpp
===================================================================
--- qlandkarte/trunk/src/device/GPSMap76/loader.cpp	(Revision 519)
+++ qlandkarte/trunk/src/device/GPSMap76/loader.cpp	(Arbeitskopie)
@@ -27,8 +27,13 @@
     static CDevice * device = 0;
 }
 
+#ifdef WIN32
+#define WIN_EXPORT __declspec(dllexport)
+#else
+#define WIN_EXPORT
+#endif
 
-extern "C" Garmin::IDevice * initGPSMap76(const char * version)
+extern "C" WIN_EXPORT Garmin::IDevice * initGPSMap76(const char * version)
 {
     if(strncmp(version,INTERFACE_VERSION,5) != 0) {
         return 0;
@@ -41,7 +46,7 @@
     return GPSMap76::device;
 }
 
-extern "C" Garmin::IDevice * initGPSMap76S(const char * version)
+extern "C" WIN_EXPORT Garmin::IDevice * initGPSMap76S(const char * version)
 {
     if(strncmp(version,INTERFACE_VERSION,5) != 0) {
         return 0;
Index: qlandkarte/trunk/src/CCentralResources.cpp
===================================================================
--- qlandkarte/trunk/src/CCentralResources.cpp	(Revision 519)
+++ qlandkarte/trunk/src/CCentralResources.cpp	(Arbeitskopie)
@@ -482,6 +482,42 @@
             libname     = QString("%1/EtrexLegend.dll").arg(path);
             funcname    = QString("initEtrexLegend");
         }
+        else if ( m_DeviceName == "EtrexVista" ) {
+            libname     = QString("%1/EtrexLegend.dll").arg(path);
+            funcname    = QString("initEtrexVista");
+        }
+        else if ( m_DeviceName == "EtrexClassic" ) {
+            libname     = QString("%1/EtrexLegend.dll").arg(path);
+            funcname    = QString("initEtrexClassic");
+        }
+        else if ( m_DeviceName == "EtrexH" ) {
+            libname     = QString("%1/EtrexH.dll").arg(path);
+            funcname    = QString("initEtrexH");
+        }
+        else if ( m_DeviceName == "EtrexEuro" ) {
+            libname     = QString("%1/EtrexH.dll").arg(path);
+            funcname    = QString("initEtrexEuro");
+        }
+        else if ( m_DeviceName == "Emap" ) {
+            libname     = QString("%1/Emap.dll").arg(path);
+            funcname    = QString("initEmap");
+        }
+        else if ( m_DeviceName == "GPSMap76" ) {
+            libname     = QString("%1/GPSMap76.dll").arg(path);
+            funcname    = QString("initGPSMap76");
+        }
+        else if ( m_DeviceName == "GPSMap76S" ) {
+            libname     = QString("%1/GPSMap76.dll").arg(path);
+            funcname    = QString("initGPSMap76S");
+        }
+        else if ( m_DeviceName == "whatGarminSerial" ) {
+            libname     = QString("%1/whatGarminSerial.dll").arg(path);
+            funcname    = QString("initwhatGarminSerial");
+        }
+        else if ( m_DeviceName == "NMEA" ) {
+            libname     = QString("%1/NMEA.dll").arg(path);
+            funcname    = QString("initNMEA");
+        }
         else {
             libname     = QString("%1/GPSMap60CSx.dll").arg(path);
             funcname    = QString("init%1").arg(m_DeviceName);

--- End Message ---
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
QLandkarte-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qlandkarte-users

Reply via email to