annotate example/kinect.cc @ 4:edf80c055589 default tip

kinect run on Cerium
author kazz <kazz@cr.ie.u-ryukyu.ac.jp>
date Tue, 01 Feb 2011 14:44:56 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 #include <math.h>
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 #include <stdlib.h>
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 #include <stdio.h>
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 #include "SceneGraphRoot.h"
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 #include "MainLoop.h"
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 #include <XnOpenNI.h>
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 #include <XnCppWrapper.h>
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 #include <XnVNite.h>
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 #include "kinect.h"
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 #define INIT_XML_PATH "./kinect.xml"
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 void checkRC(const XnStatus &rc, const char *what) {
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 if (rc != XN_STATUS_OK) {
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 printf("%s faild: %s\n", what, xnGetStatusString(rc));
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 }
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 }
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 void checkErrors(XnStatus &rc, xn::EnumerationErrors &errors, const char *what) {
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 if (rc == XN_STATUS_NO_NODE_PRESENT) {
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 XnChar strError[1024];
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 errors.ToString(strError, 1024);
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 printf("%s\n", strError);
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 }
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 }
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 SessionState NIState::gSessionState = NOT_IN_SESSION;
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 XnBool NIState::gBDrawDepthMap = true;
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 xn::Context NIState::gContext;
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 XnVSessionManager *NIState::gPSessionManager;
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 XnVPointDrawer *NIState::gPDrawer;
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
34
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 void NIState::XN_CALLBACK_TYPE sessionStarting(const XnPoint3D &ptPosition, void *userCxt) {
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 printf("Session start: (%f, %f, %f)\n", ptPosition.X, ptPosition.Y, ptPosition.Z);
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 gSessionState = IN_SESSION;
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 }
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 void NIState::XN_CALLBACK_TYPE sessionEnding(void *userCxt) {
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 printf("Session end\n");
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 gSessionState = NOT_IN_SESSION;
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 }
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 void NIState::XN_CALLBACK_TYPE focusProgress(const XnChar *strFocus, const XnPoint3D &ptPosition,
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 XnFloat fProgress, void *userCxt) {
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 printf("Focus progress: %s @(%f, %f, %f): %f\n", strFocus, ptPosition.X, ptPosition.Y, ptPosition.Z, fProgress);
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 }
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 void NIState::XN_CALLBACK_TYPE noHands(void *UserCxt) {
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 if (gSessionState != NOT_IN_SESSION) {
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 printf("Quick refocus\n");
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 gSessionState = QUICK_REFOCUS;
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 }
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 }
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
53
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 // prototype
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 static void ball_move(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h);
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 static void null_collision(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h, SceneGraphPtr tree);
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
57
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 static void
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 ball_move(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 {
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 NIState::gContext.WaitNoneUpdateAll();
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 NIState::gPSessionManager->Update(&NIState::gContext);
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 float x, y, z;
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 int error = NIState::gPDrawer->getPosition(x, y, z);
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 if (error > 0) {
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 node->xyz[0] = x/640 * screen_w;
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 node->xyz[1] = y/480 * screen_h;
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 node->xyz[2] = z - 500;
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 }
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 }
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
71
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 static void
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 null_collision(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h,
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 SceneGraphPtr tree)
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 {
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 }
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
77
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 MainLoopPtr
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 Kinect::init(Viewer *sgroot, int screen_w, int screen_h)
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 {
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 SceneGraphPtr ball;
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
82
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 srandom(100);
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
84
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 sgroot->createFromXMLfile("xml_file/Ball.xml");
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
86
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 ball = sgroot->createSceneGraph("Ball");
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
88 ball->set_move_collision(ball_move, null_collision);
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
89
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
90 ball->xyz[0] = screen_w/2;
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
91 ball->xyz[1] = screen_h/2;
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
92 ball->xyz[2] = 550.0f;
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
93
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 sgroot->setSceneData(ball);
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
95
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
96 xn::EnumerationErrors errors;
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
97 XnStatus rc = NIState::gContext.InitFromXmlFile(INIT_XML_PATH, &errors);
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 checkErrors(rc, errors, "InitFromXMLFile");
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 checkRC(rc, "InitFromXMLFile");
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
100
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 xn::DepthGenerator gDepthGenerator;
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
102 rc = NIState::gContext.FindExistingNode(XN_NODE_TYPE_DEPTH, gDepthGenerator);
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
103 checkRC(rc, "Find depth generator");
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
104
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
105 xn::HandsGenerator gHandsGenerator;
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
106 rc = NIState::gContext.FindExistingNode(XN_NODE_TYPE_HANDS, gHandsGenerator);
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
107 checkRC(rc, "Find hands generator");
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
108 NIState::gPSessionManager = new XnVSessionManager();
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
109 rc = NIState::gPSessionManager->Initialize(&NIState::gContext, "Click,Wave", "RaiseHand");
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 checkRC(rc, "SessionManager::Initialize");
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
111
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 NIState::gPSessionManager->RegisterSession(NULL, NIState::sessionStarting, NIState::sessionEnding, NIState::focusProgress);
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
113
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
114 NIState::gPDrawer = new XnVPointDrawer(20, gDepthGenerator);
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
115 XnVFlowRouter *gPFlowRouter = new XnVFlowRouter;
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
116 gPFlowRouter->SetActive(NIState::gPDrawer);
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
117
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
118 NIState::gPSessionManager->AddListener(gPFlowRouter);
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
119
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
120 NIState::gPDrawer->RegisterNoPoints(NULL, NIState::noHands);
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
121 NIState::gPDrawer->setDepthMap(NIState::gBDrawDepthMap);
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
122
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
123 rc = NIState::gContext.StartGeneratingAll();
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
124 checkRC(rc, "StartGenerating");
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
125
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
126 return sgroot;
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
127 }
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
128
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
129 extern Application *
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
130 application() {
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
131 return new Kinect();
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
132 }
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
133
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
134 const char *usr_help_str = "Usage: ./kinect [OPTION]\n";
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
135
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
136 extern int init(TaskManager *manager, int argc, char *argv[]);
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
137 extern void task_initialize();
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
138 static void TMend(TaskManager *manager);
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
139
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
140 int
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
141 TMmain(TaskManager *manager, int argc, char *argv[])
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
142 {
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
143 task_initialize();
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
144 manager->set_TMend(TMend);
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
145 return init(manager, argc, argv);
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
146 }
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
147
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
148 void
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
149 TMend(TaskManager *manager)
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
150 {
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
151 printf("kinect end\n");
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
152 }
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
153
edf80c055589 kinect run on Cerium
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
154 /* end */