[dasher] Rm EyetrackerFilter by merging into DefaultFilter & separating LP_TARGET_OFFSET



commit 998041744035350dc678d02e418cce2e2e29691c
Author: Alan Lawrence <acl33 inf phy cam ac uk>
Date:   Sun Sep 12 12:04:52 2010 +0100

    Rm EyetrackerFilter by merging into DefaultFilter & separating LP_TARGET_OFFSET
    
    New BP_REMAP_XTREME controls x/y compression/transform;
    existing BP_AUTOCALIBRATE controls auto offset/target adjustment
    LP_TARGET_OFFSET can be adjusted manually as well as automatically.
    rename ApplyAutoCalibration => ApplyOffset
    CDefaultFilter gets input coords once in Timer(), stores for DecorateView
      =>Simplify DecorateView, inlining DrawMouse{,Line}
    Implemented CDefaultFilter::GetSettings to return "new" settings:
      BP_REMAP_XTREME, BP_AUTOCALIBRATE, LP_TARGET_OFFSET

 Src/DasherCore/DasherInterfaceBase.cpp      |    2 -
 Src/DasherCore/DefaultFilter.cpp            |  197 +++++++++++++++++----------
 Src/DasherCore/DefaultFilter.h              |   10 +-
 Src/DasherCore/EyetrackerFilter.cpp         |   99 --------------
 Src/DasherCore/EyetrackerFilter.h           |   31 ----
 Src/DasherCore/Makefile.am                  |    2 -
 Src/DasherCore/Parameters.h                 |    8 +-
 Src/MacOSX/Dasher.xcodeproj/project.pbxproj |    8 -
 Src/iPhone/Dasher.xcodeproj/project.pbxproj |    6 -
 9 files changed, 136 insertions(+), 227 deletions(-)
---
diff --git a/Src/DasherCore/DasherInterfaceBase.cpp b/Src/DasherCore/DasherInterfaceBase.cpp
index 5a6b008..db208e6 100644
--- a/Src/DasherCore/DasherInterfaceBase.cpp
+++ b/Src/DasherCore/DasherInterfaceBase.cpp
@@ -45,7 +45,6 @@
 #include "CompassMode.h"
 #include "DefaultFilter.h"
 
-#include "EyetrackerFilter.h"
 #include "OneButtonFilter.h"
 #include "OneButtonDynamicFilter.h"
 #include "OneDimensionalFilter.h"
@@ -909,7 +908,6 @@ void CDasherInterfaceBase::CreateModules() {
     RegisterModule(new CDefaultFilter(m_pEventHandler, m_pSettingsStore, this, 3, _("Normal Control")))
   );
   RegisterModule(new COneDimensionalFilter(m_pEventHandler, m_pSettingsStore, this));
-  RegisterModule(new CEyetrackerFilter(m_pEventHandler, m_pSettingsStore, this));
 #ifndef _WIN32_WCE
   RegisterModule(new CClickFilter(m_pEventHandler, m_pSettingsStore, this));
 #else
diff --git a/Src/DasherCore/DefaultFilter.cpp b/Src/DasherCore/DefaultFilter.cpp
index 7f32047..74b2a6c 100644
--- a/Src/DasherCore/DefaultFilter.cpp
+++ b/Src/DasherCore/DefaultFilter.cpp
@@ -10,12 +10,29 @@
 
 using namespace Dasher;
 
