CInputVirtualDevice* CInputDevice::CreateVariableVirtualDeviceFromThis(CInputActions* pcInputActions) { CInputVirtualDevice* pcVirtual; CInputSourceDesc* pcSource; CInputDevices* pcInputDevices; CChars szTemp; CArrayIntAndPointer apcSourceDescs; int i; pcInputDevices = GetInputDevices(); szTemp.Init(mszFriendlyName.Text()); szTemp.Append(" Variable"); pcVirtual = pcInputDevices->CreateVirtualDevice(szTemp.Text()); szTemp.Kill(); mcVariables.SetChords(pcVirtual->GetChords()); apcSourceDescs.Init(8); mpcDesc->GetVariableChordDescs()->GetInputSourceDescs(&apcSourceDescs, mpcDesc); for (i = 0; i < apcSourceDescs.NumElements(); i++) { pcSource = (CInputSourceDesc*)apcSourceDescs.GetPtr(i); pcVirtual->AddSource(this, pcSource); } apcSourceDescs.Kill(); pcVirtual->DoneAddingSources(); GetInputDevices()->AddChords(pcVirtual, mpcDesc->GetVariableChordDescs(), this); pcInputDevices->UpdateCommonality(); pcVirtual->Unstoppable(); return pcVirtual; }
CInputVirtualDevice* CInputDevice::CreateDefaultVirtualDeviceFromThis(char* szName) { CInputVirtualDevice* pcVirtual; SSetIterator sIter; CInputSourceDesc* pcSource; CInputDevices* pcInputDevices; CChars szTemp; pcInputDevices = GetInputDevices(); if (szName) { szTemp.Init(szName); } else { szTemp.Init(mszFriendlyName.Text()); szTemp.Append(" Default"); } pcVirtual = pcInputDevices->CreateVirtualDevice(szTemp.Text()); szTemp.Kill(); pcSource = mpcDesc->StartInputsIteration(&sIter); while (pcSource) { pcVirtual->AddSource(this, pcSource); pcSource = mpcDesc->IterateInputs(&sIter); } pcVirtual->DoneAddingSources(); pcInputDevices->UpdateCommonality(); return pcVirtual; }
CInputVirtualDeviceDesc* CInputDeviceDesc::CreateDefaultVirtualDesc(void) { CInputVirtualDeviceDesc* pcVirtualDesc; SSetIterator sIter; CInputSourceDesc* pcSourceDesc; CInputDevices* pcInputDevices; CChars szTemp; pcInputDevices = GetInputDevices(); szTemp.Init(mszFriendlyName.Text()); szTemp.Append(" Default"); pcVirtualDesc = pcInputDevices->CreateVirtualDeviceDescription(szTemp.Text(), TRUE); szTemp.Kill(); pcSourceDesc = mlcInputs.StartIteration(&sIter); while (pcSourceDesc) { pcVirtualDesc->AddSource(pcSourceDesc, -1); pcSourceDesc = mlcInputs.Iterate(&sIter); } return pcVirtualDesc; }