[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [48910] branches/soc-2012-swiss_cheese/ intern/touch: Fleshed out register areaa/regions/data functions, also added appropriate vectors for each to the TOUCH_Manager header.

Nicholas Rishel rishel.nick at gmail.com
Sat Jul 14 07:28:24 CEST 2012


Revision: 48910
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=48910
Author:   nicholas_rishel
Date:     2012-07-14 05:28:17 +0000 (Sat, 14 Jul 2012)
Log Message:
-----------
Fleshed out register areaa/regions/data functions, also added appropriate vectors for each to the TOUCH_Manager header.

Fleshed out the checkRegistered area/region/data functions.

Fleshed out the addTouchEvent function

Modified Paths:
--------------
    branches/soc-2012-swiss_cheese/intern/touch/TOUCH_Manager.h
    branches/soc-2012-swiss_cheese/intern/touch/TOUCH_Types.h
    branches/soc-2012-swiss_cheese/intern/touch/intern/TOUCH_Manager.cpp

Modified: branches/soc-2012-swiss_cheese/intern/touch/TOUCH_Manager.h
===================================================================
--- branches/soc-2012-swiss_cheese/intern/touch/TOUCH_Manager.h	2012-07-14 04:43:32 UTC (rev 48909)
+++ branches/soc-2012-swiss_cheese/intern/touch/TOUCH_Manager.h	2012-07-14 05:28:17 UTC (rev 48910)
@@ -33,6 +33,7 @@
 #define __TOUCH_TOUCH_H__
 
 #include "TOUCH_Types.h"
+#include <vector>
 
 class TOUCH_Manager
 {
@@ -51,13 +52,21 @@
 	void TOUCH_RegisterRegion(STR_String context);
 	void TOUCH_RegisterData(STR_String context);
 
-	void TOUCH_AddTouchEvent(TOUCH_event_info event);
+	void TOUCH_AddTouchEvent(std::vector<TOUCH_event_info> event);
 
 private:
 	char checkRegisteredArea(STR_String area);
 	char checkRegisteredRegion(STR_String region);
 	char checkRegisteredData(STR_String data);
 
+	STR_String input_string;
+	//std::vector<TOUCH_position> touch_position_begin; XXX
+	//std::vector<TOUCH_position> touch_position_last; XXX
+
+	std::vector<TOUCH_area> registered_area;
+	std::vector<TOUCH_region> registered_region;
+	std::vector<TOUCH_data> registered_data;
+
 };
 
 #endif /* __TOUCH_TOUCH_H__ */

Modified: branches/soc-2012-swiss_cheese/intern/touch/TOUCH_Types.h
===================================================================
--- branches/soc-2012-swiss_cheese/intern/touch/TOUCH_Types.h	2012-07-14 04:43:32 UTC (rev 48909)
+++ branches/soc-2012-swiss_cheese/intern/touch/TOUCH_Types.h	2012-07-14 05:28:17 UTC (rev 48910)
@@ -41,7 +41,7 @@
 } TOUCH_state;
 
 typedef struct TOUCH_registered_context {
-	TOUCH_registered_context *prev, *next;
+	//TOUCH_registered_context *prev, *next;
 	STR_String context;
 	char encoding;
 } TOUCH_registered_context;
@@ -56,11 +56,14 @@
 	TOUCH_data data;
 } TOUCH_context;
 
+typedef struct TOUCH_position {
+	int position_x, position_y;
+} TOUCH_position;
+
 typedef struct TOUCH_event_info {
-	TOUCH_event_info *prev, *next;
-
-	int position_x, position_y;
-	char id;
+	//TOUCH_event_info *prev, *next;
+	TOUCH_position position;
+	char index;
 	TOUCH_state state;
 
 	STR_String area, region, data;

Modified: branches/soc-2012-swiss_cheese/intern/touch/intern/TOUCH_Manager.cpp
===================================================================
--- branches/soc-2012-swiss_cheese/intern/touch/intern/TOUCH_Manager.cpp	2012-07-14 04:43:32 UTC (rev 48909)
+++ branches/soc-2012-swiss_cheese/intern/touch/intern/TOUCH_Manager.cpp	2012-07-14 05:28:17 UTC (rev 48910)
@@ -43,35 +43,93 @@
 
 void TOUCH_Manager::TOUCH_RegisterArea(STR_String context)
 {
-	//TODO
+	char encoding = checkRegisteredArea(context);
+	if(encoding) {
+		TOUCH_area area = {context, encoding};
+		registered_data.push_back(area);
+	}
 }
 
 void TOUCH_Manager::TOUCH_RegisterRegion(STR_String context)
 {
-	//TODO
+	char encoding = checkRegisteredRegion(context);
+	if(encoding) {
+		TOUCH_region region = {context, encoding};
+		registered_data.push_back(region);
+	}
 }
 
 void TOUCH_Manager::TOUCH_RegisterData(STR_String context)
 {
-	//TODO
+	char encoding = checkRegisteredData(context);
+	if(encoding) {
+		TOUCH_data data = {context, encoding};
+		registered_data.push_back(data);
+	}
 }
 
-void TOUCH_Manager::TOUCH_AddTouchEvent(TOUCH_event_info event)
+void TOUCH_Manager::TOUCH_AddTouchEvent(std::vector<TOUCH_event_info> event)
 {
-	//TODO
+	for(int i = 0; i < event.size(); i++){
+		/* if index 1 is touching down for the first time, clear the input string */
+		if(event[i].state == TOUCH_DOWN) {
+			if(event[i].index == 1) {
+				input_string.Clear();
+			}
+			//touch_position_begin[i] = event[i].position; XXX
+		}
+
+		//touch_position_last[i] = event[i].position; XXX
+
+		switch(event[i].state){
+			case TOUCH_DOWN:
+				input_string += 'd';
+				break;
+			case TOUCH_MOVE:
+				input_string += 'm';
+				break;
+			case TOUCH_UP:
+				input_string += 'u';
+				break;
+			default:
+				input_string += '\0'; // XXX avoid null
+				break;
+		}
+
+		input_string += event[i].index;
+
+		input_string += checkRegisteredArea(event[i].area);
+		input_string += checkRegisteredRegion(event[i].region);
+		input_string += checkRegisteredData(event[i].data);
+	}
 }
 
-char checkRegisteredArea(STR_String area)
+char TOUCH_Manager::checkRegisteredArea(STR_String area)
 {
-	//TODO
+	for(int i = 0; i < registered_area.size(); i++) {
+		if(area == registered_area[i].context) {
+			return registered_area[i].encoding;
+		}
+	}
+	return '\0'; // XXX avoid null
 }
 
-char checkRegisteredRegion(STR_String region)
+char TOUCH_Manager::checkRegisteredRegion(STR_String region)
 {
-	//TODO
+	for(int i = 0; i < registered_region.size(); i++) {
+		if(region == registered_region[i].context) {
+			return registered_region[i].encoding;
+		}
+	}
+	return '\0'; // XXX avoid null
 }
 
-char checkRegisteredData(STR_String data)
+char TOUCH_Manager::checkRegisteredData(STR_String data)
 {
-	//TODO
+	for(int i = 0; i < registered_data.size(); i++) {
+		if(data == registered_data[i].context) {
+			return registered_data[i].encoding;
+		}
+	}
+	return '\0'; // XXX avoid null
 }




More information about the Bf-blender-cvs mailing list