Index: trunk/demos/Sinus/src/Loop.cpp
===================================================================
--- trunk/demos/Sinus/src/Loop.cpp	(revision 157)
+++ trunk/demos/Sinus/src/Loop.cpp	(revision 214)
@@ -24,5 +24,5 @@
 #include <PushButton.h>
 #include <DataPlot1D.h>
-#include <cvmatrix.h>
+#include <Matrix.h>
 
 using namespace std;
@@ -47,5 +47,5 @@
                                    "1st order lawpass filter");
   sinus->GetPlot()->AddCurve(
-      firstLowPass->Matrix()->Element(0),
+      firstLowPass->GetMatrix()->Element(0),
       DataPlot::Blue); // add output of the filter to signal's graph
 
@@ -54,5 +54,5 @@
       sinus, sinus->GetSetupLayout()->NewRow(), "3rd order lawpass filter", 3);
   sinus->GetPlot()->AddCurve(
-      thirdLowPass->Matrix()->Element(0),
+      thirdLowPass->GetMatrix()->Element(0),
       DataPlot::Yellow); // add output of the filter to signal's graph
 
Index: trunk/demos/Sinus/src/MeanFilter.cpp
===================================================================
--- trunk/demos/Sinus/src/MeanFilter.cpp	(revision 157)
+++ trunk/demos/Sinus/src/MeanFilter.cpp	(revision 214)
@@ -13,5 +13,5 @@
 
 #include "MeanFilter.h"
-#include <cvmatrix.h>
+#include <Matrix.h>
 #include <LayoutPosition.h>
 #include <GroupBox.h>
@@ -42,5 +42,5 @@
   desc->SetElementName(0, 0,
                        "mean filter"); // name will be used for graphs and logs
-  output = new cvmatrix(this, desc, floatType, name);
+  output = new Matrix(this, desc, floatType, name);
   delete desc;
 
@@ -52,5 +52,5 @@
 MeanFilter::~MeanFilter() {}
 
-cvmatrix *MeanFilter::GetMatrix() const { return output; }
+Matrix *MeanFilter::GetMatrix() const { return output; }
 
 float MeanFilter::GetValue(void) const { return output->Value(0, 0); }
@@ -64,6 +64,11 @@
 
   float result = 0;
-  // get input argument in a cvmatrix
-  cvmatrix *input = (cvmatrix *)data;
+  // get input argument in a matrix
+  const Matrix* input = dynamic_cast<const Matrix*>(data);
+  
+  if (!input) {
+      Warn("casting %s to Matrix failed\n",data->ObjectName().c_str());
+      return;
+  }
 
   // simple (and not efficent!) implementation of the filter
Index: trunk/demos/Sinus/src/MeanFilter.h
===================================================================
--- trunk/demos/Sinus/src/MeanFilter.h	(revision 157)
+++ trunk/demos/Sinus/src/MeanFilter.h	(revision 214)
@@ -25,5 +25,5 @@
 namespace flair {
 namespace core {
-class cvmatrix;
+class Matrix;
 }
 namespace gui {
@@ -70,5 +70,5 @@
   * \return pointer to the output matrix
   */
-  core::cvmatrix *GetMatrix(void) const;
+  core::Matrix *GetMatrix(void) const;
 
   /*!
@@ -86,5 +86,5 @@
   gui::GroupBox *groupBox;
   gui::SpinBox *numberOfElements;
-  core::cvmatrix *output;
+  core::Matrix *output;
   float previousValues[MAX_NUMBER_OF_ELEMENTS]; // previous values storage
 };
Index: trunk/demos/Sinus/src/Sinus.cpp
===================================================================
--- trunk/demos/Sinus/src/Sinus.cpp	(revision 157)
+++ trunk/demos/Sinus/src/Sinus.cpp	(revision 214)
@@ -21,5 +21,5 @@
 #include <SpinBox.h>
 #include <DataPlot1D.h>
-#include <cvmatrix.h>
+#include <Matrix.h>
 #include <math.h>
 
@@ -41,5 +41,5 @@
   cvmatrix_descriptor *desc = new cvmatrix_descriptor(1, 1);
   desc->SetElementName(0, 0, "value"); // name will be used for graphs and logs
-  output = new cvmatrix((IODevice *)this, desc, floatType, name);
+  output = new Matrix((IODevice *)this, desc, floatType, name);
   delete desc;
 
@@ -94,5 +94,5 @@
 }
 
-cvmatrix *Sinus::GetMatrix(void) const { return output; }
+Matrix *Sinus::GetMatrix(void) const { return output; }
 
 float Sinus::GetValue(void) const { return output->Value(0, 0); }
Index: trunk/demos/Sinus/src/Sinus.h
===================================================================
--- trunk/demos/Sinus/src/Sinus.h	(revision 157)
+++ trunk/demos/Sinus/src/Sinus.h	(revision 214)
@@ -23,5 +23,5 @@
 namespace core {
 class FrameworkManager;
-class cvmatrix;
+class Matrix;
 }
 namespace gui {
@@ -69,5 +69,5 @@
   * \return un pointeur vers la matrice de sortie
   */
-  core::cvmatrix *GetMatrix(void) const;
+  core::Matrix *GetMatrix(void) const;
 
   /*!
@@ -113,5 +113,5 @@
   void Run(void);
 
-  core::cvmatrix *output;
+  core::Matrix *output;
   gui::Tab *mainTab;
   gui::TabWidget *tabWidget;
