本文整理汇总了C++中IAAFMob::AppendSlot方法的典型用法代码示例。如果您正苦于以下问题:C++ IAAFMob::AppendSlot方法的具体用法?C++ IAAFMob::AppendSlot怎么用?C++ IAAFMob::AppendSlot使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IAAFMob
的用法示例。
在下文中一共展示了IAAFMob::AppendSlot方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CreateAAFFile
//.........这里部分代码省略.........
check(pEventSceneDesc->SetPosition(position));
check(pEventSceneDesc->SetComment(L"Racer pulls away from crowd"));
check(pEventSceneDesc->QueryInterface(IID_IAAFComponent, (void **)&pComp));
check(pComp->SetDataDef(pDDefSceneDesc));
// Add it to the sequence
check(pSeqSceneDesc->AppendComponent(pComp));
pComp->Release();
pComp = NULL;
pEventSceneDesc->Release();
pEventSceneDesc=NULL;
check(pSeqSceneDesc->QueryInterface(IID_IAAFSegment, (void **)&pSegment));
// Create third Comment Marker
check(pCommentMarkerCD->CreateInstance(IID_IAAFEvent,
(IUnknown **)&pEventSceneDesc));
position=250;
check(pEventSceneDesc->SetPosition(position));
check(pEventSceneDesc->SetComment(L"Racer passes finish line"));
check(pEventSceneDesc->QueryInterface(IID_IAAFComponent, (void **)&pComp));
check(pComp->SetDataDef(pDDefSceneDesc));
// Add it to the sequence
check(pSeqSceneDesc->AppendComponent(pComp));
pComp->Release();
pComp = NULL;
pEventSceneDesc->Release();
pEventSceneDesc=NULL;
// Add the event sequence to the event mob slot
// Sequence must have at least one component to ensure event mob slot is valid
check(pSlot->SetSegment(pSegment));
pSegment->Release();
pSegment = NULL;
// Append the event slot to the Master Mob
check(pMob->AppendSlot(pSlot));
// Add the KLV data to the Master Mob
// Register the two KLVKeys
check(pDictionary->LookupTypeDef(kAAFTypeID_UInt8Array,
&pUnknownBaseType));
check(pDictionary->RegisterKLVDataKey(KLVKey_BinaryBlob1,
pUnknownBaseType));
check(pDictionary->LookupTypeDef(kAAFTypeID_Int32,
&pInt32BaseType));
check(pDictionary->RegisterKLVDataKey(KLVKey_Int32_1,
pInt32BaseType));
// Next define new ASCII string data def
// check(pDictionary->RegisterKLVDataKey(KLVKey_ASCIIString1,
// pASCIIStringBaseType));
// Get the KLVData ClassDefinition
check(pDictionary->LookupClassDef(AUID_AAFKLVData,
&pKLVDataCD));
// Create KLVData and append it to Mob
check(pKLVDataCD->CreateInstance(IID_IAAFKLVData,
(IUnknown **)&pKLVData));
check(pKLVData->Initialize(KLVKey_BinaryBlob1,
sizeof(blobData), (aafUInt8 *)blobData));
check(pMob->AppendKLVData(pKLVData));
pKLVData->Release();
pKLVData=NULL;
// Create KLVData and append it to Mob
示例2: CreateAAFFile
static HRESULT CreateAAFFile(
aafWChar * pFileName,
aafUID_constref fileKind,
testRawStorageType_t rawStorageType,
aafProductIdentification_constref productID)
{
IAAFFile * pFile = NULL;
bool bFileOpen = false;
IAAFHeader * pHeader = NULL;
IAAFDictionary* pDictionary = NULL;
IAAFMob *pMob = NULL;
IAAFMobSlot *newSlot = NULL;
IAAFSegment *seg = NULL;
IAAFSourceClip *sclp = NULL;
IAAFComponent *pComp = NULL;
HRESULT hr = S_OK;
try
{
// Remove the previous test file if any.
RemoveTestFile(pFileName);
// Create the file.
checkResult(CreateTestFile( pFileName, fileKind, rawStorageType, productID, &pFile ));
bFileOpen = true;
// We can't really do anthing in AAF without the header.
checkResult(pFile->GetHeader(&pHeader));
// Get the AAF Dictionary so that we can create valid AAF objects.
checkResult(pHeader->GetDictionary(&pDictionary));
CAAFBuiltinDefs defs (pDictionary);
//Make the first mob
long test;
// Create a concrete subclass of Mob
checkResult(defs.cdMasterMob()->
CreateInstance(IID_IAAFMob,
(IUnknown **)&pMob));
checkResult(pMob->SetMobID(TEST_MobID));
checkResult(pMob->SetName(L"MOBTest"));
// Add some slots
for(test = 0; test < 5; test++)
{
checkResult(defs.cdSourceClip()->
CreateInstance(IID_IAAFSourceClip,
(IUnknown **)&sclp));
checkResult(sclp->QueryInterface (IID_IAAFComponent, (void **)&pComp));
checkResult(pComp->SetDataDef (defs.ddkAAFPicture()));
pComp->Release();
pComp = NULL;
checkResult(sclp->QueryInterface (IID_IAAFSegment, (void **)&seg));
// Create a concrete subclass of MobSlot
checkResult(defs.cdStaticMobSlot()->
CreateInstance(IID_IAAFMobSlot,
(IUnknown **)&newSlot));
checkResult(newSlot->SetSegment(seg));
checkResult(newSlot->SetSlotID(test+1));
checkResult(newSlot->SetPhysicalNum(test+2));
checkResult(newSlot->SetName(slotNames[test]));
checkResult(pMob->AppendSlot (newSlot));
newSlot->Release();
newSlot = NULL;
seg->Release();
seg = NULL;
sclp->Release();
sclp = NULL;
}
// Add the mob to the file.
checkResult(pHeader->AddMob(pMob));
}
catch (HRESULT& rResult)
{
hr = rResult;
}
// Cleanup and return
if (newSlot)
newSlot->Release();
if (seg)
seg->Release();
if (sclp)
sclp->Release();
if (pComp)
pComp->Release();
//.........这里部分代码省略.........
示例3: CreateEvent
void EventTest::CreateEvent()
{
assert(_pHeader && _pDictionary);
HRESULT hr = S_OK;
IAAFEvent *pEvent = NULL;
IAAFEventMobSlot *pEventMobSlot = NULL;
IAAFSegment *pSegment = NULL;
IAAFMobSlot *pMobSlot = NULL;
IAAFDataDef *pDataDef = NULL;
IAAFComponent *pComp = NULL;
IAAFMob *pMob = NULL;
CAAFBuiltinDefs defs (_pDictionary);
try
{
// not already in dictionary
checkResult(defs.cdDataDef()->
CreateInstance (IID_IAAFDataDef,
(IUnknown **)&pDataDef));
hr = pDataDef->Initialize (kAAFDataDef_Test, L"Test", L"Test data");
hr = _pDictionary->RegisterDataDef (pDataDef);
// Create a concrete subclass of event
checkResult(defs.cdCommentMarker()->
CreateInstance(IID_IAAFEvent,
(IUnknown **)&pEvent));
checkResult(pEvent->SetPosition(_position));
checkResult(pEvent->SetComment(const_cast<wchar_t*>(_eventComment)));
checkResult(pEvent->QueryInterface(IID_IAAFComponent, (void **)&pComp));
checkResult(pComp->SetDataDef(pDataDef));
pComp->Release();
pComp = NULL;
// Get the segment inteface to the event to install into the mob slot.
checkResult(pEvent->QueryInterface(IID_IAAFSegment, (void **)&pSegment));
// Create and initialize an EventMobSlot
checkResult(defs.cdEventMobSlot()->
CreateInstance(IID_IAAFEventMobSlot,
(IUnknown **)&pEventMobSlot));
checkResult(pEventMobSlot->SetEditRate(const_cast<aafRational_t *>(&_editRate)));
// Get the mob slot interface so that we can add the event segment.
checkResult(pEventMobSlot->QueryInterface(IID_IAAFMobSlot, (void **)&pMobSlot));
// Add the event segment to the event mob slot.
checkResult(pMobSlot->SetSegment(pSegment));
// Create the mob to hold the new event mob slot.
checkResult(defs.cdCompositionMob()->
CreateInstance(IID_IAAFMob,
(IUnknown **)&pMob));
checkResult(pMob->SetName(L"CompositionMob::Name:Test mob to hold an event mob slot"));
// Append event slot to the composition mob.
checkResult(pMob->AppendSlot(pMobSlot));
// Save the id of the composition mob that contains our test
// event mob slot.
checkResult(pMob->SetMobID(gMobID));
// Attach the mob to the header...
checkResult(_pHeader->AddMob(pMob));
}
catch (HRESULT& rHR)
{
hr = rHR;
// fall through and handle cleanup
}
// Cleanup local references
if (pMob)
{
pMob->Release();
pMob = NULL;
}
if (pDataDef)
{
pDataDef->Release();
pDataDef = NULL;
}
if (pComp)
{
pComp->Release();
pComp = NULL;
}
if (pMobSlot)
{
pMobSlot->Release();
pMobSlot = NULL;
}
if (pEventMobSlot)
{
//.........这里部分代码省略.........
示例4: CreateAAFFile
//.........这里部分代码省略.........
checkResult(mSlot->SetSlotID(1));
checkResult(mSlot->SetSegment(seg));
checkResult(pMob->PrependSlot(mSlot));
checkExpression(pMob->PrependSlot(mSlot) == AAFRESULT_OBJECT_ALREADY_ATTACHED,
AAFRESULT_TEST_FAILED);
checkExpression(pMob->PrependSlot(NULL) == AAFRESULT_NULL_PARAM,
AAFRESULT_TEST_FAILED);
mSlot->Release();
mSlot = NULL;
seg->Release();
seg = NULL;
filler->Release();
filler = NULL;
// AppendSlot
checkResult(defs.cdStaticMobSlot()->
CreateInstance(IID_IAAFMobSlot,
(IUnknown **)&mSlot));
checkResult(defs.cdFiller()->
CreateInstance(IID_IAAFFiller,
(IUnknown **)&filler));
checkResult(filler->Initialize(defs.ddkAAFSound(), 10));
checkResult(filler->QueryInterface (IID_IAAFSegment, (void **)&seg));
checkResult(mSlot->SetName(slotNames[6]));
checkResult(mSlot->SetPhysicalNum(1));
checkResult(mSlot->SetSlotID(7));
checkResult(mSlot->SetSegment(seg));
checkResult(pMob->AppendSlot(mSlot));
checkExpression(pMob->AppendSlot(mSlot) == AAFRESULT_OBJECT_ALREADY_ATTACHED,
AAFRESULT_TEST_FAILED);
checkExpression(pMob->AppendSlot(NULL) == AAFRESULT_NULL_PARAM,
AAFRESULT_TEST_FAILED);
mSlot->Release();
mSlot = NULL;
seg->Release();
seg = NULL;
filler->Release();
filler = NULL;
// InsertSlotAt -- insert a timecode object for OffsetToMobTimecode() testing
timecode.startFrame = TCstartFrame; // One hour
timecode.drop = TCdrop;
timecode.fps = TCfps;
checkResult(defs.cdTimecode()->
CreateInstance(IID_IAAFTimecode,
(IUnknown **)&pTimecode));
checkResult(pTimecode->Initialize(100, &timecode));
checkResult(pTimecode->QueryInterface (IID_IAAFSegment, (void **)&seg));
assert(pComponent == NULL);
checkResult(pTimecode->QueryInterface(IID_IAAFComponent,(void **)&pComponent));
checkResult(pComponent->SetDataDef(defs.ddkAAFTimecode()));
pComponent->Release();
pComponent = NULL;
checkResult(defs.cdStaticMobSlot()->
CreateInstance(IID_IAAFMobSlot,