Example #1
0
void ReadAll()
{
    ReadAdmins();
    ReadReaders();
    ReadUsers();
    ReadBooks();
}
Example #2
0
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;
}