CInputSourceDesc* CInputDeviceDesc::AddInput(EInputSourceType eType, char* szFriendlyName) { CInputSourceDesc* pcSource; pcSource = mlcInputs.Add(); pcSource->Init(this, eType, szFriendlyName, mlcInputs.NumElements()-1); return pcSource; }
void CInputDeviceDesc::CopySources(CInputDeviceCopyContext* pcContext) { CInputSourceDesc* pcInputSourceDesc; CInputSourceDesc* pcInputDestDesc; int iNumInputs; SSetIterator sIter; iNumInputs = mlcInputs.NumElements(); pcInputSourceDesc = pcContext->mpcSourceDeviceDesc->mlcInputs.StartIteration(&sIter); while (pcInputSourceDesc) { pcInputDestDesc = mlcInputs.Add(); pcInputDestDesc->Init(this, pcInputSourceDesc->GetType(), pcInputSourceDesc->GetFriendlyName(), pcInputSourceDesc->GetStateIndex() + iNumInputs); pcInputDestDesc->SetRest(pcInputSourceDesc->GetRestValue(), pcInputSourceDesc->GetEmitRestEvent(), pcInputSourceDesc->HasRestValue()); pcInputDestDesc->CopyValues(pcInputSourceDesc); pcInputDestDesc->CopyActions(pcInputSourceDesc); pcContext->mmppSources.Put(pcInputSourceDesc, pcInputDestDesc); pcInputSourceDesc = pcContext->mpcSourceDeviceDesc->mlcInputs.Iterate(&sIter); } }