--- mythgesture.cpp	2006-04-05 06:45:32.000000000 +0000
+++ mythgesture.cpp.new	2006-04-05 06:44:49.000000000 +0000
@@ -36,6 +36,8 @@
 #include <qmap.h>
 
 #include "mythgesture.h"
+#include "iostream.h"
+
 
 using namespace std;
 
@@ -61,7 +63,7 @@
     scale_ratio(scale_ratio), bin_percent(bin_percent)
 {
     /* default to an invalid event */
-    last_gesture = MythGestureEvent::MaxGesture;
+    last_gesture = MythGestureEvent::WrongGesture;
 
     /* create new private information */
     p = new MythGesturePrivate();
@@ -90,15 +92,60 @@
     p->sequences.insert("98741",MythGestureEvent::LeftThenUp);
     p->sequences.insert("12369",MythGestureEvent::RightThenDown);
     p->sequences.insert("78963",MythGestureEvent::RightThenUp);
+	
+	/*ClockWise rotation*/
+	p->sequences.insert("123698741",MythGestureEvent::ClockWise);
+	p->sequences.insert("236987412",MythGestureEvent::ClockWise);
+	p->sequences.insert("369874123",MythGestureEvent::ClockWise);
+	p->sequences.insert("698741236",MythGestureEvent::ClockWise);
+	p->sequences.insert("987412369",MythGestureEvent::ClockWise);
+	p->sequences.insert("874123698",MythGestureEvent::ClockWise);
+	p->sequences.insert("741236987",MythGestureEvent::ClockWise);
+	p->sequences.insert("412369874",MythGestureEvent::ClockWise);
+	p->sequences.insert("123698741",MythGestureEvent::ClockWise);
+	
+	/*CounterClockWise rotation*/
+	
+	p->sequences.insert("147896321",MythGestureEvent::CounterClockWise);
+	p->sequences.insert("214789632",MythGestureEvent::CounterClockWise);
+	p->sequences.insert("321478963",MythGestureEvent::CounterClockWise);
+	p->sequences.insert("632147896",MythGestureEvent::CounterClockWise);
+	p->sequences.insert("963214789",MythGestureEvent::CounterClockWise);
+	p->sequences.insert("896321478",MythGestureEvent::CounterClockWise);
+	p->sequences.insert("789632147",MythGestureEvent::CounterClockWise);
+	p->sequences.insert("478963214",MythGestureEvent::CounterClockWise);
+	p->sequences.insert("147896321",MythGestureEvent::CounterClockWise);
+	
+	
+		
+	//steps
+	p->sequences.insert("78523",MythGestureEvent::StepUp);
+	p->sequences.insert("12589",MythGestureEvent::StepDown);
+	
+	//double steps
+	p->sequences.insert("74563",MythGestureEvent::DoubleStepUp);
+	p->sequences.insert("14569",MythGestureEvent::DoubleStepDown);
+	
+	
+	
+	
+	
+	p->sequences.insert("1235789",MythGestureEvent::Z);
+	
+	
+	
+	
+	
+	
 }
 
 /* comments in header */
 void MythGesture::adjustExtremes(int x, int y)
 {
-    min_x = min(min_x, x);
-    max_x = max(max_y, x);
-    min_y = min(min_y, y);
-    max_y = max(max_y, y);
+   if (((int) x) < min_x) min_x = (int) x;
+   if (((int) x) > max_x) max_x = (int) x;
+   if (((int) y) < min_y) min_y = (int) y;
+   if (((int) y) > max_y) max_y = (int) y;
 }
 
 bool MythGesture::recording(void) const
@@ -122,12 +169,19 @@
 {
     p->m.lock();
 
+    QString trans;
     if (m_recording)
     {
         m_recording = false;
 
         /* translate before resetting maximums */
-        last_gesture = p->sequences[translate()];
+        trans=translate();
+        cout <<trans<<"\n";
+        if(p->sequences.find(trans)!=p->sequences.end())
+        	last_gesture = p->sequences[trans];
+        else
+        	last_gesture = MythGestureEvent::WrongGesture;
+        
 
         min_x = min_y = 10000;
         max_x = max_y = -1;
@@ -252,8 +306,10 @@
     }
 
     /* add the last run of points to the sequence */
-    sequence += '0' + current_bin;
-    sequence_count++;
+    if(sequence_count<=9){
+   		sequence += '0' + current_bin;
+    	sequence_count++;
+    }
     
     /* bail out on error cases */
     if (sequence_count > max_sequence) 
@@ -343,8 +399,15 @@
     "LeftThenDown",
     "RightThenUp",
     "RightThenDown",
+    "ClockWise",
+    "CounterClockWise",
+    "StepUp",
+    "StepDown",
+    "DoubleStepUp",
+    "DoubleStepDown",
+    "Z",
     "Click",
-    "MaxGesture"
+    "WrongGesture"
 };
 
 /* comments in header */
