void CInputDeviceDesc::ToString(CChars* psz) { SSetIterator sIter; CInputSourceDesc* pcInputSourceDesc; psz->Append(" --- CInputDeviceDesc ---\n"); psz->Append("ID: "); psz->Append(mszID.Text()); psz->AppendNewLine(); psz->Append("Name: "); psz->Append(mszFriendlyName.Text()); psz->AppendNewLine(); psz->Append("Category: "); psz->Append(mpcCategory->GetCategoryName()); psz->AppendNewLine(); psz->Append("Comment: "); psz->Append(mszComment.Text()); psz->AppendNewLine(); // CInputDataFormat* mpcDataFormat; psz->Append(" - CInputSourceDesc : mlcInputs -\n"); pcInputSourceDesc = mlcInputs.StartIteration(&sIter); while (pcInputSourceDesc) { pcInputSourceDesc->ToString(psz); pcInputSourceDesc = mlcInputs.Iterate(&sIter); } }
void CInputDeviceState::UpdateRestEvents(CInputDeviceValues* pcEvents, unsigned int uiSequence) { int i; SInputSourceState* psState; CInputSourceDesc* pcSourceDesc; BOOL bNewValue; float fValue; for (i = 0; i < macSourceStates.NumElements(); i++) { psState = macSourceStates.Get(i); pcSourceDesc = psState->pcDesc; if (!(psState->iFlags & SOURCE_STATE_EMITTED_EVENT)) { if (psState->pcDesc->GetEmitRestEvent()) { fValue = pcSourceDesc->GetRestValue(); bNewValue = SetValue(psState, fValue); if (bNewValue) { pcEvents->Add(mpcDevice, pcSourceDesc, fValue, uiSequence, TRUE, 0); } } } if (psState->fValue == pcSourceDesc->GetRestValue()) { psState->iFlags |= SOURCE_STATE_RESTING; } } }
CInputSourceDesc* CInputDeviceDesc::AddInput(EInputSourceType eType, char* szFriendlyName) { CInputSourceDesc* pcSource; pcSource = mlcInputs.Add(); pcSource->Init(this, eType, szFriendlyName, mlcInputs.NumElements()-1); return pcSource; }
void CInputDevice::Process(void* pvInput, unsigned int uiSequence) { CInputSourceDesc* pcSourceDesc; SSetIterator sIter; pcSourceDesc = mpcDesc->StartInputsIteration(&sIter); while (pcSourceDesc) { pcSourceDesc->Process(pvInput, &mcState, &mcInputValues, uiSequence); pcSourceDesc = mpcDesc->IterateInputs(&sIter); } }
void CInputDevice::GetSources(CArrayInputSourceDescPtr* pcSources, CInputCategoryGeneric* pcGeneric) { CInputSourceDesc* pcSource; SSetIterator sIter; pcSource = mpcDesc->StartInputsIteration(&sIter); while (pcSource) { if (pcSource->GetGenerics()->Contains(&pcGeneric)) { pcSources->Add(&pcSource); } pcSource = mpcDesc->IterateInputs(&sIter); } }
void CInputDeviceDesc::GetSources(CArrayIntAndPointer* apcDest, CInputCategoryGeneric* pcGeneric) { SSetIterator sIter; CInputSourceDesc* pcSourceDesc; pcSourceDesc = mlcInputs.StartIteration(&sIter); while (pcSourceDesc) { if (pcSourceDesc->GetGenerics()->Contains(&pcGeneric)) { apcDest->AddIfUnique(pcSourceDesc, -1); } pcSourceDesc = mlcInputs.Iterate(&sIter); } }
CInputSourceDesc* CInputDeviceDesc::GetSource(char* szFriendlyName) { CInputSourceDesc* pcSource; SSetIterator sIter; pcSource = mlcInputs.StartIteration(&sIter); while (pcSource) { if (pcSource->Is(szFriendlyName)) { return pcSource; } pcSource = mlcInputs.Iterate(&sIter); } return pcSource; }
BOOL CInputDeviceDesc::RenameSource(char* szOldName, char* szNewName) { CInputSourceDesc* pcSource; SSetIterator sIter; pcSource = mlcInputs.StartIteration(&sIter); while (pcSource) { if (pcSource->Is(szOldName)) { pcSource->SetFriendlyName(szNewName); return TRUE; } pcSource = mlcInputs.Iterate(&sIter); } return FALSE; }
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); } }
BOOL CInputDeviceState::Rest(CInputDevice* pcDevice) { int i; CInputSourceDesc* pcSourceDesc; SInputSourceState* psSourceState; SSetIterator sIter; mpcDevice = pcDevice; macSourceStates.Kill(); macSourceStates.Allocate(&gcSystemAllocator, pcDevice->GetDesc()->NumInputs()); pcSourceDesc = pcDevice->GetDesc()->StartInputsIteration(&sIter); i = 0; while (pcSourceDesc) { psSourceState = macSourceStates.Get(i); psSourceState->pcDesc = pcSourceDesc; if (psSourceState->pcDesc->HasRestValue()) { psSourceState->iFlags = SOURCE_STATE_RESTING | SOURCE_STATE_VALID; psSourceState->fValue = pcSourceDesc->GetRestValue(); } else { psSourceState->iFlags = 0; psSourceState->fValue = 0.0f; } if (pcSourceDesc->GetStateIndex() != i) { return FALSE; } pcSourceDesc = pcDevice->GetDesc()->IterateInputs(&sIter); i++; } return TRUE; }