12#include <unordered_map>
20 inline std::unordered_map<std::string, std::string> modified_config_settings;
32 std::string sw_preset;
34 std::optional<int> svtav1_preset;
38 bool nv_realtime_hags;
39 bool nv_opengl_vulkan_on_dxgi;
40 bool nv_sunshine_high_power_mode;
47 int vbv_percentage_increase;
51 std::optional<int> qsv_preset;
52 std::optional<int> qsv_cavlc;
57 std::optional<int> amd_usage_h264;
58 std::optional<int> amd_usage_hevc;
59 std::optional<int> amd_usage_av1;
60 std::optional<int> amd_rc_h264;
61 std::optional<int> amd_rc_hevc;
62 std::optional<int> amd_rc_av1;
63 std::optional<int> amd_enforce_hrd;
64 std::optional<int> amd_quality_h264;
65 std::optional<int> amd_quality_hevc;
66 std::optional<int> amd_quality_av1;
67 std::optional<int> amd_preanalysis;
68 std::optional<int> amd_vbaq;
80 bool strict_rc_buffer;
85 std::string adapter_name;
86 std::string output_name;
119 std::string requested_resolution;
120 std::string requested_fps;
121 std::string final_resolution;
122 std::string final_refresh_rate;
126 std::vector<mode_remapping_entry_t>
mixed;
148 std::string virtual_sink;
150 bool install_steam_drivers;
153 constexpr int ENCRYPTION_MODE_NEVER = 0;
154 constexpr int ENCRYPTION_MODE_OPPORTUNISTIC = 1;
155 constexpr int ENCRYPTION_MODE_MANDATORY = 2;
158 std::chrono::milliseconds ping_timeout;
160 std::string file_apps;
165 int lan_encryption_mode;
166 int wan_encryption_mode;
172 std::string origin_web_ui_allowed;
177 std::string sunshine_name;
179 std::string file_state;
181 std::string external_ip;
185 std::unordered_map<int, int> keybindings;
187 std::chrono::milliseconds back_button_timeout;
188 std::chrono::milliseconds key_repeat_delay;
189 std::chrono::duration<double> key_repeat_period;
192 bool ds4_back_as_touchpad_click;
194 bool touchpad_as_ds4;
200 bool always_send_scancodes;
202 bool high_resolution_scrolling;
203 bool native_pen_touch;
218 prep_cmd_t(std::string &&do_cmd, std::string &&undo_cmd,
bool &&elevated):
219 do_cmd(std::move(do_cmd)),
220 undo_cmd(std::move(undo_cmd)),
221 elevated(std::move(elevated)) {
224 explicit prep_cmd_t(std::string &&do_cmd,
bool &&elevated):
225 do_cmd(std::move(do_cmd)),
226 elevated(std::move(elevated)) {
230 std::string undo_cmd;
237 std::bitset<flag::FLAG_SIZE> flags;
238 std::string credentials_file;
240 std::string username;
241 std::string password;
244 std::string config_file;
253 std::string address_family;
255 std::string log_file;
256 bool notify_pre_releases;
257 std::vector<prep_cmd_t> prep_cmds;
267 int parse(
int argc,
char *argv[]);
268 std::unordered_map<std::string, std::string> parse_config(
const std::string_view &file_content);
flag_e
Definition config.h:207
@ UPNP
Try Universal Plug 'n Play.
Definition config.h:211
@ FRESH_STATE
Do not load or save state.
Definition config.h:209
@ FLAG_SIZE
Number of flags.
Definition config.h:213
@ PIN_STDIN
Read PIN from stdin instead of http.
Definition config.h:208
@ FORCE_VIDEO_HEADER_REPLACE
force replacing headers inside video data
Definition config.h:210
@ CONST_PIN
Use "universal" pin.
Definition config.h:212
Contains all the functions and variables related to the nvhttp (GameStream) server.
Definition nvhttp.cpp:40
Declarations for NVENC encoder configuration.
std::vector< mode_remapping_entry_t > refresh_rate_only
To be use when only refresh_rate_option is set to automatic.
Definition config.h:128
std::vector< mode_remapping_entry_t > mixed
To be used when resolution_option and refresh_rate_option is set to automatic.
Definition config.h:126
std::vector< mode_remapping_entry_t > resolution_only
To be use when only resolution_option is set to automatic.
Definition config.h:127
std::chrono::milliseconds hdr_toggle_delay
Specify whether to apply HDR high-contrast color workaround and what delay to use.
Definition config.h:90
std::string manual_resolution
Manual resolution in case resolution_option == resolution_option_e::manual.
Definition config.h:133
refresh_rate_option_e
Definition config.h:107
hdr_option_e
Definition config.h:113
bool config_revert_on_disconnect
Specify whether to revert display configuration on client disconnect.
Definition config.h:138
std::chrono::milliseconds config_revert_delay
Time to wait until settings are reverted (after stream ends/app exists).
Definition config.h:137
std::string manual_refresh_rate
Manual refresh rate in case refresh_rate_option == refresh_rate_option_e::manual.
Definition config.h:135
config_option_e
Definition config.h:93
@ disabled
Disable the configuration for the device.
resolution_option_e
Definition config.h:101
@ automatic
Change resolution and use the one received from Moonlight.
@ manual
Change resolution and use the manually provided one.
NVENC encoder configuration.
Definition nvenc_config.h:18