changeset 14:34156549d423

termapp handles signals and termination a bit better.
author samer
date Mon, 20 Feb 2012 15:38:16 +0000
parents b82da07b6800
children 0ec64c8a4820
files groupTrackKinect.xcodeproj/samer.mode1v3 groupTrackKinect.xcodeproj/samer.pbxuser termapp/README termapp/termapp termapp/termapp.cpp
diffstat 5 files changed, 108 insertions(+), 92 deletions(-) [+]
line wrap: on
line diff
--- a/groupTrackKinect.xcodeproj/samer.mode1v3	Mon Feb 20 15:02:59 2012 +0000
+++ b/groupTrackKinect.xcodeproj/samer.mode1v3	Mon Feb 20 15:38:16 2012 +0000
@@ -229,6 +229,8 @@
 			<key>Layout</key>
 			<array>
 				<dict>
+					<key>BecomeActive</key>
+					<true/>
 					<key>ContentConfiguration</key>
 					<dict>
 						<key>PBXBottomSmartGroupGIDs</key>
@@ -252,7 +254,7 @@
 						<dict>
 							<key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
 							<array>
-								<real>196</real>
+								<real>251</real>
 							</array>
 							<key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
 							<array>
@@ -266,7 +268,16 @@
 								<string>E4B69B4A0A3A1720003C02F2</string>
 								<string>E4B69E1C0A3A1BDC003C02F2</string>
 								<string>E4C2422310CC54B6004149E2</string>
+								<string>BB4B014C10F69532006C3DED</string>
+								<string>DD073AA912D5FF4B00EB8D32</string>
+								<string>307818C713028D8500D8873A</string>
+								<string>307818C813028D8500D8873A</string>
+								<string>3078190013028D8500D8873A</string>
+								<string>DD073AAA12D5FF4B00EB8D32</string>
 								<string>E45BE0360E8CC5DE009D7055</string>
+								<string>E45BEED60E8CCB34009D7055</string>
+								<string>E45BE0480E8CC657009D7055</string>
+								<string>E45BE5980E8CC70C009D7055</string>
 								<string>1C37FBAC04509CD000000102</string>
 								<string>1C37FAAC04509CD000000102</string>
 								<string>1C37FABC05509CD000000102</string>
@@ -275,13 +286,17 @@
 							<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
 							<array>
 								<array>
-									<integer>6</integer>
-									<integer>3</integer>
+									<integer>27</integer>
+									<integer>16</integer>
+									<integer>14</integer>
+									<integer>13</integer>
+									<integer>12</integer>
+									<integer>10</integer>
 									<integer>0</integer>
 								</array>
 							</array>
 							<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
-							<string>{{0, 0}, {196, 680}}</string>
+							<string>{{0, 111}, {251, 680}}</string>
 						</dict>
 						<key>PBXTopSmartGroupGIDs</key>
 						<array/>
@@ -293,19 +308,19 @@
 					<key>GeometryConfiguration</key>
 					<dict>
 						<key>Frame</key>
-						<string>{{0, 0}, {213, 698}}</string>
+						<string>{{0, 0}, {268, 698}}</string>
 						<key>GroupTreeTableConfiguration</key>
 						<array>
 							<string>MainColumn</string>
-							<real>196</real>
+							<real>251</real>
 						</array>
 						<key>RubberWindowFrame</key>
-						<string>131 39 945 739 0 0 1280 778 </string>
+						<string>113 39 945 739 0 0 1280 778 </string>
 					</dict>
 					<key>Module</key>
 					<string>PBXSmartGroupTreeModule</string>
 					<key>Proportion</key>
-					<string>213pt</string>
+					<string>268pt</string>
 				</dict>
 				<dict>
 					<key>Dock</key>
@@ -328,7 +343,7 @@
 										<key>_historyCapacity</key>
 										<integer>0</integer>
 										<key>bookmark</key>
-										<string>314DCC6414EBC5ED0008B4A4</string>
+										<string>3115814D14EE720D00D1E676</string>
 										<key>history</key>
 										<array>
 											<string>31FB947B1385362F00445736</string>
@@ -337,7 +352,7 @@
 											<string>31FB947E1385362F00445736</string>
 											<string>31FB94801385362F00445736</string>
 											<string>31E0508113A2622A000BB38F</string>
