Index: /trunk/MagicSoft/Cosy/Changelog
===================================================================
--- /trunk/MagicSoft/Cosy/Changelog	(revision 8810)
+++ /trunk/MagicSoft/Cosy/Changelog	(revision 8811)
@@ -15,6 +15,16 @@
 
    * videodev/CaosFilter.h, videodev/FilterLed.h, videodev/PixClient.h,
-     videodev/PixGetter.h, videodev/Writer.h:
+     videodev/PixGetter.h, videodev/Writer.h, candrv/sdolist.h:
      - added virtual destructor as suggested by gcc 4
+
+   * devdrv/macs.[h,cc], devdrv/shaftencoder.[h,cc]:
+     - replaced timeval_t* by a const reference in all arguments of
+       member functions
+
+   * gui/MGEmbeddedCanvas.cc:
+     - replaced C-style includes (iostream.h) with C++ style (iostream)
+
+   * videodev/FilterLed.cc:
+     - initialized fImg as suggested by valgrind
 
 
Index: /trunk/MagicSoft/Cosy/devdrv/macs.cc
===================================================================
--- /trunk/MagicSoft/Cosy/devdrv/macs.cc	(revision 8810)
+++ /trunk/MagicSoft/Cosy/devdrv/macs.cc	(revision 8811)
@@ -43,5 +43,5 @@
 }
 
-void Macs::HandleSDO(WORD_t idx, BYTE_t subidx, LWORD_t val, timeval_t *tv)
+void Macs::HandleSDO(WORD_t idx, BYTE_t subidx, LWORD_t val, const timeval_t &tv)
 {
   // cout << "SdoRx: Idx=0x"<< hex << idx << "/" << (int)subidx;
@@ -86,5 +86,5 @@
 //        lout << "Actual Position: " << dec << (signed long)val << endl;
         fPos = (LWORDS_t)val;
-        fPosTime.Set(*tv);
+        fPosTime.Set(tv);
         return;
 /*
@@ -136,5 +136,5 @@
 }
 
-void Macs::HandleSDOOK(WORD_t idx, BYTE_t subidx, LWORD_t data, timeval_t *tv)
+void Macs::HandleSDOOK(WORD_t idx, BYTE_t subidx, LWORD_t data, const timeval_t &tv)
 {
     //    cout << "Node #" << dec << (int)GetId() << ": Sdo=" << hex << idx  << "/" << (int)subidx << " set." << endl;
@@ -556,5 +556,5 @@
 }
 
-void Macs::HandlePDO1(BYTE_t *data, timeval_t *tv)
+void Macs::HandlePDO1(const BYTE_t *data, const timeval_t &tv)
 {
     // FIXME!!!! Only 0x4000 should do this to be
@@ -575,8 +575,8 @@
     fStatus = data[3];
 
-    fPdoTime.Set(*tv);
-}
-
-void Macs::HandlePDO2(BYTE_t *data, timeval_t *tv)
+    fPdoTime.Set(tv);
+}
+
+void Macs::HandlePDO2(const BYTE_t *data, const timeval_t &tv)
 {
     LWORDS_t errnum = (data[0]<<24) | (data[1]<<16) | (data[2]<<8) | data[3];
@@ -727,5 +727,5 @@
 }
 
-void Macs::HandlePDO3(BYTE_t *data, timeval_t *tv)
+void Macs::HandlePDO3(const BYTE_t *data, const timeval_t &tv)
 {
     // 3    5    7    9
Index: /trunk/MagicSoft/Cosy/devdrv/macs.h
===================================================================
--- /trunk/MagicSoft/Cosy/devdrv/macs.h	(revision 8810)
+++ /trunk/MagicSoft/Cosy/devdrv/macs.h	(revision 8811)
@@ -38,11 +38,11 @@
     void StopDevice();
 
-    void HandleSDO(WORD_t idx, BYTE_t subidx, LWORD_t val, timeval_t *tv);
-    void HandleSDOOK(WORD_t idx, BYTE_t subidx, LWORD_t data, timeval_t *tv);
+    void HandleSDO(WORD_t idx, BYTE_t subidx, LWORD_t val, const timeval_t &tv);
+    void HandleSDOOK(WORD_t idx, BYTE_t subidx, LWORD_t data, const timeval_t &tv);
     //void HandleSDOError(LWORD_t data) { NodeDrv::HandleSDOError(data); }
 
-    void HandlePDO1(BYTE_t *data, timeval_t *tv);
-    void HandlePDO2(BYTE_t *data, timeval_t *tv);
-    void HandlePDO3(BYTE_t *data, timeval_t *tv);
+    void HandlePDO1(const BYTE_t *data, const timeval_t &tv);
+    void HandlePDO2(const BYTE_t *data, const timeval_t &tv);
+    void HandlePDO3(const BYTE_t *data, const timeval_t &tv);
     //void HandleNodeguard(timeval_t *tv);
 
Index: /trunk/MagicSoft/Cosy/devdrv/shaftencoder.cc
===================================================================
--- /trunk/MagicSoft/Cosy/devdrv/shaftencoder.cc	(revision 8810)
+++ /trunk/MagicSoft/Cosy/devdrv/shaftencoder.cc	(revision 8811)
@@ -17,5 +17,5 @@
     : NodeDrv(nodeid, name, out), fPos(0), fVel(0), fAcc(0),
     fTurn(0), fDirection(kUndefined), fHysteresisPos(0), fHysteresisNeg(0),
-    fLabel(NULL), fPosHasChanged(false), fDirHasChanged(false),
+    fLabel(NULL), fUpdPos(0), fPosHasChanged(false), fDirHasChanged(false),
     fReport(NULL),
     /*fTwin(0), fIsUpdated(kFALSE),*/
@@ -35,5 +35,5 @@
 }
 */
