server/tools/playnite_launcher/lossless_scaling_policy.cpp
Rama main · réplica de lectura del repositorio original.
#include "tools/playnite_launcher/lossless_scaling_policy.h"
#include <cwctype>
namespace playnite_launcher::lossless::policy {
bool should_launch_new_instance(restart_state state, bool force_launch) {
return force_launch || state.running_process_count == 0 || state.stopped;
}
bool should_accept_focus_candidate(bool has_filter, bool path_matches, bool has_main_window) {
return has_main_window && (!has_filter || path_matches);
}
std::optional<std::wstring> select_launch_executable(const launch_executables &executables) {
return executables.lossless_scaling;
}
std::wstring build_executable_filter(const std::vector<std::wstring> &executable_names) {
std::wstring filter;
for (const auto &name : executable_names) {
std::wstring lowercase_name = name;
for (auto &character : lowercase_name) {
character = static_cast<wchar_t>(std::towlower(character));
}
if (lowercase_name.empty()) {
continue;
}
if (!filter.empty()) {
filter.push_back(L';');
}
filter.append(lowercase_name);
}
return filter;
}
} // namespace playnite_launcher::lossless::policy