-											<string>314DCC0814EBBD520008B4A4</string>
+											<string>314DCC6414EBC5ED0008B4A4</string>
 										</array>
 									</dict>
 									<key>SplitCount</key>
@@ -349,9 +364,9 @@
 							<key>GeometryConfiguration</key>
 							<dict>
 								<key>Frame</key>
-								<string>{{0, 0}, {727, 0}}</string>
+								<string>{{0, 0}, {672, 0}}</string>
 								<key>RubberWindowFrame</key>
-								<string>131 39 945 739 0 0 1280 778 </string>
+								<string>113 39 945 739 0 0 1280 778 </string>
 							</dict>
 							<key>Module</key>
 							<string>PBXNavigatorGroup</string>
@@ -376,7 +391,7 @@
 										<key>_historyCapacity</key>
 										<integer>0</integer>
 										<key>bookmark</key>
-										<string>314DCC6514EBC5ED0008B4A4</string>
+										<string>3115814E14EE720D00D1E676</string>
 										<key>history</key>
 										<array>
 											<string>31FB947B1385362F00445736</string>
@@ -387,7 +402,7 @@
 											<string>31E0513613A28A95000BB38F</string>
 											<string>31E0526613A62CF2000BB38F</string>
 											<string>3161917113FDC22700656D14</string>
-											<string>314DCC0914EBBD520008B4A4</string>
+											<string>314DCC6514EBC5ED0008B4A4</string>
 										</array>
 									</dict>
 									<key>SplitCount</key>
@@ -399,18 +414,16 @@
 							<key>GeometryConfiguration</key>
 							<dict>
 								<key>Frame</key>
-								<string>{{0, 5}, {727, 129}}</string>
+								<string>{{0, 5}, {672, 112}}</string>
 								<key>RubberWindowFrame</key>
-								<string>131 39 945 739 0 0 1280 778 </string>
+								<string>113 39 945 739 0 0 1280 778 </string>
 							</dict>
 							<key>Module</key>
 							<string>PBXNavigatorGroup</string>
 							<key>Proportion</key>
-							<string>129pt</string>
+							<string>112pt</string>
 						</dict>
 						<dict>
-							<key>BecomeActive</key>
-							<true/>
 							<key>ContentConfiguration</key>
 							<dict>
 								<key>PBXProjectModuleGUID</key>
@@ -428,7 +441,7 @@
 										<key>_historyCapacity</key>
 										<integer>0</integer>
 										<key>bookmark</key>
-										<string>314DCC6614EBC5ED0008B4A4</string>
+										<string>3115814F14EE720D00D1E676</string>
 										<key>history</key>
 										<array>
 											<string>31FB947B1385362F00445736</string>
@@ -442,7 +455,7 @@
 											<string>31196C601427B83500377BAF</string>
 											<string>314DCC2314EBC1900008B4A4</string>
 											<string>314DCC6014EBC5C30008B4A4</string>
-											<string>314DCC6114EBC5C30008B4A4</string>
+											<string>314DCC6614EBC5ED0008B4A4</string>
 										</array>
 									</dict>
 									<key>SplitCount</key>
@@ -454,14 +467,14 @@
 							<key>GeometryConfiguration</key>
 							<dict>
 								<key>Frame</key>
-								<string>{{0, 139}, {727, 554}}</string>
+								<string>{{0, 122}, {672, 571}}</string>
 								<key>RubberWindowFrame</key>
-								<string>131 39 945 739 0 0 1280 778 </string>
+								<string>113 39 945 739 0 0 1280 778 </string>
 							</dict>
 							<key>Module</key>
 							<string>PBXNavigatorGroup</string>
 							<key>Proportion</key>
-							<string>554pt</string>
+							<string>571pt</string>
 						</dict>
 						<dict>
 							<key>ContentConfiguration</key>
@@ -474,9 +487,9 @@
 							<key>GeometryConfiguration</key>
 							<dict>
 								<key>Frame</key>
-								<string>{{0, 698}, {727, 0}}</string>
+								<string>{{0, 698}, {672, 0}}</string>
 								<key>RubberWindowFrame</key>
-								<string>131 39 945 739 0 0 1280 778 </string>
+								<string>113 39 945 739 0 0 1280 778 </string>
 							</dict>
 							<key>Module</key>
 							<string>XCDetailModule</string>
@@ -485,7 +498,7 @@
 						</dict>
 					</array>
 					<key>Proportion</key>
