Mercurial > hg > grouptrack
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).
--- 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(); }