diff --git a/src/process.cpp b/src/process.cpp index 5fdf96fe..b6d5cdc9 100644 --- a/src/process.cpp +++ b/src/process.cpp @@ -325,7 +325,13 @@ namespace proc { return 503; } + std::string fps_str; + char fps_buf[8]; + snprintf(fps_buf, sizeof(fps_buf), "%.3f", (float)launch_session->fps / 1000.0f); + fps_str = fps_buf; + // Add Stream-specific environment variables + // Sunshine Compatibility _env["SUNSHINE_APP_ID"] = _app.id; _env["SUNSHINE_APP_NAME"] = _app.name; _env["SUNSHINE_CLIENT_UID"] = launch_session->unique_id; @@ -335,11 +341,27 @@ namespace proc { _env["SUNSHINE_CLIENT_RENDER_WIDTH"] = std::to_string(launch_session->width); _env["SUNSHINE_CLIENT_RENDER_HEIGHT"] = std::to_string(launch_session->height); _env["SUNSHINE_CLIENT_SCALE_FACTOR"] = std::to_string(scale_factor); - _env["SUNSHINE_CLIENT_FPS"] = std::to_string(launch_session->fps); + _env["SUNSHINE_CLIENT_FPS"] = fps_str; _env["SUNSHINE_CLIENT_HDR"] = launch_session->enable_hdr ? "true" : "false"; _env["SUNSHINE_CLIENT_GCMAP"] = std::to_string(launch_session->gcmap); _env["SUNSHINE_CLIENT_HOST_AUDIO"] = launch_session->host_audio ? "true" : "false"; _env["SUNSHINE_CLIENT_ENABLE_SOPS"] = launch_session->enable_sops ? "true" : "false"; + + _env["APOLLO_APP_ID"] = _app.id; + _env["APOLLO_APP_NAME"] = _app.name; + _env["APOLLO_CLIENT_UID"] = launch_session->unique_id; + _env["APOLLO_CLIENT_NAME"] = launch_session->device_name; + _env["APOLLO_CLIENT_WIDTH"] = std::to_string(render_width); + _env["APOLLO_CLIENT_HEIGHT"] = std::to_string(render_height); + _env["APOLLO_CLIENT_RENDER_WIDTH"] = std::to_string(launch_session->width); + _env["APOLLO_CLIENT_RENDER_HEIGHT"] = std::to_string(launch_session->height); + _env["APOLLO_CLIENT_SCALE_FACTOR"] = std::to_string(scale_factor); + _env["APOLLO_CLIENT_FPS"] = fps_str; + _env["APOLLO_CLIENT_HDR"] = launch_session->enable_hdr ? "true" : "false"; + _env["APOLLO_CLIENT_GCMAP"] = std::to_string(launch_session->gcmap); + _env["APOLLO_CLIENT_HOST_AUDIO"] = launch_session->host_audio ? "true" : "false"; + _env["APOLLO_CLIENT_ENABLE_SOPS"] = launch_session->enable_sops ? "true" : "false"; + int channelCount = launch_session->surround_info & (65535); switch (channelCount) { case 2: diff --git a/src_assets/common/assets/web/apps.html b/src_assets/common/assets/web/apps.html index 29303505..3a3b7349 100644 --- a/src_assets/common/assets/web/apps.html +++ b/src_assets/common/assets/web/apps.html @@ -333,62 +333,62 @@ - SUNSHINE_APP_ID + APOLLO_APP_ID {{ $t('apps.env_app_id') }} - SUNSHINE_APP_NAME + APOLLO_APP_NAME {{ $t('apps.env_app_name') }} - SUNSHINE_CLIENT_UID + APOLLO_CLIENT_UID {{ $t('apps.env_client_uid') }} - SUNSHINE_CLIENT_NAME + APOLLO_CLIENT_NAME {{ $t('apps.env_client_name') }} - SUNSHINE_CLIENT_WIDTH + APOLLO_CLIENT_WIDTH {{ $t('apps.env_client_width') }} - SUNSHINE_CLIENT_HEIGHT + APOLLO_CLIENT_HEIGHT {{ $t('apps.env_client_height') }} - SUNSHINE_CLIENT_FPS + APOLLO_CLIENT_FPS {{ $t('apps.env_client_fps') }} - SUNSHINE_CLIENT_HDR + APOLLO_CLIENT_HDR {{ $t('apps.env_client_hdr') }} - SUNSHINE_CLIENT_GCMAP + APOLLO_CLIENT_GCMAP {{ $t('apps.env_client_gcmap') }} - SUNSHINE_CLIENT_HOST_AUDIO + APOLLO_CLIENT_HOST_AUDIO {{ $t('apps.env_client_host_audio') }} - SUNSHINE_CLIENT_ENABLE_SOPS + APOLLO_CLIENT_ENABLE_SOPS {{ $t('apps.env_client_enable_sops') }} - SUNSHINE_CLIENT_AUDIO_CONFIGURATION + APOLLO_CLIENT_AUDIO_CONFIGURATION {{ $t('apps.env_client_audio_config') }}
{{ $t('apps.env_qres_example') }} -
cmd /C <{{ $t('apps.env_qres_path') }}>\QRes.exe /X:%SUNSHINE_CLIENT_WIDTH% /Y:%SUNSHINE_CLIENT_HEIGHT% /R:%SUNSHINE_CLIENT_FPS%
+
cmd /C <{{ $t('apps.env_qres_path') }}>\QRes.exe /X:%APOLLO_CLIENT_WIDTH% /Y:%APOLLO_CLIENT_HEIGHT% /R:%APOLLO_CLIENT_FPS%
{{ $t('apps.env_xrandr_example') }} -
sh -c "xrandr --output HDMI-1 --mode \"${SUNSHINE_CLIENT_WIDTH}x${SUNSHINE_CLIENT_HEIGHT}\" --rate ${SUNSHINE_CLIENT_FPS}"
+
sh -c "xrandr --output HDMI-1 --mode \"${APOLLO_CLIENT_WIDTH}x${APOLLO_CLIENT_HEIGHT}\" --rate ${APOLLO_CLIENT_FPS}"
{{ $t('apps.env_displayplacer_example') }} -
sh -c "displayplacer "id:<screenId> res:${SUNSHINE_CLIENT_WIDTH}x${SUNSHINE_CLIENT_HEIGHT} hz:${SUNSHINE_CLIENT_FPS} scaling:on origin:(0,0) degree:0""
+
sh -c "displayplacer "id:<screenId> res:${APOLLO_CLIENT_WIDTH}x${APOLLO_CLIENT_HEIGHT} hz:${APOLLO_CLIENT_FPS} scaling:on origin:(0,0) degree:0""