+static SModuleSettings sSettings[] = {
+  {LP_TARGET_OFFSET, T_LONG, -100, 100, 400, 1, _("Vertical distance from mouse/gaze to target (400=screen height)")},
+  {BP_AUTOCALIBRATE, T_BOOL, -1, -1, -1, -1, _("Learn offset (previous) automatically, e.g. gazetrackers")},
+  {BP_REMAP_XTREME, T_BOOL, -1, -1, -1, -1, _("At top and bottom, scroll more and translate less (makes error-correcting easier)")},
+};
+
+bool CDefaultFilter::GetSettings(SModuleSettings **sets, int *iCount) {
+  *sets = sSettings;
+  *iCount = sizeof(sSettings) / sizeof(sSettings[0]);
+  return true;
+}
+
 CDefaultFilter::CDefaultFilter(Dasher::CEventHandler * pEventHandler, CSettingsStore *pSettingsStore, CDasherInterfaceBase *pInterface, ModuleID_t iID, const char *szName)
   : CInputFilter(pEventHandler, pSettingsStore, pInterface, iID, 1, szName) {
   m_pStartHandler = 0;
   m_pAutoSpeedControl = new CAutoSpeedControl(m_pEventHandler, m_pSettingsStore);
 
   CreateStartHandler();
+  
+  // Initialize autocalibration (i.e. seen nothing yet)
+  m_iSum = 0;
+  
+  m_iCounter = 0;
 }
 
 CDefaultFilter::~CDefaultFilter() {
@@ -26,13 +43,60 @@ bool CDefaultFilter::DecorateView(CDasherView *pView) {
 
   bool bDidSomething(false);
 
+  if (GetBoolParameter(BP_DASHER_PAUSED)) {
+    //Timer() is not retrieving input coordinates, so we'd better do so here...
+    pView->GetCoordinates(m_iLastX, m_iLastY);
+    ApplyTransform(m_iLastX, m_iLastY);
+  }
+
   if(GetBoolParameter(BP_DRAW_MOUSE)) {
-    DrawMouse(pView);
+    //Draw a small box at the current mouse position
+    pView->DasherDrawCentredRectangle(m_iLastX, m_iLastY, 5, 2, false);
+
     bDidSomething = true;
   }
 
   if(GetBoolParameter(BP_DRAW_MOUSE_LINE)) {
-    DrawMouseLine(pView);
+    // Draw a line from (LP_OX, LP_OY) to the current mouse position
+    myint x[2];
+    myint y[2];
+
+    // Start of line is the crosshair location
+    x[0] = (myint)GetLongParameter(LP_OX);
+    y[0] = (myint)GetLongParameter(LP_OY);
+
+    x[1] = m_iLastX;
+    y[1] = m_iLastY;
+
+    // Actually plot the line
+    if (GetBoolParameter(BP_CURVE_MOUSE_LINE))
+      pView->DasherSpaceLine(x[0],y[0],x[1],y[1], GetLongParameter(LP_LINE_WIDTH), 1);
+    else
+      pView->DasherPolyline(x, y, 2, GetLongParameter(LP_LINE_WIDTH), 1);
+
+  /*  // Plot a brachistochrone
+
+  const int noOfPoints = 18;
+  myint X[noOfPoints];
+  myint Y[noOfPoints];
+  myint CenterXY[2]; 
+  X[0] = x[0];
+  Y[0] = y[0];
+  X[noOfPoints-1] = 0;
+  Y[noOfPoints-1] = y[1];
+  CenterXY[0] = 0; CenterXY[1] = 0.5*((double)(X[0]*X[0])/(double)(Y[0]-Y[noOfPoints-1])+(Y[0]+Y[noOfPoints-1]));
+ 
+  double angle = (((Y[noOfPoints-1]>CenterXY[1])?1.5708:-1.5708) - atan((double)(Y[0]-CenterXY[1])/(double)X[0]))/(double)(noOfPoints-1);
+  for(int i = 1; i < noOfPoints-1; ++i)
+    {
+      X[i] = CenterXY[0] + cos(angle)*(X[i-1]-CenterXY[0]) - sin(angle)*(Y[i-1]-CenterXY[1]);
+      Y[i] = CenterXY[1] + sin(angle)*(X[i-1]-CenterXY[0]) + cos(angle)*(Y[i-1]-CenterXY[1]);
+    }
+
+    pView->DasherPolyline(X, Y, noOfPoints, GetLongParameter(LP_LINE_WIDTH), 2);*/
+  /*  std::cout << "(" << X[0] << "," << Y[0] << ") (" << X[noOfPoints-1] << "," << Y[noOfPoints-1] << ") "
+	    << "(" << CenterXY[0] << "," << CenterXY[1]
+	    << ") angle:" << angle << "," << angle*180.0/3.1415926 << std::endl;*/
     bDidSomething = true;
   }
   
@@ -46,13 +110,8 @@ bool CDefaultFilter::Timer(int Time, CDasherView *m_pDasherView, CDasherModel *m
   bool bDidSomething = false;
   if (!GetBoolParameter(BP_DASHER_PAUSED))
   {
-    myint iDasherX;
-    myint iDasherY;
-
-    m_pDasherView->GetCoordinates(iDasherX, iDasherY);
-
-    ApplyAutoCalibration(iDasherX, iDasherY, true);
-    ApplyTransform(iDasherX, iDasherY);
+    m_pDasherView->GetCoordinates(m_iLastX, m_iLastY);
+    ApplyTransform(m_iLastX, m_iLastY);
 
     if(GetBoolParameter(BP_STOP_OUTSIDE)) {
       myint iDasherMinX;
@@ -61,16 +120,16 @@ bool CDefaultFilter::Timer(int Time, CDasherView *m_pDasherView, CDasherModel *m
       myint iDasherMaxY;
       m_pDasherView->VisibleRegion(iDasherMinX, iDasherMinY, iDasherMaxX, iDasherMaxY);
   
-      if((iDasherX > iDasherMaxX) || (iDasherX < iDasherMinX) || (iDasherY > iDasherMaxY) || (iDasherY < iDasherMinY)) {
+      if((m_iLastX > iDasherMaxX) || (m_iLastX < iDasherMinX) || (m_iLastY > iDasherMaxY) || (m_iLastY < iDasherMinY)) {
         m_pInterface->Stop();
         return false;
       }
     }
 
-    m_pDasherModel->OneStepTowards(iDasherX,iDasherY, Time, pAdded, pNumDeleted);
+    m_pDasherModel->OneStepTowards(m_iLastX,m_iLastY, Time, pAdded, pNumDeleted);
     bDidSomething = true;
 
-    m_pAutoSpeedControl->SpeedControl(iDasherX, iDasherY, m_pDasherView);
+    m_pAutoSpeedControl->SpeedControl(m_iLastX, m_iLastY, m_pDasherView);
   }
 	
   if(m_pStartHandler)
@@ -130,69 +189,63 @@ void CDefaultFilter::CreateStartHandler() {
 
 }
 
-void CDefaultFilter::DrawMouse(CDasherView *pView) {
-  myint iDasherX;
-  myint iDasherY;
-
-  pView->GetCoordinates(iDasherX, iDasherY);
-
-  ApplyAutoCalibration(iDasherX, iDasherY, false);
-  ApplyTransform(iDasherX, iDasherY);
-
-  pView->DasherDrawCentredRectangle(iDasherX, iDasherY, 5, 2, false);
-}
-
-void CDefaultFilter::DrawMouseLine(CDasherView *pView) {
-  myint x[2];
-  myint y[2];
-
-  // Start of line is the crosshair location
-
-  x[0] = (myint)GetLongParameter(LP_OX);
-  y[0] = (myint)GetLongParameter(LP_OY);
-
-  //  myint iDasherX;
-  //myint iDasherY;
-
-  pView->GetCoordinates(x[1], y[1]);
-
-  ApplyAutoCalibration(x[1], y[1], false);
-  ApplyTransform(x[1], y[1]);
-
-  // Actually plot the line
-  if (GetBoolParameter(BP_CURVE_MOUSE_LINE))
-    pView->DasherSpaceLine(x[0],y[0],x[1],y[1], GetLongParameter(LP_LINE_WIDTH), 1);
-  else
-    pView->DasherPolyline(x, y, 2, GetLongParameter(LP_LINE_WIDTH), 1);
-
-  /*  // Plot a brachistochrone
-
-  const int noOfPoints = 18;
-  myint X[noOfPoints];
-  myint Y[noOfPoints];
-  myint CenterXY[2]; 
-  X[0] = x[0];
-  Y[0] = y[0];
-  X[noOfPoints-1] = 0;
-  Y[noOfPoints-1] = y[1];
-  CenterXY[0] = 0; CenterXY[1] = 0.5*((double)(X[0]*X[0])/(double)(Y[0]-Y[noOfPoints-1])+(Y[0]+Y[noOfPoints-1]));
- 
-  double angle = (((Y[noOfPoints-1]>CenterXY[1])?1.5708:-1.5708) - atan((double)(Y[0]-CenterXY[1])/(double)X[0]))/(double)(noOfPoints-1);
-  for(int i = 1; i < noOfPoints-1; ++i)
-    {
-      X[i] = CenterXY[0] + cos(angle)*(X[i-1]-CenterXY[0]) - sin(angle)*(Y[i-1]-CenterXY[1]);
-      Y[i] = CenterXY[1] + sin(angle)*(X[i-1]-CenterXY[0]) + cos(angle)*(Y[i-1]-CenterXY[1]);
-    }
-
-    pView->DasherPolyline(X, Y, noOfPoints, GetLongParameter(LP_LINE_WIDTH), 2);*/
-  /*  std::cout << "(" << X[0] << "," << Y[0] << ") (" << X[noOfPoints-1] << "," << Y[noOfPoints-1] << ") "
-	    << "(" << CenterXY[0] << "," << CenterXY[1]
-	    << ") angle:" << angle << "," << angle*180.0/3.1415926 << std::endl;*/
-
+double xmax(double y) {
+  // DJCM -- define a function xmax(y) thus:
+  // xmax(y) = a*[exp(b*y*y)-1] 
+  // then:  if(x<xmax(y) [if the mouse is to the RIGHT of the line xmax(y)]
+  // set x=xmax(y).  But set xmax=c if(xmax>c).
+  // I would set a=1, b=1, c=16, to start with. 
+  
+  static const int a = 1, b = 1;
+  static const double c = 100;
+  return min(c,a * (exp(b * y * y) - 1));
+  //cout << "xmax = " << xmax << endl;
 }
 
 void CDefaultFilter::ApplyTransform(myint &iDasherX, myint &iDasherY) {
+  ApplyOffset(iDasherX, iDasherY);
+  if (GetBoolParameter(BP_REMAP_XTREME)) {
+    // Y co-ordinate...
+    myint dasherOY=(myint)GetLongParameter(LP_OY); 
+    double double_y = ((iDasherY-dasherOY)/(double)(dasherOY) ); // Fraction above the crosshair
+    static const double repulsionparameter=0.5;
+    iDasherY = myint(dasherOY * (1.0 + double_y + (double_y*double_y*double_y * repulsionparameter )));
+    
+    // X co-ordinate...  
+    iDasherX = max(iDasherX,myint(GetLongParameter(LP_OX) * xmax(double_y)));
+  }
 }
 
-void CDefaultFilter::ApplyAutoCalibration(myint &iDasherX, myint &iDasherY, bool bUpdate) {
+void CDefaultFilter::ApplyOffset(myint &iDasherX, myint &iDasherY) {
+  
+  // TODO: It turns out that this was previously computed in pixels,
+  // altough everythign else made use of Dasher coordinates. Hack in a
+  // factor of 10 to get the offset in Dasher coordinates, but it
+  // would be a good idea at some point to sort this out properly.
+  
+  iDasherY += 10 * GetLongParameter(LP_TARGET_OFFSET);
+
+  if(GetBoolParameter(BP_AUTOCALIBRATE) && !GetBoolParameter(BP_DASHER_PAUSED)) {
+    // Auto-update the offset
+  
+    m_iSum += (myint)GetLongParameter(LP_OY) - iDasherY; // Distance above crosshair
+    ++m_iCounter;
+  
+    //int m_iFilterTimescale=20
+    if(++m_iCounter > 20) {
+      m_iCounter = 0;
+    
+      // 'Conditions A', as specified by DJCM.  Only make the auto-offset
+      // change if we're past the significance boundary.
+      int m_iSigBiasPixels(GetLongParameter(LP_MAX_Y)/2);
+
+      if(abs(m_iSum) > GetLongParameter(LP_MAX_Y)/2)
+        SetLongParameter(LP_TARGET_OFFSET, GetLongParameter(LP_TARGET_OFFSET) + ((m_iSum>0) ? -1 : 1));
+      //TODO, "else return" - check effectiveness with/without?
+      // old code exited now if neither above cases applied,
+      // but had TODO suggesting maybe we should _always_ reset m_iSum
+      // (as we now do here)...
+      m_iSum = 0;
+    }
+  }
 }
diff --git a/Src/DasherCore/DefaultFilter.h b/Src/DasherCore/DefaultFilter.h
index 5373fea..3e2888f 100644
--- a/Src/DasherCore/DefaultFilter.h
+++ b/Src/DasherCore/DefaultFilter.h
@@ -19,18 +19,20 @@ class CDefaultFilter : public CInputFilter {
   virtual bool DecorateView(CDasherView *pView);
   virtual bool Timer(int Time, CDasherView *m_pDasherView, CDasherModel *m_pDasherModel, Dasher::VECTOR_SYMBOL_PROB *pAdded, int *pNumDeleted, CExpansionPolicy **pol);
   virtual void KeyDown(int iTime, int iId, CDasherView *pDasherView, CDasherModel *pModel, CUserLogBase *pUserLog);
-
+  bool GetSettings(SModuleSettings **, int *);
  protected:
   virtual void CreateStartHandler();
-  virtual void ApplyAutoCalibration(myint &iDasherX, myint &iDasherY, bool bUpdate);
   virtual void ApplyTransform(myint &iDasherX, myint &iDasherY);
+  void ApplyOffset(myint &iDasherX, myint &iDasherY);
   
  private:
-  virtual void DrawMouse(CDasherView *pView);
-  virtual void DrawMouseLine(CDasherView *pView);
+  /// Last-known Dasher-coords of the target
+  myint m_iLastX, m_iLastY;
 
   CAutoSpeedControl *m_pAutoSpeedControl;
   CStartHandler *m_pStartHandler;
+  myint m_iSum;
+  int m_iCounter;
 };
 }
 /// @}
diff --git a/Src/DasherCore/Makefile.am b/Src/DasherCore/Makefile.am
index 22a2b81..a0fe3df 100644
--- a/Src/DasherCore/Makefile.am
+++ b/Src/DasherCore/Makefile.am
@@ -76,8 +76,6 @@ libdashercore_a_SOURCES = \
 		Event.h \
 		EventHandler.cpp \
 		EventHandler.h \
-		EyetrackerFilter.cpp \
-		EyetrackerFilter.h \
 		FileLogger.cpp \
 		FileLogger.h \
 		FrameRate.h \
diff --git a/Src/DasherCore/Parameters.h b/Src/DasherCore/Parameters.h
index 352711c..dfc0ee1 100644
--- a/Src/DasherCore/Parameters.h
+++ b/Src/DasherCore/Parameters.h
@@ -35,7 +35,7 @@ enum {
   BP_START_SPACE, BP_STOP_IDLE, BP_CONTROL_MODE, 
   BP_COLOUR_MODE, BP_MOUSEPOS_MODE,
   BP_PALETTE_CHANGE,
-  BP_AUTOCALIBRATE, BP_DASHER_PAUSED,
+  BP_AUTOCALIBRATE, BP_REMAP_XTREME, BP_DASHER_PAUSED,
   BP_GAME_MODE, BP_TRAINING, BP_REDRAW, BP_LM_DICTIONARY, 
   BP_LM_LETTER_EXCLUSION, BP_AUTO_SPEEDCONTROL,
   BP_LM_ADAPTIVE, BP_SOCKET_INPUT_ENABLE, BP_SOCKET_DEBUG, 
@@ -68,7 +68,7 @@ enum {
   LP_DYNAMIC_BUTTON_LAG, LP_STATIC1B_TIME, LP_STATIC1B_ZOOM,
   LP_DEMO_SPRING, LP_DEMO_NOISE_MEM, LP_DEMO_NOISE_MAG, LP_MAXZOOM, 
   LP_DYNAMIC_SPEED_INC, LP_DYNAMIC_SPEED_FREQ, LP_DYNAMIC_SPEED_DEC,
-  LP_TAP_TIME, LP_MARGIN_WIDTH, END_OF_LPS
+  LP_TAP_TIME, LP_MARGIN_WIDTH, LP_TARGET_OFFSET, END_OF_LPS
 };
 
 enum {
@@ -140,7 +140,8 @@ static bp_table boolparamtable[] = {
   {BP_COLOUR_MODE, "ColourMode", PERS, true, "ColourMode"},
   {BP_MOUSEPOS_MODE, "StartOnMousePosition", PERS, false, "StartOnMousePosition"},
   {BP_PALETTE_CHANGE, "PaletteChange", PERS, true, "PaletteChange"},
-  {BP_AUTOCALIBRATE, "Autocalibrate", PERS, true, "Autocalibrate"},
+  {BP_AUTOCALIBRATE, "Autocalibrate", PERS, true, "Automatically learn TargetOffset e.g. gazetracking"},
+  {BP_REMAP_XTREME, "RemapXtreme", PERS, false, "Pointer at extreme Y translates more and zooms less"},
   {BP_DASHER_PAUSED, "DasherPaused", !PERS, true, "Dasher Paused"},
   {BP_GAME_MODE, "GameMode", !PERS, false, "Dasher Game Mode"},
   {BP_TRAINING, "Training", !PERS, false, "Provides locking during training"},
@@ -270,6 +271,7 @@ static lp_table longparamtable[] = {
 #else
   {LP_MARGIN_WIDTH, "MarginWidth", PERS, 300, "Width of RHS margin (in Dasher co-ords)"},
 #endif
+  {LP_TARGET_OFFSET, "TargetOffset", PERS, 0, "Vertical distance between mouse pointer and target (400=screen height)"},
 };
 
 static sp_table stringparamtable[] = {
diff --git a/Src/MacOSX/Dasher.xcodeproj/project.pbxproj b/Src/MacOSX/Dasher.xcodeproj/project.pbxproj
index 2c084b6..278eca1 100755
--- a/Src/MacOSX/Dasher.xcodeproj/project.pbxproj
+++ b/Src/MacOSX/Dasher.xcodeproj/project.pbxproj
@@ -79,8 +79,6 @@
 		1948BEE60C226CFD001DFA32 /* Event.h in Headers */ = {isa = PBXBuildFile; fileRef = 1948BE400C226CFD001DFA32 /* Event.h */; };
 		1948BEE70C226CFD001DFA32 /* EventHandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1948BE410C226CFD001DFA32 /* EventHandler.cpp */; };
 		1948BEE80C226CFD001DFA32 /* EventHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 1948BE420C226CFD001DFA32 /* EventHandler.h */; };
-		1948BEE90C226CFD001DFA32 /* EyetrackerFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1948BE430C226CFD001DFA32 /* EyetrackerFilter.cpp */; };
-		1948BEEA0C226CFD001DFA32 /* EyetrackerFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 1948BE440C226CFD001DFA32 /* EyetrackerFilter.h */; };
 		1948BEEB0C226CFD001DFA32 /* FileLogger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1948BE450C226CFD001DFA32 /* FileLogger.cpp */; };
 		1948BEEC0C226CFD001DFA32 /* FileLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 1948BE460C226CFD001DFA32 /* FileLogger.h */; };
 		1948BEED0C226CFD001DFA32 /* FrameRate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1948BE470C226CFD001DFA32 /* FrameRate.h */; };
@@ -480,8 +478,6 @@
 		1948BE400C226CFD001DFA32 /* Event.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Event.h; sourceTree = "<group>"; };
 		1948BE410C226CFD001DFA32 /* EventHandler.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = EventHandler.cpp; sourceTree = "<group>"; };
 		1948BE420C226CFD001DFA32 /* EventHandler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = EventHandler.h; sourceTree = "<group>"; };
-		1948BE430C226CFD001DFA32 /* EyetrackerFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = EyetrackerFilter.cpp; sourceTree = "<group>"; };
-		1948BE440C226CFD001DFA32 /* EyetrackerFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = EyetrackerFilter.h; sourceTree = "<group>"; };
 		1948BE450C226CFD001DFA32 /* FileLogger.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = FileLogger.cpp; sourceTree = "<group>"; };
 		1948BE460C226CFD001DFA32 /* FileLogger.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FileLogger.h; sourceTree = "<group>"; };
 		1948BE470C226CFD001DFA32 /* FrameRate.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FrameRate.h; sourceTree = "<group>"; };
@@ -994,8 +990,6 @@
 				1948BE400C226CFD001DFA32 /* Event.h */,
 				1948BE410C226CFD001DFA32 /* EventHandler.cpp */,
 				1948BE420C226CFD001DFA32 /* EventHandler.h */,
-				1948BE430C226CFD001DFA32 /* EyetrackerFilter.cpp */,
-				1948BE440C226CFD001DFA32 /* EyetrackerFilter.h */,
 				1948BE450C226CFD001DFA32 /* FileLogger.cpp */,
 				1948BE460C226CFD001DFA32 /* FileLogger.h */,
 				1948BE470C226CFD001DFA32 /* FrameRate.h */,
@@ -1441,7 +1435,6 @@
 				1948BEE50C226CFD001DFA32 /* DynamicFilter.h in Headers */,
 				1948BEE60C226CFD001DFA32 /* Event.h in Headers */,
 				1948BEE80C226CFD001DFA32 /* EventHandler.h in Headers */,
-				1948BEEA0C226CFD001DFA32 /* EyetrackerFilter.h in Headers */,
 				1948BEEC0C226CFD001DFA32 /* FileLogger.h in Headers */,
 				1948BEED0C226CFD001DFA32 /* FrameRate.h in Headers */,
 				1948BEF20C226CFD001DFA32 /* InputFilter.h in Headers */,
@@ -1798,7 +1791,6 @@
 				1948BEE10C226CFD001DFA32 /* DefaultFilter.cpp in Sources */,
 				1948BEE40C226CFD001DFA32 /* DynamicFilter.cpp in Sources */,
 				1948BEE70C226CFD001DFA32 /* EventHandler.cpp in Sources */,
-				1948BEE90C226CFD001DFA32 /* EyetrackerFilter.cpp in Sources */,
 				1948BEEB0C226CFD001DFA32 /* FileLogger.cpp in Sources */,
 				1948BEF60C226CFD001DFA32 /* CTWLanguageModel.cpp in Sources */,
 				1948BEF80C226CFD001DFA32 /* DictLanguageModel.cpp in Sources */,
diff --git a/Src/iPhone/Dasher.xcodeproj/project.pbxproj b/Src/iPhone/Dasher.xcodeproj/project.pbxproj
index 3ebde2d..28f62c8 100755
--- a/Src/iPhone/Dasher.xcodeproj/project.pbxproj
+++ b/Src/iPhone/Dasher.xcodeproj/project.pbxproj
@@ -190,7 +190,6 @@
 		3344FE3A0F71717C00506EAA /* DelayedDraw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3344FDAE0F71717C00506EAA /* DelayedDraw.cpp */; };
 		3344FE3B0F71717C00506EAA /* DynamicFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3344FDAF0F71717C00506EAA /* DynamicFilter.cpp */; };
 		3344FE3C0F71717C00506EAA /* EventHandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3344FDB20F71717C00506EAA /* EventHandler.cpp */; };
