void ReadAll() { ReadAdmins(); ReadReaders(); ReadUsers(); ReadBooks(); }
XnStatus SimKinect::Init(const char* filename) { XnStatus nRetVal = XN_STATUS_OK; xn::EnumerationErrors errors; if ( filename ) { //read data from files record_file = new char[255]; strcpy(record_file,filename); xnSetPlayerRepeat(player,FALSE); char skeleton_data_file_name[1024]; sprintf(skeleton_data_file_name,"%s.txt",filename); ReadUsers(skeleton_data_file_name,users,frame_ids); } nRetVal = OpenDevice(XML_CONFIG, errors); if (nRetVal == XN_STATUS_NO_NODE_PRESENT) { XnChar strError[1024]; errors.ToString(strError, 1024); printf("%s\n", strError); return (nRetVal); } else if (nRetVal != XN_STATUS_OK) { printf("Open failed: %s\n", xnGetStatusString(nRetVal)); return (nRetVal); } if ( bIsDepthOn ) { depth_frame = new unsigned char[video_size_width*video_size_height*3]; depth_map = new int[video_size_width*video_size_height]; } if ( bIsImageOn ) { color_frame = new unsigned char[video_size_width*video_size_height*3]; } XnCallbackHandle hUserCallbacks, hCalibrationStart, hCalibrationComplete, hPoseDetected, hCalibrationInProgress, hPoseInProgress; if (!user_generator.IsCapabilitySupported(XN_CAPABILITY_SKELETON)) { printf("Supplied user generator doesn't support skeleton\n"); if ( record_file ) return 0; else return 1; } nRetVal = user_generator.RegisterUserCallbacks(User_NewUser, User_LostUser, NULL, hUserCallbacks); CHECK_RC(nRetVal, "Register to user callbacks"); nRetVal = user_generator.GetSkeletonCap().RegisterToCalibrationStart(UserCalibration_CalibrationStart, NULL, hCalibrationStart); CHECK_RC(nRetVal, "Register to calibration start"); nRetVal = user_generator.GetSkeletonCap().RegisterToCalibrationComplete(UserCalibration_CalibrationComplete, NULL, hCalibrationComplete); CHECK_RC(nRetVal, "Register to calibration complete"); if (user_generator.GetSkeletonCap().NeedPoseForCalibration()) { bNeedPose = TRUE; if (!user_generator.IsCapabilitySupported(XN_CAPABILITY_POSE_DETECTION)) { printf("Pose required, but not supported\n"); return 1; } nRetVal = user_generator.GetPoseDetectionCap().RegisterToPoseDetected(UserPose_PoseDetected, NULL, hPoseDetected); CHECK_RC(nRetVal, "Register to Pose Detected"); user_generator.GetSkeletonCap().GetCalibrationPose(strPose); } user_generator.GetSkeletonCap().SetSkeletonProfile(XN_SKEL_PROFILE_ALL); nRetVal = user_generator.GetSkeletonCap().RegisterToCalibrationInProgress(MyCalibrationInProgress, NULL, hCalibrationInProgress); CHECK_RC(nRetVal, "Register to calibration in progress"); nRetVal = user_generator.GetPoseDetectionCap().RegisterToPoseInProgress(MyPoseInProgress, NULL, hPoseInProgress); CHECK_RC(nRetVal, "Register to pose in progress"); nRetVal = context.StartGeneratingAll(); CHECK_RC(nRetVal, "StartGenerating"); return 0; }