-					<string>727pt</string>
+					<string>672pt</string>
 				</dict>
 			</array>
 			<key>Name</key>
@@ -502,9 +515,9 @@
 			</array>
 			<key>TableOfContents</key>
 			<array>
-				<string>314DCC1814EBBD6E0008B4A4</string>
+				<string>3115814A14EE6F7F00D1E676</string>
 				<string>1CE0B1FE06471DED0097A5F4</string>
-				<string>314DCC1914EBBD6E0008B4A4</string>
+				<string>3115814B14EE6F7F00D1E676</string>
 				<string>1CE0B20306471E060097A5F4</string>
 				<string>1CE0B20306471E060097A5F4</string>
 				<string>1CE0B20306471E060097A5F4</string>
@@ -644,15 +657,11 @@
 	<integer>5</integer>
 	<key>WindowOrderList</key>
 	<array>
-		<string>314DCC2F14EBC1900008B4A4</string>
-		<string>314DCC3014EBC1900008B4A4</string>
-		<string>1C78EAAD065D492600B07095</string>
-		<string>1CD10A99069EF8BA00B06720</string>
 		<string>31FB94591383ED1900445736</string>
 		<string>/usr/local/src/OpenFrameworks/of_preRelease_v0062_osxSL_FAT/apps/examples/grouptrack/groupTrackKinect.xcodeproj</string>
 	</array>
 	<key>WindowString</key>
-	<string>131 39 945 739 0 0 1280 778 </string>
+	<string>113 39 945 739 0 0 1280 778 </string>
 	<key>WindowToolsV3</key>
 	<array>
 		<dict>
@@ -668,14 +677,12 @@
 					<key>Dock</key>
 					<array>
 						<dict>
-							<key>BecomeActive</key>
-							<true/>
 							<key>ContentConfiguration</key>
 							<dict>
 								<key>PBXProjectModuleGUID</key>
 								<string>1CD0528F0623707200166675</string>
 								<key>PBXProjectModuleLabel</key>
-								<string>testApp.cpp</string>
+								<string></string>
 								<key>StatusBarVisibility</key>
 								<true/>
 							</dict>
@@ -731,7 +738,7 @@
 			<key>TableOfContents</key>
 			<array>
 				<string>31FB94591383ED1900445736</string>
-				<string>314DCC1A14EBBD6E0008B4A4</string>
+				<string>3115814C14EE6F7F00D1E676</string>
 				<string>1CD0528F0623707200166675</string>
 				<string>XCMainBuildResultsModuleGUID</string>
 			</array>
--- a/groupTrackKinect.xcodeproj/samer.pbxuser	Mon Feb 20 15:02:59 2012 +0000
+++ b/groupTrackKinect.xcodeproj/samer.pbxuser	Mon Feb 20 15:38:16 2012 +0000
@@ -35,6 +35,36 @@
 			sepNavVisRange = "{177, 189}";
 		};
 	};
+	3115814D14EE720D00D1E676 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E4B69E1F0A3A1BDC003C02F2 /* testApp.h */;
+		name = "testApp.h: 60";
+		rLen = 0;
+		rLoc = 1199;
+		rType = 0;
+		vrLen = 0;
+		vrLoc = 0;
+	};
+	3115814E14EE720D00D1E676 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E4B69E1D0A3A1BDC003C02F2 /* main.cpp */;
+		name = "main.cpp: 12";
+		rLen = 0;
+		rLoc = 307;
+		rType = 0;
+		vrLen = 239;
+		vrLoc = 86;
+	};
+	3115814F14EE720D00D1E676 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E4B69E1F0A3A1BDC003C02F2 /* testApp.h */;
+		name = "testApp.h: 20";
+		rLen = 0;
+		rLoc = 326;
+		rType = 0;
+		vrLen = 852;
+		vrLoc = 358;
+	};
 	31196C5D1427B83500377BAF /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
 		fRef = BFA2A38A1315131800EB981C /* ofxOscMessage.h */;
@@ -75,26 +105,6 @@
 		vrLen = 905;
 		vrLoc = 1857;
 	};
