diff --git a/Alc/backends/pulseaudio.cpp b/Alc/backends/pulseaudio.cpp index 15f02e1a..a52a028d 100644 --- a/Alc/backends/pulseaudio.cpp +++ b/Alc/backends/pulseaudio.cpp @@ -516,6 +516,14 @@ struct DevMap { { } }; +static bool checkName(const std::vector &list, const std::string &name) +{ + return std::find_if(list.cbegin(), list.cend(), + [&name](const DevMap &entry) -> bool + { return entry.name == name; } + ) != list.cend(); +} + static std::vector PlaybackDevices; static std::vector CaptureDevices; @@ -612,10 +620,7 @@ static void PulsePlayback_deviceCallback(pa_context *UNUSED(context), const pa_s */ int count{1}; std::string newname{info->description}; - while(std::find_if(PlaybackDevices.cbegin(), PlaybackDevices.cend(), - [&newname](const DevMap &entry) -> bool - { return entry.name == newname; } - ) != PlaybackDevices.cend()) + while(checkName(PlaybackDevices, newname)) { newname = info->description; newname += " #"; @@ -1323,10 +1328,7 @@ static void PulseCapture_deviceCallback(pa_context *UNUSED(context), const pa_so */ int count{1}; std::string newname{info->description}; - while(std::find_if(CaptureDevices.cbegin(), CaptureDevices.cend(), - [&newname](const DevMap &entry) -> bool - { return entry.name == newname; } - ) != CaptureDevices.cend()) + while(checkName(CaptureDevices, newname)) { newname = info->description; newname += " #";