[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