Stephan Lachnit 9b44fc6def ci: fix static analyser with assertions hace 2 años
..
README.md 28243afde9 Clean up the main readme file and split some parts out hace 5 años
client_impl.c 6f7df91b60 lib: support the new pidfd based APIs hace 5 años
client_loader.c 10a31f8dec Update copyright years to 2019 hace 6 años
gamemode_client.h 9b44fc6def ci: fix static analyser with assertions hace 2 años
meson.build 8b408694b0 improve libgamemodeauto pkg-config file hace 4 años

README.md

libgamemode

libgamemode is an internal library used to dispatch requests to the daemon. Note: libgamemode should never be linked with directly.

libgamemodeauto is a simple dynamic library that automatically requests game mode when loaded. Useful to LD_PRELOAD into any game as needed.

gamemode_client.h is as single header lib that lets a game request game mode and handle errors.

Integration

Developers can integrate the request directly into an app. Note that none of these client methods force your users to have the daemon installed or running - they will safely no-op if the host is missing.

// Manually with error checking
#include "gamemode_client.h"

	if( gamemode_request_start() < 0 ) {
		fprintf( stderr, "gamemode request failed: %s\n", gamemode_error_string() );
	}

	/* run game... */

	gamemode_request_end(); // Not required, gamemoded can clean up after game exits
// Automatically on program start and finish
#define GAMEMODE_AUTO
#include "gamemode_client.h"

Or, distribute libgamemodeauto.so and either add -lgamemodeauto to your linker arguments, or add it to an LD_PRELOAD in a launch script.

Supervisor support

Developers can also create apps that manage GameMode on the system, for other processes:

#include "gamemode_client.h"

	gamemode_request_start_for(gamePID);
	gamemode_request_end_for(gamePID);

This functionality can also be controlled in the config file in the supervisor section.