James Le Cuirot b103bfdd60 Don't force installation of static libgamemodeauto vor 2 Jahren
..
README.md 28243afde9 Clean up the main readme file and split some parts out vor 5 Jahren
client_impl.c 4cffdef805 Removed blank line vor 2 Jahren
client_loader.c 10a31f8dec Update copyright years to 2019 vor 6 Jahren
gamemode_client.h 9b44fc6def ci: fix static analyser with assertions vor 2 Jahren
meson.build b103bfdd60 Don't force installation of static libgamemodeauto vor 2 Jahren

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.