XN_C_API XnStatus xnLogSetOutputFolder(const XnChar* strOutputFolder) { XnStatus nRetVal = XN_STATUS_OK; // check if folder exists XnBool bDirExists = FALSE; nRetVal = xnOSDoesDirecotyExist(strOutputFolder, &bDirExists); XN_IS_STATUS_OK(nRetVal); if (!bDirExists) { // create it nRetVal = xnOSCreateDirectory(strOutputFolder); XN_IS_STATUS_OK(nRetVal); } // place it in a temp buffer, just to make sure everything succeeds XnChar strDirName[XN_FILE_MAX_PATH]; nRetVal = xnOSGetFullPathName(strOutputFolder, strDirName, XN_FILE_MAX_PATH); XN_IS_STATUS_OK(nRetVal); nRetVal = xnOSStrAppend(strDirName, XN_FILE_DIR_SEP, XN_FILE_MAX_PATH); XN_IS_STATUS_OK(nRetVal); // OK. replace xnOSStrCopy(g_logData.m_strLogDir, strDirName, XN_FILE_MAX_PATH); // restart file writer xnLogStartNewFile(); return (XN_STATUS_OK); }
XnStatus XN_CALLBACK_TYPE XnSensorsManager::StartNewLogCallback(XnIntProperty* /*pSender*/, XnUInt64 /*nValue*/, void* /*pCookie*/) { xnLogVerbose(XN_MASK_SENSOR_SERVER, "Closing current log file..."); return xnLogStartNewFile(); }