Commit Graph

495 Commits

Author SHA1 Message Date
5398dd1d19 common: add pidfd related methods
Add functions to open pidfds, i.e. file descriptors representing
processes, for process ids and vice versa. Both functions work
an array of fds/pids, stop on error and return the number of
successfully handled items.
2019-10-18 13:19:30 +02:00
4b59818fd4 common: add autofree helper
Much like the auto-closing helper for file descriptors, add a new
auto-free helper that is meant to be used with dynamically allocated
memory, a la:
  autofree char *data = NULL;
  ...
  data = malloc(size);
When data goes out of scope, cleanup_free will be called with &data,
i.e. cleanup_free(&data), which in turn will call free(3) data. In
order to work with all types, e.g. 'char *' (resulting in char **
being passed to cleanup_free) or 'int *' (resulting in int ** being
passed to cleanup_free), cleanup_free is defined to work with void *,
hence the odd-looking cast: void *target = *(void **) ptr.
2019-10-18 13:19:30 +02:00
35fb7f5baf meson: include dir in daemon_common dependency
Specify the include directory in the link_daemon_common dependency
and thus everything that includes that as a dependency will get
the proper include directory automatically.
2019-10-18 13:19:30 +02:00
b7dc1dc10c daemon: small fix for code comments
Comments were not reflecting the what they were describing.
2019-10-18 13:19:30 +02:00
b513bc65ae lib: extract dbus messaging code
Separate the D-Bus messaging code from gamemode_request().
2019-10-18 13:19:30 +02:00
f6220a2d6e lib: do flatpak check only once
Either we are in a flatpak or not, this doesn't change, so we can
just remember the result.
2019-10-18 13:19:30 +02:00
24f054659c gamemode-context: Avoid GameModeClient *cl being NULL
There's no need in defining it at the top of the function. During
rebase, I had one `if` accessing `cl->executable` too early but we were
only storing the path in `executable` at that point.

This change avoids accessing `cl` while it might be NULL.

Signed-off-by: Kai Krakow <kai@kaishome.de>
2019-10-18 09:42:06 +01:00
0668e3b4da Change Lutris instructions to say that it will enable GameMode by default when available 2019-08-12 08:40:53 +01:00
30ae8d71f0 Adjust install prompt
Now reads: "Install to $prefix? [y/N]" to indicate that the default
choice if pressing enter without any extra input will be no. Suggested
by #169.
2019-08-11 10:14:46 +01:00
509ae3593a Merge pull request #165 from Aurnytoraink/patch-1
Add Lutris instructions
2019-08-11 10:00:30 +01:00
5add7f41b3 Merge pull request #168 from highvoltage/master
Fix typo s/Coudn't/Couldn't/g
2019-08-11 09:57:29 +01:00
8182edc048 Fix typo s/Coudn't/Couldn't/g 2019-08-05 09:50:32 +00:00
86473bea0a Add Lutris instructions 2019-07-29 16:41:07 +02:00
711e5e9995 Merge pull request #163 from akien-mga/mageia-package
Mention Mageia package in README
2019-07-22 14:45:45 +01:00
33f8be9557 Mention Mageia package in README
http://madb.mageia.org/package/show/application/0/name/gamemode
2019-07-21 13:19:21 +02:00
24687f960b Update version to 1.5-dev post-release 2019-07-21 10:39:11 +01:00
acb57735fc Update version to 1.4 1.4 2019-07-21 10:24:18 +01:00
5c1b2d0c74 daemon: export GameModeClient::Requester on D-Bus
Expose the requeter process identifier as 'Requester' property
of the com.feralinteractive.GameMode.Game interface.
2019-07-16 19:00:35 +01:00
cfe0fb4f17 daemon: add requester to GameModeClient
Record the requester process id in the GameModeClient struct and
add a getter for it.
2019-07-16 19:00:33 +01:00
288b3a005e daemon: export GameModeClient::Timestamp on D-Bus
Expose the timestamp that a client was created as 'Timestamp'
property of the com.feralinteractive.GameMode.Game interface.
2019-07-16 18:59:44 +01:00
52367772c8 daemon: add creation timestamp to GameModeClient
Record the time a client was created, i.e. registered, in the
GameModeClient struct and add a getter for it.

