Sunshine0.0.5917
Sunshine 0.0.5917
Self-hosted game stream host for Moonlight.
Loading...
Searching...
No Matches
main.cpp File Reference

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

#include <cerrno>
#include <codecvt>
#include <csignal>
#include <cstring>
#include <filesystem>
#include <fstream>
#include <iostream>
#include "platform/macos/misc.h"
#include <mach-o/dyld.h>
#include "platform/common.h"
#include "platform/linux/graphics.h"
#include "platform/linux/misc.h"
#include <sys/auxv.h>
#include <rs.h>
#include <libvirtualhid/license.hpp>
#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 "platform/permissions.h"
#include "process.h"
#include "system_tray.h"
#include "upnp.h"
#include "video.h"
Include dependency graph for main.cpp:

Functions

WINAPI BOOL ConsoleCtrlHandler (DWORD type)
 Handle Windows console control events for shutdown.
int main (int argc, char *argv[])
 Run the main application or worker loop.
void mainThreadLoop (const std::shared_ptr< safe::event_t< bool > > &shutdown_event)
 Run the main event loop until Sunshine is asked to exit.
template<class FN>
void on_signal (int sig, FN &&fn)
 Register the handler invoked for a POSIX signal.
void on_signal_forwarder (int sig)
 Forward a POSIX signal to the registered Sunshine handler.
LRESULT CALLBACK SessionMonitorWindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 Handle Windows session-change messages for the monitor window.

Variables

std::map< std::string_view, std::function< int(const char *name, int argc, char **argv)> > cmd_to_func
 Dispatch commands through a common signature, ignoring arguments each command does not need.
std::map< int, std::function< void()> > signal_handlers
 Signal handlers.
constexpr bool tray_is_enabled = true
 Compile-time flag indicating tray support is enabled.

Detailed Description

Definitions for the main entry point for Sunshine.

Function Documentation

◆ ConsoleCtrlHandler()

WINAPI BOOL ConsoleCtrlHandler ( DWORD type)

Handle Windows console control events for shutdown.

Parameters
typeProtocol, message, or resource type selector.
Returns
Process or platform callback exit code.

◆ main()

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

Run the main application or worker loop.

Main application entry point.

Parameters
argcThe number of arguments.
argvThe arguments.
Returns
Process or platform callback exit code.

Run the main application or worker loop.

Examples

main(1, const char* args[] = {"sunshine", nullptr});
int main(int argc, char *argv[])
Run the main application or worker loop.
Definition main.cpp:181
Functions for handling command line arguments.
Definition entry_handler.cpp:41
Returns
Process or platform callback exit code.

◆ mainThreadLoop()

void mainThreadLoop ( const std::shared_ptr< safe::event_t< bool > > & shutdown_event)

Run the main event loop until Sunshine is asked to exit.

Parameters
shutdown_eventShutdown event.

◆ on_signal()

template<class FN>
void on_signal ( int sig,
FN && fn )

Register the handler invoked for a POSIX signal.

Parameters
sigNative signal number being handled.
fnSignal handler function to install.

◆ on_signal_forwarder()

void on_signal_forwarder ( int sig)

Forward a POSIX signal to the registered Sunshine handler.

Parameters
sigNative signal number being handled.

◆ SessionMonitorWindowProc()

LRESULT CALLBACK SessionMonitorWindowProc ( HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam )

Handle Windows session-change messages for the monitor window.

Parameters
hwndWindow handle receiving the Windows control event.
uMsgU msg.
wParamW param.
lParamL param.
Returns
Process or platform callback exit code.

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, char **) {
return args::help(name);
}},
{"version"sv, [](const char *, int, char **) {
return args::version();
}},
{"restore-nvprefs-undo"sv, [](const char *, int, char **) {
}},
}
ptr_t< char > name
Current service name, updated when Avahi reports a collision.
Definition publish.cpp:401
int creds(const char *name, int argc, char *argv[])
Reset the user credentials.
Definition entry_handler.cpp:42
int version()
Print the version to stdout, then exit.
Definition entry_handler.cpp:57
int restore_nvprefs_undo()
Restore global NVIDIA control panel settings. If Sunshine was improperly terminated,...
Definition entry_handler.cpp:63
int help(const char *name)
Print help to stdout, then exit.
Definition entry_handler.cpp:52

Dispatch commands through a common signature, ignoring arguments each command does not need.