[dasher] Rm EyetrackerFilter by merging into DefaultFilter & separating LP_TARGET_OFFSET
- From: Patrick Welche <pwelche src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [dasher] Rm EyetrackerFilter by merging into DefaultFilter & separating LP_TARGET_OFFSET
- Date: Tue, 18 Jan 2011 17:16:35 +0000 (UTC)
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]