Index: trunk/BNC/src/RTCM3/RTCM3Decoder.cpp
===================================================================
--- trunk/BNC/src/RTCM3/RTCM3Decoder.cpp	(revision 6403)
+++ trunk/BNC/src/RTCM3/RTCM3Decoder.cpp	(revision 6432)
@@ -74,12 +74,8 @@
   _checkMountPoint = settings.value("miscMount").toString();
 
-  connect(this, SIGNAL(newGPSEph(gpsephemeris*)), 
-          BNC_CORE, SLOT(slotNewGPSEph(gpsephemeris*)));
-  connect(this, SIGNAL(newGlonassEph(glonassephemeris*, const QString&)), 
-          BNC_CORE, SLOT(slotNewGlonassEph(glonassephemeris*, const QString&)));
-  connect(this, SIGNAL(newGalileoEph(galileoephemeris*)), 
-          BNC_CORE, SLOT(slotNewGalileoEph(galileoephemeris*)));
-  connect(this, SIGNAL(newSBASEph(sbasephemeris*)), 
-          BNC_CORE, SLOT(slotNewSBASEph(sbasephemeris*)));
+  connect(this, SIGNAL(newGPSEph(t_ephGPS)),     BNC_CORE, SLOT(slotNewGPSEph(t_ephGPS)));
+  connect(this, SIGNAL(newGlonassEph(t_ephGlo)), BNC_CORE, SLOT(slotNewGlonassEph(t_ephGlo)));
+  connect(this, SIGNAL(newGalileoEph(t_ephGal)), BNC_CORE, SLOT(slotNewGalileoEph(t_ephGal)));
+  connect(this, SIGNAL(newSBASEph(t_ephSBAS)),   BNC_CORE, SLOT(slotNewSBASEph(t_ephSBAS)));
 
   // Mode can be either observations or corrections
@@ -378,5 +374,6 @@
           else if (rr == 1019) {
             decoded = true;
-            emit newGPSEph(new gpsephemeris(parser.ephemerisGPS));
+            t_ephGPS eph; eph.set(&parser.ephemerisGPS);
+            emit newGPSEph(eph);
           }
     
@@ -386,5 +383,6 @@
                                  parser.ephemerisGLONASS.almanac_number <= PRN_GLONASS_NUM) {
             decoded = true;
-            emit newGlonassEph(new glonassephemeris(parser.ephemerisGLONASS), _staID);
+            t_ephGlo eph; eph.set(&parser.ephemerisGLONASS);
+            emit newGlonassEph(eph);
           }
 
@@ -393,5 +391,6 @@
           else if (rr == 1045 || rr == 1046) {
             decoded = true;
-            emit newGalileoEph(new galileoephemeris(parser.ephemerisGALILEO));
+            t_ephGal eph; eph.set(&parser.ephemerisGALILEO);
+            emit newGalileoEph(eph);
           }
 
@@ -400,5 +399,6 @@
           else if (rr == 1044) {
             decoded = true;
-            emit newGPSEph(new gpsephemeris(parser.ephemerisGPS));
+            t_ephGPS eph; eph.set(&parser.ephemerisGPS);
+            emit newGPSEph(eph);
           }
 
@@ -407,5 +407,6 @@
           else if (rr == 1043) {
             decoded = true;
-            emit newSBASEph(new sbasephemeris(parser.ephemerisSBAS));
+            t_ephSBAS eph; eph.set(&parser.ephemerisSBAS);
+            emit newSBASEph(eph);
           }
         }
Index: trunk/BNC/src/RTCM3/RTCM3Decoder.h
===================================================================
--- trunk/BNC/src/RTCM3/RTCM3Decoder.h	(revision 6403)
+++ trunk/BNC/src/RTCM3/RTCM3Decoder.h	(revision 6432)
@@ -32,4 +32,5 @@
 #include "RTCM3coDecoder.h"
 #include "bncrawfile.h"
+#include "ephemeris.h"
 
 extern "C" {
@@ -47,8 +48,8 @@
  signals:
   void newMessage(QByteArray msg,bool showOnScreen);
-  void newGPSEph(gpsephemeris* gpseph);
-  void newGlonassEph(glonassephemeris* glonasseph, const QString& staID);
-  void newSBASEph(sbasephemeris* sbaseph);
-  void newGalileoEph(galileoephemeris* galileoeph);
+  void newGPSEph(t_ephGPS eph);
+  void newGlonassEph(t_ephGlo eph);
+  void newSBASEph(t_ephSBAS eph);
+  void newGalileoEph(t_ephGal eph);
 
  private:
