本文整理汇总了C++中XnDeviceModule::BatchConfig方法的典型用法代码示例。如果您正苦于以下问题:C++ XnDeviceModule::BatchConfig方法的具体用法?C++ XnDeviceModule::BatchConfig怎么用?C++ XnDeviceModule::BatchConfig使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XnDeviceModule
的用法示例。
在下文中一共展示了XnDeviceModule::BatchConfig方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: BatchConfig
XnStatus XnDeviceBase::BatchConfig(const XnPropertySet* pChangeSet)
{
XnStatus nRetVal = XN_STATUS_OK;
XN_VALIDATE_INPUT_PTR(pChangeSet);
// start a transaction
nRetVal = StartTransaction();
XN_IS_STATUS_OK(nRetVal);
for (XnPropertySetData::ConstIterator itModule = pChangeSet->pData->begin(); itModule != pChangeSet->pData->end(); ++itModule)
{
// find this module
XnDeviceModule* pModule = NULL;
nRetVal = FindModule(itModule.Key(), &pModule);
XN_CHECK_RC_ROLLBACK(nRetVal);
nRetVal = pModule->BatchConfig(*itModule.Value());
XN_CHECK_RC_ROLLBACK(nRetVal);
}
nRetVal = CommitTransaction();
XN_IS_STATUS_OK(nRetVal);
return (XN_STATUS_OK);
}
示例2: BatchConfig
XnStatus XnDeviceBase::BatchConfig(const XnPropertySet* pChangeSet)
{
XnStatus nRetVal = XN_STATUS_OK;
XN_VALIDATE_INPUT_PTR(pChangeSet);
for (XnPropertySetData::ConstIterator itModule = pChangeSet->pData->Begin(); itModule != pChangeSet->pData->End(); ++itModule)
{
// find this module
XnDeviceModule* pModule = NULL;
nRetVal = FindModule(itModule->Key(), &pModule);
XN_IS_STATUS_OK(nRetVal);
nRetVal = pModule->BatchConfig(*itModule->Value());
XN_IS_STATUS_OK(nRetVal);
}
return (XN_STATUS_OK);
}
示例3: CreateStreamImpl
XnStatus XnDeviceBase::CreateStreamImpl(const XnChar* strType, const XnChar* strName, const XnActualPropertiesHash* pInitialSet)
{
XnStatus nRetVal = XN_STATUS_OK;
xnLogInfo(XN_MASK_DDK, "Creating stream '%s' of type '%s'...", strName, strType);
XnDeviceModule* pModule;
if (FindModule(strName, &pModule) == XN_STATUS_OK)
{
// already exists. check sharing mode (when shared, we allow "creating" the same stream)
if (GetSharingMode() != XN_DEVICE_SHARED ||
!IsStream(pModule) ||
strcmp(strType, ((XnDeviceStream*)pModule)->GetType()) != 0)
{
XN_LOG_WARNING_RETURN(XN_STATUS_STREAM_ALREADY_EXISTS, XN_MASK_DDK, "A stream with this name already exists!");
}
// OK, we'll allow this. Just set new configuration
if (pInitialSet != NULL)
{
nRetVal = pModule->BatchConfig(*pInitialSet);
XN_IS_STATUS_OK(nRetVal);
}
}
else
{
// create stream
XnDeviceModuleHolder* pNewStreamHolder = NULL;
nRetVal = CreateStreamModule(strType, strName, &pNewStreamHolder);
XN_IS_STATUS_OK(nRetVal);
XnDeviceStream* pNewStream = (XnDeviceStream*)(pNewStreamHolder->GetModule());
if (pNewStream == NULL)
{
DestroyStreamModule(pNewStreamHolder);
XN_LOG_ERROR_RETURN(XN_STATUS_ERROR, XN_MASK_DDK, "Internal Error: Invalid new stream!");
}
// initialize the stream
xnLogVerbose(XN_MASK_DDK, "Initializing stream '%s'...", strName);
nRetVal = pNewStreamHolder->Init(pInitialSet);
if (nRetVal != XN_STATUS_OK)
{
DestroyStreamModule(pNewStreamHolder);
return (nRetVal);
}
// set it's mirror value (if not requested otherwise)
XnBool bSetMirror = TRUE;
if (pInitialSet != NULL)
{
XnActualPropertiesHash::ConstIterator it = pInitialSet->end();
if (XN_STATUS_OK == pInitialSet->Find(XN_MODULE_PROPERTY_MIRROR, it))
{
bSetMirror = FALSE;
}
}
if (bSetMirror)
{
nRetVal = pNewStream->SetMirror((XnBool)m_DeviceMirror.GetValue());
if (nRetVal != XN_STATUS_OK)
{
DestroyStreamModule(pNewStreamHolder);
return (nRetVal);
}
}
// add it to the list of existing modules
nRetVal = AddModule(pNewStreamHolder);
if (nRetVal != XN_STATUS_OK)
{
DestroyStreamModule(pNewStreamHolder);
return (nRetVal);
}
xnLogInfo(XN_MASK_DDK, "Stream '%s' was initialized.", strName);
nRetVal = StreamAdded(pNewStream);
XN_IS_STATUS_OK(nRetVal);
xnLogInfo(XN_MASK_DDK, "'%s' stream was created.", strName);
}
return (XN_STATUS_OK);
}