XnStatus XnDeviceBase::InitImpl(const XnDeviceConfig* pDeviceConfig) { XnStatus nRetVal = XN_STATUS_OK; XN_VALIDATE_INPUT_PTR(pDeviceConfig); // create device module nRetVal = CreateDeviceModule(&m_pDevicePropertiesHolder); XN_IS_STATUS_OK(nRetVal); // check if we have initial values for device modules XnActualPropertiesHash* pDeviceModuleInitialProps = NULL; if (pDeviceConfig->pInitialValues != NULL) { pDeviceConfig->pInitialValues->pData->Get(XN_MODULE_NAME_DEVICE, pDeviceModuleInitialProps); } // init device module nRetVal = m_pDevicePropertiesHolder->Init(pDeviceModuleInitialProps); XN_IS_STATUS_OK(nRetVal); // add the device module nRetVal = AddModule(m_pDevicePropertiesHolder); XN_IS_STATUS_OK(nRetVal); // init dump m_StreamsDataDump = xnDumpFileOpen(XN_DUMP_STREAMS_DATA, "%s.csv", XN_DUMP_STREAMS_DATA); return (XN_STATUS_OK); }
XnStatus XnDeviceBase::InitImpl(const XnDeviceConfig* pDeviceConfig) { XnStatus nRetVal = XN_STATUS_OK; XN_VALIDATE_INPUT_PTR(pDeviceConfig); // create device module nRetVal = CreateDeviceModule(&m_pDevicePropertiesHolder); XN_IS_STATUS_OK(nRetVal); // check if we have initial values for device modules XnActualPropertiesHash* pDeviceModuleInitialProps = NULL; if (pDeviceConfig->pInitialValues != NULL) { pDeviceConfig->pInitialValues->pData->Get(XN_MODULE_NAME_DEVICE, pDeviceModuleInitialProps); } // init device module nRetVal = m_pDevicePropertiesHolder->Init(pDeviceModuleInitialProps); XN_IS_STATUS_OK(nRetVal); // set read/write mode (we need to do it AFTER module init to override original value) nRetVal = m_ReadWriteMode.UnsafeUpdateValue(pDeviceConfig->DeviceMode); XN_IS_STATUS_OK(nRetVal); nRetVal = m_SharingMode.UnsafeUpdateValue(pDeviceConfig->SharingMode); XN_IS_STATUS_OK(nRetVal); // add the device module nRetVal = AddModule(m_pDevicePropertiesHolder); XN_IS_STATUS_OK(nRetVal); // create the new data event nRetVal = xnOSCreateEvent(&m_hNewDataEvent, FALSE); XN_IS_STATUS_OK(nRetVal); // init dump m_StreamsDataDump = xnDumpFileOpen(XN_DUMP_STREAMS_DATA, "%s.csv", XN_DUMP_STREAMS_DATA); return (XN_STATUS_OK); }