-	314DCC0814EBBD520008B4A4 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = E4B69E1F0A3A1BDC003C02F2 /* testApp.h */;
-		name = "testApp.h: 60";
-		rLen = 0;
-		rLoc = 1199;
-		rType = 0;
-		vrLen = 0;
-		vrLoc = 0;
-	};
-	314DCC0914EBBD520008B4A4 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = E4B69E1D0A3A1BDC003C02F2 /* main.cpp */;
-		name = "main.cpp: 12";
-		rLen = 0;
-		rLoc = 307;
-		rType = 0;
-		vrLen = 258;
-		vrLoc = 67;
-	};
 	314DCC2314EBC1900008B4A4 /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
 		fRef = E4B69E1D0A3A1BDC003C02F2 /* main.cpp */;
@@ -115,16 +125,6 @@
 		vrLen = 1017;
 		vrLoc = 0;
 	};
-	314DCC6114EBC5C30008B4A4 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = E4B69E1F0A3A1BDC003C02F2 /* testApp.h */;
-		name = "testApp.h: 8";
-		rLen = 0;
-		rLoc = 105;
-		rType = 0;
-		vrLen = 728;
-		vrLoc = 0;
-	};
 	314DCC6414EBC5ED0008B4A4 /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
 		fRef = E4B69E1F0A3A1BDC003C02F2 /* testApp.h */;
@@ -383,7 +383,7 @@
 				PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
 				PBXFileTableDataSourceColumnWidthsKey = (
 					20,
-					488,
+					433,
 					20,
 					48,
 					43,
@@ -446,19 +446,19 @@
 					PBXFileDataSource_Warnings_ColumnID,
 				);
 			};
-			PBXPerProjectTemplateStateSaveDate = 350993768;
-			PBXWorkspaceStateSaveDate = 350993768;
+			PBXPerProjectTemplateStateSaveDate = 351170401;
+			PBXWorkspaceStateSaveDate = 351170401;
 		};
 		perUserProjectItems = {
+			3115814D14EE720D00D1E676 /* PBXTextBookmark */ = 3115814D14EE720D00D1E676 /* PBXTextBookmark */;
+			3115814E14EE720D00D1E676 /* PBXTextBookmark */ = 3115814E14EE720D00D1E676 /* PBXTextBookmark */;
+			3115814F14EE720D00D1E676 /* PBXTextBookmark */ = 3115814F14EE720D00D1E676 /* PBXTextBookmark */;
 			31196C5D1427B83500377BAF /* PBXTextBookmark */ = 31196C5D1427B83500377BAF /* PBXTextBookmark */;
 			31196C5E1427B83500377BAF /* PBXTextBookmark */ = 31196C5E1427B83500377BAF /* PBXTextBookmark */;
 			31196C5F1427B83500377BAF /* PBXTextBookmark */ = 31196C5F1427B83500377BAF /* PBXTextBookmark */;
 			31196C601427B83500377BAF /* PBXTextBookmark */ = 31196C601427B83500377BAF /* PBXTextBookmark */;
-			314DCC0814EBBD520008B4A4 /* PBXTextBookmark */ = 314DCC0814EBBD520008B4A4 /* PBXTextBookmark */;
-			314DCC0914EBBD520008B4A4 /* PBXTextBookmark */ = 314DCC0914EBBD520008B4A4 /* PBXTextBookmark */;
 			314DCC2314EBC1900008B4A4 /* PBXTextBookmark */ = 314DCC2314EBC1900008B4A4 /* PBXTextBookmark */;
 			314DCC6014EBC5C30008B4A4 /* PBXTextBookmark */ = 314DCC6014EBC5C30008B4A4 /* PBXTextBookmark */;
-			314DCC6114EBC5C30008B4A4 /* PBXTextBookmark */ = 314DCC6114EBC5C30008B4A4 /* PBXTextBookmark */;
 			314DCC6414EBC5ED0008B4A4 /* PBXTextBookmark */ = 314DCC6414EBC5ED0008B4A4 /* PBXTextBookmark */;
 			314DCC6514EBC5ED0008B4A4 /* PBXTextBookmark */ = 314DCC6514EBC5ED0008B4A4 /* PBXTextBookmark */;
 			314DCC6614EBC5ED0008B4A4 /* PBXTextBookmark */ = 314DCC6614EBC5ED0008B4A4 /* PBXTextBookmark */;
@@ -485,9 +485,9 @@
 	};
 	E4B69E1D0A3A1BDC003C02F2 /* main.cpp */ = {
 		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {666, 182}}";
+			sepNavIntBoundsRect = "{{0, 0}, {611, 182}}";
 			sepNavSelRange = "{307, 0}";