(Alex Smith: Fixed up function documentation comments)
2019-07-16 18:59:01 +01:00
6f39ecbc9b meson: display util building status
We show the status for examples & daemon, also show it for 'util'.
2019-07-16 18:58:11 +01:00
ffea085396 Follow up improvements to documentation for GAMEMODERUNEXEC 2019-07-16 08:17:35 +01:00
47db83e509 Add hybrid GPU support
Signed-off-by: Stephan Lachnit <stephanlachnit@protonmail.com>
2019-07-14 16:45:33 +02:00
c7c464bea6 Merge pull request #158 from gicmo/objs_fix
daemon: properly report error in error case
2019-07-13 09:57:25 +01:00
c6d1b45bfb Use the appropriate library path for whether the app is 32- or 64-bit in gamemoderun (#156) 2019-07-13 09:50:25 +01:00
9075829526 daemon: fix typo in Game.Executable dbus property
Fix spelling for the 'Executable' property in the interface
com.feralinteractive.GameMode.Game.
2019-07-12 17:01:01 +02:00
02ad53584d daemon: properly report error in error case
Currently, in method_list_games (`ListGames` on the bus), when
sd_bus_message_append fails, we break the loop but then we were
not reporting the error (contained in r) back to call.
2019-07-12 11:35:55 +02:00
3881b8b2c8 Fix clang-format error 2019-07-07 11:42:31 +01:00
60c68feea6 Use the GAME_PATH_PREFIX definition everywhere 2019-07-06 18:12:48 +01:00
f9827edfb6 daemon: emit client count change automatically
Every time a game is (un)-registered and we emit the corresponding
signal, also emit the properties change signal for ClientCount.
2019-07-04 16:04:35 +02:00
d2bab2962d daemon: export game objects on the bus
For each registered game, export an object on the bus under the
path "/com/feralinteractive/GameMode/Games/<pid>" with an dbus
interface of ""com.feralinteractive.GameMode.Game". The interface
currently provides to properties, ProcessId and Executable.
Additionally add the ListGames method and the GameRegistered,
GameUnregistered signals to the com.feralinteractive.GameMode
interface.
2019-07-04 16:04:35 +02:00
5949a988ea daemon: add game_mode_context_lookup_client method
Like game_mode_context_has_client, but will add a reference to
the client, if a match was found.
2019-07-02 17:47:05 +02:00
208f37b7d1 daemon: method to list all registered clients
Return an array of pid_t elements containing the process ids of
all registered clients. Memory ownership is transferred to the
client and must be freed.
2019-07-02 17:47:05 +02:00
455ea0c72e daemon: getters for properties of GameModeClient
Add getters for all two properties of GameModeCLient: the process
id and the executable path.
2019-07-02 17:46:52 +02:00
d99af40795 daemon: add game_mode_client_ref
Now that GameModeClient is reference counted, the counterpart to
game_mode_client_unref is also needed.
2019-07-02 17:46:31 +02:00
7e10cc3a0b daemon: make game_mode_client_unref public
So it can be used outside ouf gamemode-context.c.
2019-07-02 17:46:24 +02:00
1a863f32a1 daemon: add ref-counting to GameModeClient
This is so it can out-live its membership in the client list, e.g.
when it is passed outside of gamemode-context.c and the reaper
comes along and reaps a client in the background but we still are
using the struct outside.
2019-07-02 17:46:17 +02:00
2027e981e6 daemon: expose GameModeClient as opaque struct
First step to making GameModeClient useful outside of gamemode-
context.c.
2019-07-02 17:45:55 +02:00
b3cec8d901 Merge pull request #152 from ysblokje/disable_utils
added option to disable building the utils
2019-06-03 08:13:20 +01:00
ebbb9a3511 Fix libdbus-1-dev package name typo 2019-06-03 08:10:30 +01:00
15ff22c745 added option to disable building the utils
When you need both 32 and 64 bit version of the library only
one version of the utils is required.
2019-06-02 12:35:33 +02:00
e5286e1495 Add Three Kingdoms to list of games with integration 2019-06-01 13:50:24 +01:00
b0c36c0eaa Remove unused LOG_ERROR, always log errors 2019-06-01 13:49:37 +01:00
2a124ce8c7 Merge pull request #151 from mdiluz/patch-1
Turn off debug logging in client impl
2019-06-01 13:46:06 +01:00
fc46ffc463 Merge pull request #148 from mdiluz/the-big-cleanup
Spring cleaning
2019-06-01 13:44:38 +01:00
e9ab20be60 Add comments to the two parts where clang-format is off 2019-06-01 11:18:08 +01:00
702407595a Rename duplicate CONFIG_VALUE_MAX
Leave a static assert to ensure they're in sync when relevant in gamemode-gpu
2019-06-01 11:12:10 +01:00
a5e00bc94e Turn off debug logging in client impl
Accidentally left in #147
2019-06-01 11:00:33 +01:00
c5c966ad54 Add back needed include 2019-06-01 10:57:27 +01:00