Sunshine v2025.118.151840
Self-hosted game stream host for Moonlight.
main.cpp File Reference

Definitions for the main entry point for Sunshine. More...

#include <codecvt>
#include <csignal>
#include <fstream>
#include <iostream>
#include "confighttp.h"
#include "display_device.h"
#include "entry_handler.h"
#include "globals.h"
#include "httpcommon.h"
#include "logging.h"
#include "main.h"
#include "nvhttp.h"
#include "process.h"
#include "system_tray.h"
#include "upnp.h"
#include "version.h"
#include "video.h"
#include "rswrapper.h"
Include dependency graph for main.cpp:

Functions

WINAPI BOOL ConsoleCtrlHandler (DWORD type)
 
int main (int argc, char *argv[])
 Main application entry point.
 
template<class FN >
void on_signal (int sig, FN &&fn)
 
void on_signal_forwarder (int sig)
 
LRESULT CALLBACK SessionMonitorWindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 

Variables

std::map< std::string_view, std::function< int(const char *name, int argc, char **argv)> cmd_to_func )
 
std::map< int, std::function< void()> > signal_handlers
 

Detailed Description

Definitions for the main entry point for Sunshine.

Function Documentation

◆ main()

int main ( int argc,
char * argv[] )

Main application entry point.

Parameters
argcThe number of arguments.
argvThe arguments.

Examples

main(1, const char* args[] = {"sunshine", nullptr});
int main(int argc, char *argv[])
Main application entry point.
Definition main.cpp:87
Functions for handling command line arguments.
Definition entry_handler.cpp:41

Variable Documentation

◆ cmd_to_func

std::map<std::string_view, std::function<int(const char *name, int argc, char **argv)> cmd_to_func)
Initial value:
{
{ "creds"sv, [](const char *name, int argc, char **argv) { return args::creds(name, argc, argv); } },
{ "help"sv, [](const char *name, int argc, char **argv) { return args::help(name); } },
{ "version"sv, [](const char *name, int argc, char **argv) { return args::version(); } },
{ "restore-nvprefs-undo"sv, [](const char *name, int argc, char **argv) { return args::restore_nvprefs_undo(); } },
}
int creds(const char *name, int argc, char *argv[])
Reset the user credentials.
Definition entry_handler.cpp:43
int version()
Print the version to stdout, then exit.
Definition entry_handler.cpp:60
int restore_nvprefs_undo()
Restore global NVIDIA control panel settings. If Sunshine was improperly terminated,...
Definition entry_handler.cpp:67
int help(const char *name)
Print help to stdout, then exit.
Definition entry_handler.cpp:54