| 1654 | } |
| 1655 | |
| 1656 | void parseExtendedConfigurationLine(char* currentLine, ExtendedSettings* pExtendedSettings, uint32_t preferedGpuId) |
| 1657 | { |
| 1658 | char settingName[MAX_GPU_VENDOR_STRING_LENGTH] = {}; |
| 1659 | char ruleParameters[MAX_GPU_VENDOR_STRING_LENGTH] = {}; |
| 1660 | char assignmentValue[MAX_GPU_VENDOR_STRING_LENGTH] = {}; |
| 1661 | |
| 1662 | // parse selection rule |
| 1663 | size_t ruleLength = strcspn(currentLine, "#"); |
| 1664 | const char* pLineEnd = currentLine + ruleLength; |
| 1665 | char* tokens[] = { settingName, ruleParameters, assignmentValue }; |
| 1666 | tokenizeLine(currentLine, pLineEnd, ";", MAX_GPU_VENDOR_STRING_LENGTH, TF_ARRAY_COUNT(tokens), tokens); |
| 1667 | |
| 1668 | uint32_t settingIndex = getSettingIndex(settingName, pExtendedSettings->mNumSettings, pExtendedSettings->ppSettingNames); |
| 1669 | if (settingIndex != INVALID_OPTION) |
| 1670 | { |
| 1671 | char* rulesBegin = ruleParameters; |
| 1672 | ExtendedConfigurationRule* currentExtendedRule = |
| 1673 | &gGraphicsConfigRules.mExtendedConfigurationRules[gGraphicsConfigRules.mExtendedConfigurationRulesCount]; |
| 1674 | *currentExtendedRule = {}; |
| 1675 | currentExtendedRule->name = pExtendedSettings->ppSettingNames[settingIndex]; |
| 1676 | currentExtendedRule->pSettingValue = &pExtendedSettings->pSettings[settingIndex]; |
| 1677 | parseConfigurationRules(¤tExtendedRule->pConfigurationRules, ¤tExtendedRule->comparisonRulesCount, rulesBegin, |
| 1678 | preferedGpuId); |
| 1679 | bool validConversion = stringToInteger(assignmentValue, ¤tExtendedRule->assignmentValue, 10); |
| 1680 | if (!validConversion) |
| 1681 | { |
| 1682 | LOGF(eDEBUG, "parseUserSettings: cannot convert %s for setting name: '%s'.", assignmentValue, currentExtendedRule->name); |
| 1683 | tf_free(currentExtendedRule->pConfigurationRules); |
| 1684 | } |
| 1685 | else |
| 1686 | { |
| 1687 | gGraphicsConfigRules.mExtendedConfigurationRulesCount++; |
| 1688 | } |
| 1689 | } |
| 1690 | else |
| 1691 | { |
| 1692 | LOGF(eDEBUG, "User Settings| Unknown ExtendedSetting: '%s' from line: '%s'", settingName, currentLine); |
| 1693 | } |
| 1694 | } |
| 1695 | |
| 1696 | void parseConfigurationRules(ConfigurationRule** ppConfigurationRules, uint32_t* pRulesCount, char* ruleStr, uint32_t preferedGpuId) |
| 1697 | { |
no test coverage detected