Use rotate to reorder the default list entry

This commit is contained in:
Chris Robinson
2019-10-28 23:47:30 -07:00
parent d37a294d4c
commit 2741a94e58
+8 -18
View File
@@ -1283,8 +1283,6 @@ al::vector<EnumeratedHrtf> EnumerateHrtf(const char *devname)
pathlist = next;
}
}
else if(ConfigValueExists(devname, nullptr, "hrtf_tables"))
ERR("The hrtf_tables option is deprecated, please use hrtf-paths instead.\n");
if(usedefaults)
{
@@ -1298,23 +1296,15 @@ al::vector<EnumeratedHrtf> EnumerateHrtf(const char *devname)
AddBuiltInEntry(list, "Built-In 48000hz", IDR_DEFAULT_48000_MHR);
}
if(!list.empty())
if(auto defhrtfopt = ConfigValueStr(devname, nullptr, "default-hrtf"))
{
if(auto defhrtfopt = ConfigValueStr(devname, nullptr, "default-hrtf"))
{
auto iter = std::find_if(list.begin(), list.end(),
[&defhrtfopt](const EnumeratedHrtf &entry) -> bool
{ return entry.name == *defhrtfopt; }
);
if(iter == list.end())
WARN("Failed to find default HRTF \"%s\"\n", defhrtfopt->c_str());
else if(iter != list.begin())
{
EnumeratedHrtf entry{std::move(*iter)};
list.erase(iter);
list.insert(list.begin(), std::move(entry));
}
}
auto find_entry = [&defhrtfopt](const EnumeratedHrtf &entry) -> bool
{ return entry.name == *defhrtfopt; };
auto iter = std::find_if(list.begin(), list.end(), find_entry);
if(iter == list.end())
WARN("Failed to find default HRTF \"%s\"\n", defhrtfopt->c_str());
else if(iter != list.begin())
std::rotate(list.begin(), iter, iter+1);
}
return list;