本文整理汇总了C++中IAAFEssenceDescriptor::GetLocators方法的典型用法代码示例。如果您正苦于以下问题:C++ IAAFEssenceDescriptor::GetLocators方法的具体用法?C++ IAAFEssenceDescriptor::GetLocators怎么用?C++ IAAFEssenceDescriptor::GetLocators使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IAAFEssenceDescriptor
的用法示例。
在下文中一共展示了IAAFEssenceDescriptor::GetLocators方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CreateAAFFile
//.........这里部分代码省略.........
/* GetLocatorAt() ******************************************/
localhr = AAFRESULT_SUCCESS;
edesc->CountLocators(&numLocators);
// Verify that we can't remove an index value that is out of range
// note: Locators index is 0 based so the index numLocators is out of range
if (edesc->GetLocatorAt(numLocators, &pLocator) != AAFRESULT_BADINDEX)
localhr = AAFRESULT_TEST_FAILED;
// Verify behavior when NULL is passed in
if (edesc->GetLocatorAt(1, NULL) != AAFRESULT_NULL_PARAM)
localhr = AAFRESULT_TEST_FAILED;
for (i=0; i<numLocators; i++)
{
pLocator = NULL;
if (edesc->GetLocatorAt(i, &pLocator) != AAFRESULT_SUCCESS)
localhr = AAFRESULT_TEST_FAILED;
if (pLocator != NULL)
pLocator->Release();
}
if (localhr == AAFRESULT_SUCCESS)
cout<< " GetLocatorAt() ... Passed"<< endl;
else
{
cout<< " GetLocatorAt() ... FAILED"<< endl;
hr = AAFRESULT_TEST_FAILED;
}
/* GetLocators() ******************************************/
if (edesc->GetLocators(NULL) != AAFRESULT_NULL_PARAM)
localhr = AAFRESULT_TEST_FAILED;
pEnumLocators = NULL;
if (edesc->GetLocators(&pEnumLocators) == AAFRESULT_SUCCESS)
{
if (pEnumLocators != NULL)
{
// Try a simple test to confirm
if (pEnumLocators->NextOne(&pLocator) != AAFRESULT_SUCCESS)
localhr = AAFRESULT_TEST_FAILED;
edesc->GetLocatorAt(0, &pLocator2);
if (pLocator != pLocator2)
localhr = AAFRESULT_TEST_FAILED;
else
pLocator2->Release();
pLocator->Release();
pLocator = 0;
pEnumLocators->Release();
}
else
localhr = AAFRESULT_TEST_FAILED;
}
else
localhr = AAFRESULT_TEST_FAILED;
if (localhr == AAFRESULT_SUCCESS)
cout<< " GetLocators() ... Passed"<< endl;
else
{
示例2: ReadAAFFile
static HRESULT ReadAAFFile(aafWChar * pFileName)
{
// IAAFSession * pSession = NULL;
IAAFFile * pFile = NULL;
IAAFHeader * pHeader = NULL;
IAAFEssenceDescriptor *pEdesc = NULL;
IAAFSourceMob *pSourceMob = NULL;
IEnumAAFLocators * pEnum = NULL;
IAAFLocator * pLocator = NULL;
IEnumAAFMobs *mobIter = NULL;
IAAFMob *aMob = NULL;
aafUInt32 numLocators;
aafUInt32 readLen;
aafNumSlots_t numMobs, n;
HRESULT hr = AAFRESULT_SUCCESS;
aafWChar readBuf[1024];
bool bFileOpen = false;
try
{
// Open the file.
checkResult(AAFFileOpenExistingRead(pFileName, 0, &pFile));
bFileOpen = true;
checkResult(pFile->GetHeader(&pHeader));
checkResult(pHeader->CountMobs(kAAFAllMob, &numMobs));
if (1 != numMobs )
checkResult(AAFRESULT_TEST_FAILED);
//!!! aafSearchCrit_t criteria;
//!!! criteria.searchTag = kAAFNoSearch;
checkResult(pHeader->GetMobs (NULL, &mobIter));
for(n = 0; n < numMobs; n++)
{
aafWChar name[500];
aafMobID_t mobID;
checkResult(mobIter->NextOne (&aMob));
checkResult(aMob->GetName (name, sizeof(name)));
checkResult(aMob->GetMobID (&mobID));
checkResult(aMob->QueryInterface (IID_IAAFSourceMob, (void **)&pSourceMob));
checkResult(pSourceMob->GetEssenceDescriptor (&pEdesc));
// Verify that there is now one locator
checkResult(pEdesc->CountLocators(&numLocators));
if (1 != numLocators)
checkResult(AAFRESULT_TEST_FAILED);
checkResult(pEdesc->GetLocators(&pEnum));
// This should read the one real locator
checkResult(pEnum->NextOne(&pLocator));
checkResult(pLocator->GetPathBufLen (&readLen));
// if(readLen != strlen(TEST_PATH))
checkResult(pLocator->GetPath (readBuf, readLen));
// This should run off the end
pLocator->Release();
pLocator = NULL;
hr = pEnum->NextOne(&pLocator);
if (AAFRESULT_NO_MORE_OBJECTS != hr)
checkResult(hr);
else
hr = AAFRESULT_SUCCESS; // reset result
}
}
catch (HRESULT& rResult)
{
hr = rResult;
}
// Cleanup...
if (pLocator)
pLocator->Release();
if (pEnum)
pEnum->Release();
if (pEdesc)
pEdesc->Release();
if (pSourceMob)
pSourceMob->Release();
if (aMob)
aMob->Release();
if (mobIter)
mobIter->Release();
//.........这里部分代码省略.........
示例3: ReadAAFFile
static HRESULT ReadAAFFile(aafWChar * pFileName)
{
// IAAFSession * pSession = NULL;
IAAFFile * pFile = NULL;
IAAFHeader * pHeader = NULL;
IEnumAAFMobs *mobIter = NULL;
IAAFMob *aMob = NULL;
IAAFEssenceDescriptor *pEdesc = NULL;
IAAFSourceMob *pSourceMob = NULL;
IEnumAAFLocators * pEnum = NULL;
IAAFLocator * pLocator = NULL;
aafUInt32 numLocators;
aafNumSlots_t numMobs, n;
HRESULT hr = AAFRESULT_SUCCESS;
bool bFileOpen = false;
try
{
// Open the file
checkResult(AAFFileOpenExistingRead(pFileName, 0, &pFile));
bFileOpen = true;
// We can't really do anthing in AAF without the header.
checkResult(pFile->GetHeader(&pHeader));
checkResult(pHeader->CountMobs(kAAFAllMob, &numMobs));
checkExpression (1 == numMobs, AAFRESULT_TEST_FAILED);
checkResult(pHeader->GetMobs (NULL, &mobIter));
for(n = 0; n < numMobs; n++)
{
aafWChar name[500];
aafMobID_t mobID;
checkResult(mobIter->NextOne (&aMob));
checkResult(aMob->GetName (name, sizeof(name)));
checkResult(aMob->GetMobID (&mobID));
checkResult(aMob->QueryInterface (IID_IAAFSourceMob, (void **)&pSourceMob));
checkResult(pSourceMob->GetEssenceDescriptor (&pEdesc));
// Verify that there is now one locator
checkResult(pEdesc->CountLocators(&numLocators));
checkExpression(20 == numLocators, AAFRESULT_TEST_FAILED);
checkResult(pEdesc->GetLocators(&pEnum));
// This should read the one real locator
for ( n=0; n<numLocators; n++)
{
checkResult(pEnum->NextOne(&pLocator));
pLocator->Release();
pLocator = NULL;
}
// We had better not succeed or get an unknown failure.
checkExpression(AAFRESULT_NO_MORE_OBJECTS == pEnum->NextOne(&pLocator),
AAFRESULT_TEST_FAILED);
pEnum->Release();
pEnum = NULL;
pEdesc->Release();
pEdesc = NULL;
pSourceMob->Release();
pSourceMob = NULL;
aMob->Release();
aMob = NULL;
}
}
catch (HRESULT& rResult)
{
hr = rResult;
}
// Cleanup object references
if (pLocator)
pLocator->Release();
if (pEnum)
pEnum->Release();
if (pEdesc)
pEdesc->Release();
if (pSourceMob)
pSourceMob->Release();
if (aMob)
aMob->Release();
if (mobIter)
mobIter->Release();
if (pHeader)
//.........这里部分代码省略.........
示例4: ReadAAFFile
static HRESULT ReadAAFFile(aafWChar * pFileName)
{
// IAAFSession * pSession = NULL;
IAAFFile * pFile = NULL;
IAAFHeader * pHeader = NULL;
IEnumAAFMobs *mobIter = NULL;
IAAFMob *aMob = NULL;
IAAFEssenceDescriptor *pEdesc = NULL;
IAAFSourceMob *pSourceMob = NULL;
IEnumAAFLocators * pEnum = NULL;
IEnumAAFLocators * pCloneEnum = NULL;
IAAFLocator * pLocator = NULL;
aafUInt32 numLocators;
aafNumSlots_t numMobs, n;
HRESULT hr = AAFRESULT_SUCCESS;
bool bFileOpen = false;
wchar_t testname[256];
IAAFLocator * pArray[2] = { NULL, NULL };
IAAFLocator ** pArrayPoint = pArray;
aafUInt32 resultCount;
try
{
// Open the file
checkResult(AAFFileOpenExistingRead(pFileName, 0, &pFile));
bFileOpen = true;
// We can't really do anthing in AAF without the header.
checkResult(pFile->GetHeader(&pHeader));
checkResult(pHeader->CountMobs(kAAFAllMob, &numMobs));
checkExpression (1 == numMobs, AAFRESULT_TEST_FAILED);
checkResult(pHeader->GetMobs (NULL, &mobIter));
for(n = 0; n < numMobs; n++)
{
aafWChar name[500];
aafMobID_t mobID;
checkResult(mobIter->NextOne (&aMob));
checkResult(aMob->GetName (name, sizeof(name)));
checkResult(aMob->GetMobID (&mobID));
checkResult(aMob->QueryInterface (IID_IAAFSourceMob, (void **)&pSourceMob));
checkResult(pSourceMob->GetEssenceDescriptor (&pEdesc));
// Verify that there is now two locators
checkResult(pEdesc->CountLocators(&numLocators));
checkExpression(2 == numLocators, AAFRESULT_TEST_FAILED);
checkResult(pEdesc->GetLocators(&pEnum));
/* Read and check the first element */
checkResult(pEnum->NextOne(&pLocator));
checkResult(pLocator->GetPath (testname, sizeof(testname)));
checkExpression(wcscmp(testname, locator1) == 0, AAFRESULT_TEST_FAILED);
pLocator->Release();
pLocator = NULL;
/**/
/* Read and check the second element */
checkResult(pEnum->NextOne(&pLocator));
checkResult(pLocator->GetPath (testname, sizeof(testname)));
checkExpression(wcscmp(testname, locator2) == 0, AAFRESULT_TEST_FAILED);
pLocator->Release();
pLocator = NULL;
/*****/
/* Reset, and check the first element again*/
checkResult(pEnum->Reset());
checkResult(pEnum->NextOne(&pLocator));
checkResult(pLocator->GetPath (testname, sizeof(testname)));
checkExpression(wcscmp(testname, locator1) == 0, AAFRESULT_TEST_FAILED);
pLocator->Release();
pLocator = NULL;
/* Reset, Skip, and check the second element again*/
checkResult(pEnum->Reset());
checkResult(pEnum->Skip(1));
checkResult(pEnum->NextOne(&pLocator));
checkResult(pLocator->GetPath (testname, sizeof(testname)));
checkExpression(wcscmp(testname, locator2) == 0, AAFRESULT_TEST_FAILED);
pLocator->Release();
pLocator = NULL;
/* Reset, and read both elements */
checkResult(pEnum->Reset());
checkResult(pEnum->Next (2, (IAAFLocator **)&pArray, &resultCount));
checkExpression (resultCount == 2, AAFRESULT_TEST_FAILED);
checkResult(pArrayPoint[0]->GetPath (testname, sizeof(testname)));
checkExpression(wcscmp(testname, locator1) == 0, AAFRESULT_TEST_FAILED);
pArrayPoint[0]->Release();
pArrayPoint[0] = NULL;
checkResult(pArrayPoint[1]->GetPath (testname, sizeof(testname)));
checkExpression(wcscmp(testname, locator2) == 0, AAFRESULT_TEST_FAILED);
pArrayPoint[1]->Release();
pArrayPoint[1] = NULL;
//.........这里部分代码省略.........