-		3344FE3D0F71717C00506EAA /* EyetrackerFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3344FDB40F71717C00506EAA /* EyetrackerFilter.cpp */; };
 		3344FE3E0F71717C00506EAA /* FileLogger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3344FDB60F71717C00506EAA /* FileLogger.cpp */; };
 		3344FE3F0F71717C00506EAA /* GameLevel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3344FDB90F71717C00506EAA /* GameLevel.cpp */; };
 		3344FE400F71717C00506EAA /* GameScorer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3344FDBC0F71717C00506EAA /* GameScorer.cpp */; };
@@ -595,8 +594,6 @@
 		3344FDB10F71717C00506EAA /* Event.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Event.h; sourceTree = "<group>"; };
 		3344FDB20F71717C00506EAA /* EventHandler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EventHandler.cpp; sourceTree = "<group>"; };
 		3344FDB30F71717C00506EAA /* EventHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EventHandler.h; sourceTree = "<group>"; };
-		3344FDB40F71717C00506EAA /* EyetrackerFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EyetrackerFilter.cpp; sourceTree = "<group>"; };
-		3344FDB50F71717C00506EAA /* EyetrackerFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EyetrackerFilter.h; sourceTree = "<group>"; };
 		3344FDB60F71717C00506EAA /* FileLogger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FileLogger.cpp; sourceTree = "<group>"; };
 		3344FDB70F71717C00506EAA /* FileLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileLogger.h; sourceTree = "<group>"; };
 		3344FDB80F71717C00506EAA /* FrameRate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FrameRate.h; sourceTree = "<group>"; };
@@ -1241,8 +1238,6 @@
 				3344FDB10F71717C00506EAA /* Event.h */,
 				3344FDB20F71717C00506EAA /* EventHandler.cpp */,
 				3344FDB30F71717C00506EAA /* EventHandler.h */,
-				3344FDB40F71717C00506EAA /* EyetrackerFilter.cpp */,
-				3344FDB50F71717C00506EAA /* EyetrackerFilter.h */,
 				3344FDB60F71717C00506EAA /* FileLogger.cpp */,
 				3344FDB70F71717C00506EAA /* FileLogger.h */,
 				3344FDB80F71717C00506EAA /* FrameRate.h */,
@@ -1611,7 +1606,6 @@
 				3344FE3A0F71717C00506EAA /* DelayedDraw.cpp in Sources */,
 				3344FE3B0F71717C00506EAA /* DynamicFilter.cpp in Sources */,
 				3344FE3C0F71717C00506EAA /* EventHandler.cpp in Sources */,
-				3344FE3D0F71717C00506EAA /* EyetrackerFilter.cpp in Sources */,
 				3344FE3E0F71717C00506EAA /* FileLogger.cpp in Sources */,
 				3344FE3F0F71717C00506EAA /* GameLevel.cpp in Sources */,
 				3344FE400F71717C00506EAA /* GameScorer.cpp in Sources */,



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]