-void ShaftEncoder::HandleSDO(WORD_t idx, BYTE_t subidx, LWORD_t val, timeval_t *tv)
+void ShaftEncoder::HandleSDO(WORD_t idx, BYTE_t subidx, LWORD_t val, const timeval_t &tv)
 {
     switch (idx)
@@ -125,5 +125,5 @@
 }
 
-void ShaftEncoder::HandleSDOOK(WORD_t idx, BYTE_t subidx, LWORD_t data, timeval_t *tv)
+void ShaftEncoder::HandleSDOOK(WORD_t idx, BYTE_t subidx, LWORD_t data, const timeval_t &tv)
 {
     switch (idx)
@@ -195,5 +195,5 @@
 }
 
-void ShaftEncoder::HandlePDOType0(BYTE_t *data, timeval_t *tv)
+void ShaftEncoder::HandlePDOType0(const BYTE_t *data, const timeval_t &tv)
 {
     //
@@ -216,5 +216,5 @@
 
     fPos = pos;
-    fTime.Set(*tv);
+    fTime.Set(tv);
     fPosHasChanged = true;
 
@@ -230,5 +230,5 @@
 }
 
-void ShaftEncoder::HandlePDOType1(BYTE_t *data, timeval_t *tv)
+void ShaftEncoder::HandlePDOType1(const BYTE_t *data, const timeval_t &tv)
 {
     //
@@ -253,5 +253,5 @@
     //CheckTwin(fPos-pos);
     fPos=pos;
-    fTime.Set(*tv);
+    fTime.Set(tv);
     fPosHasChanged=true;
     //fIsUpdated=kTRUE;
@@ -271,5 +271,5 @@
 //ofstream fout("log/shaftencoder.log");
 
-void ShaftEncoder::HandlePDOType2(BYTE_t *data, timeval_t *tv)
+void ShaftEncoder::HandlePDOType2(const BYTE_t *data, const timeval_t &tv)
 {
     //
@@ -322,5 +322,5 @@
     fTurn = turn;
 
-    fTime.Set(*tv);
+    fTime.Set(tv);
     fPosHasChanged=true;
     //fIsUpdated=kTRUE;
Index: /trunk/MagicSoft/Cosy/devdrv/shaftencoder.h
===================================================================
--- /trunk/MagicSoft/Cosy/devdrv/shaftencoder.h	(revision 8810)
+++ /trunk/MagicSoft/Cosy/devdrv/shaftencoder.h	(revision 8811)
@@ -45,7 +45,7 @@
 
 
-    void HandlePDOType0(BYTE_t *data, timeval_t *tv);
-    void HandlePDOType1(BYTE_t *data, timeval_t *tv);
-    void HandlePDOType2(BYTE_t *data, timeval_t *tv);
+    void HandlePDOType0(const BYTE_t *data, const timeval_t &tv);
+    void HandlePDOType1(const BYTE_t *data, const timeval_t &tv);
+    void HandlePDOType2(const BYTE_t *data, const timeval_t &tv);
 
     void ReqPos();
@@ -64,12 +64,12 @@
     //void SetTwin(ShaftEncoder *se) { fTwin = se; }
 
-    void HandleSDO(WORD_t idx, BYTE_t subidx, LWORD_t val, timeval_t *tv);
-    void HandleSDOOK(WORD_t idx, BYTE_t subidx, LWORD_t data, timeval_t *tv);
+    void HandleSDO(WORD_t idx, BYTE_t subidx, LWORD_t val, const timeval_t &tv);
+    void HandleSDOOK(WORD_t idx, BYTE_t subidx, LWORD_t data, const timeval_t &tv);
     /*
      void HandleSDOOK(WORD_t idx, BYTE_t subidx, timeval_t *tv) { NodeDrv::HandleSDOOK(idx, subidx, tv); }
      void HandleSDOError(LWORD_t data)           { NodeDrv::HandleSDOError(data); }
      */
-    void HandlePDO1(BYTE_t *data, timeval_t *tv) { HandlePDOType2(data, tv); }
-    void HandlePDO2(BYTE_t *data, timeval_t *tv) { HandlePDOType2(data, tv); }
+    void HandlePDO1(const BYTE_t *data, const timeval_t &tv) { HandlePDOType2(data, tv); }
+    void HandlePDO2(const BYTE_t *data, const timeval_t &tv) { HandlePDOType2(data, tv); }
 
     LWORDS_t GetPos() const       { return IsZombieNode() ? 0 : fPos+fTurn*fTicks; } // FIXME? 0?
Index: /trunk/MagicSoft/Cosy/gui/MGEmbeddedCanvas.cc
===================================================================
--- /trunk/MagicSoft/Cosy/gui/MGEmbeddedCanvas.cc	(revision 8810)
+++ /trunk/MagicSoft/Cosy/gui/MGEmbeddedCanvas.cc	(revision 8811)
@@ -7,5 +7,5 @@
 #include "MGEmbeddedCanvas.h"
 
-#include <iostream.h>
+#include <iostream>
 
 #include <TList.h>
@@ -15,4 +15,6 @@
 
 ClassImp(MGEmbeddedCanvas);
+
+using namespace std;
 
 MGEmbeddedCanvas::MGEmbeddedCanvas(const char *name, const TGWindow* p,
Index: /trunk/MagicSoft/Cosy/videodev/FilterLed.cc
===================================================================
--- /trunk/MagicSoft/Cosy/videodev/FilterLed.cc	(revision 8810)
+++ /trunk/MagicSoft/Cosy/videodev/FilterLed.cc	(revision 8811)
@@ -75,5 +75,5 @@
 
 public:
-    ClusterFinder(byte *img, UInt_t w, UInt_t h) : fLimitingSize(999)
+    ClusterFinder(byte *img, UInt_t w, UInt_t h) : fImg(0), fLimitingSize(999)
     {
         fW = w;
