#include "tools/playnite_launcher/lossless_scaling_policy.h" #include 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 select_launch_executable(const launch_executables &executables) { return executables.lossless_scaling; } std::wstring build_executable_filter(const std::vector &executable_names) { std::wstring filter; for (const auto &name : executable_names) { std::wstring lowercase_name = name; for (auto &character : lowercase_name) { character = static_cast(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