-			sepNavVisRange = "{85, 240}";
+			sepNavVisRange = "{86, 239}";
 			sepNavWindowFrame = "{{19, 215}, {750, 558}}";
 		};
 	};
@@ -501,7 +501,7 @@
 	};
 	E4B69E1F0A3A1BDC003C02F2 /* testApp.h */ = {
 		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {666, 845}}";
+			sepNavIntBoundsRect = "{{0, 0}, {611, 858}}";
 			sepNavSelRange = "{1199, 0}";
 			sepNavVisRange = "{0, 0}";
 			sepNavWindowFrame = "{{42, 194}, {750, 558}}";
--- a/termapp/README	Mon Feb 20 15:02:59 2012 +0000
+++ b/termapp/README	Mon Feb 20 15:38:16 2012 +0000
@@ -11,7 +11,11 @@
 NB. If you have OpenNI shared libraries installed in a funny place, you
 will need to set DYLD_FALLBACK_LIBRARY_PATH to point to it to run termapp.
 AND you also need OPEN_NI_INSTALL_PATH set too.
-See termtrack.sh in directory above this one for an example - I have my OpenNI
+See run.sh an example - I have my OpenNI
 installed in /opt/OpenNI, so I need
 	OPEN_NI_INSTALL_PATH=/opt/OpenNI
 	DYLD_FALLBACK_LIBRARY_PATH=$OPEN_NI_INSTALL_PATH/usr/lib
+
+Also NB.
+You need libusb-devel +universal from MacPorts.
+Not libusb +universal. That doesn't work (timeout problem).
Binary file termapp/termapp has changed
--- a/termapp/termapp.cpp	Mon Feb 20 15:02:59 2012 +0000
+++ b/termapp/termapp.cpp	Mon Feb 20 15:38:16 2012 +0000
@@ -129,7 +129,7 @@
 termapp::termapp(const char *host, const char *port, int FPS) {
 
 	// initialise OSC sender
-	printf("OSC target: %s:%s.\n",host,port);
+	printf("OSC target is %s:%s.\n",host,port);
 	// printf("Will run at %d frames per second.\n",FPS);
 	target = lo_address_new(host,port);
 }
@@ -306,13 +306,8 @@
 	lo_bundle_add_message(bundle,"/track",m);
 }
 
-static termapp *app=NULL;
+static bool Continue=true;
 
-static void signal_handler(int sig) {
-	printf("\nCaught signal %d - terminating.\n", sig);
-	if (app) { delete app; app=NULL; }
-	exit(0);
-}
 
 //========================================================================
 struct termios orig_termios;
@@ -330,7 +325,6 @@
 	/* take two copies - one for now, one for later */
 	tcgetattr(0, &orig_termios);
 	memcpy(&new_termios, &orig_termios, sizeof(new_termios));
-	atexit(reset_terminal_mode);
 	new_termios.c_lflag &= ~ECHO; 
 	new_termios.c_lflag &= ~ICANON; 
 	tcsetattr(0, TCSANOW, &new_termios);
@@ -352,10 +346,18 @@
 	return (r<0) ? r : c;
 }
 
+static bool InHandler=false;
+static void signal_handler(int sig) {
+	if (InHandler) { reset_terminal_mode(); exit(0); }
+	else InHandler=true;
+	printf("\nCaught signal %d - will exit cleanly.\n", sig);
+	Continue=false;
+}
+
 int main(int argc, const char **argv)
 {
 	int i,ch;
-	app=new termapp(
+	termapp app(
 			argc>1 ? argv[1] : HOST, 
 			argc>2 ? argv[2] : PORT,
 			argc>3 ? atoi(argv[3]) : 15);
@@ -365,17 +367,20 @@
 	signal(SIGKILL, signal_handler);
 
 	printf("Setting up...\n");
-	app->setup();
+	app.setup();
 	printf("Running...\n");
 	set_conio_terminal_mode();
-	for (;;) {
-		app->update();
-		app->draw();
+	while (Continue) {
+		app.update();
+		app.draw();
 		while (kbhit()) {
 			ch = getch();
-			if (ch>0) app->keyPressed(ch);
+			if (ch=='q') Continue=false;
+			else if (ch>0) app.keyPressed(ch);
 		}
 	}
+	printf("\n");
+	reset_terminal_mode();
 }