Christian Kellner
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
Alex Smith
3881b8b2c8
Fix clang-format error
2019-07-07 11:42:31 +01:00
Alex Smith
60c68feea6
Use the GAME_PATH_PREFIX definition everywhere
2019-07-06 18:12:48 +01:00
Christian Kellner
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
Christian Kellner
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
Christian Kellner
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
Christian Kellner
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
Christian Kellner
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
Christian Kellner
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
Christian Kellner
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
Christian Kellner
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
Christian Kellner
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
Alex Smith
b3cec8d901
Merge pull request #152 from ysblokje/disable_utils
...
added option to disable building the utils
2019-06-03 08:13:20 +01:00
Alex Smith
ebbb9a3511
Fix libdbus-1-dev package name typo
2019-06-03 08:10:30 +01:00
Minze Zwerver
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
Alex Smith
e5286e1495
Add Three Kingdoms to list of games with integration
2019-06-01 13:50:24 +01:00
Alex Smith
b0c36c0eaa
Remove unused LOG_ERROR, always log errors
2019-06-01 13:49:37 +01:00
Alex Smith
2a124ce8c7
Merge pull request #151 from mdiluz/patch-1
...
Turn off debug logging in client impl
2019-06-01 13:46:06 +01:00
Alex Smith
fc46ffc463
Merge pull request #148 from mdiluz/the-big-cleanup
...
Spring cleaning
2019-06-01 13:44:38 +01:00
Marc Di Luzio
e9ab20be60
Add comments to the two parts where clang-format is off
2019-06-01 11:18:08 +01:00
Marc Di Luzio
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
Marc Di Luzio
a5e00bc94e
Turn off debug logging in client impl
...
Accidentally left in #147
2019-06-01 11:00:33 +01:00
Marc Di Luzio
c5c966ad54
Add back needed include
2019-06-01 10:57:27 +01:00
Marc Di Luzio
e537caf170
Ensure we're more specific about clang format options and include order
2019-06-01 10:57:27 +01:00
Marc Di Luzio
2e67906402
Remove unneeded includes
2019-06-01 10:57:27 +01:00
Marc Di Luzio
28243afde9
Clean up the main readme file and split some parts out
...
This groups development, daemon and lib parts together much better
2019-06-01 10:56:27 +01:00
Marc Di Luzio
98e656f9ec
Clean up self explanatory comments
2019-06-01 10:54:22 +01:00
Marc Di Luzio
1b78d0dcf7
Restructure files and libraries
...
Rename a bunch of files to make the consistent
Create two new subdirectories for common code, and utilities
2019-06-01 10:54:22 +01:00
Marc Di Luzio
41988b7f1c
Move code only used for Wine detection into wine file
2019-06-01 10:54:22 +01:00
Marc Di Luzio
2bca1fb04e
Remove commented includes
2019-06-01 10:54:22 +01:00
Marc Di Luzio
81e38d02e6
Move daemonise code to main file, simplifying files
2019-06-01 10:54:22 +01:00
Marc Di Luzio
9d484061ad
Remove extra comments in config that didn't explain anything
2019-06-01 10:54:22 +01:00
Marc Di Luzio
717d6cc003
Correct the inotify failure message
2019-06-01 10:54:22 +01:00
Marc Di Luzio
1df1852c76
Move most Wine could out to Wine file
2019-06-01 10:54:22 +01:00
Marc Di Luzio
75dc083616
Remove artificial max client limit
...
This is just additional code that isn't required, and could mask or cause problems.
2019-06-01 10:54:22 +01:00
Alex Smith
a837b8630c
We depend on DBus development packages now
2019-05-29 16:02:49 +01:00
Alex Smith
37108d7c6b
Merge branch 'libdbus'
2019-05-29 15:53:27 +01:00
Alex Smith
7ebe633026
Merge pull request #150 from mdiluz/fix-inotify
...
inotify fix
2019-05-29 15:36:19 +01:00
Marc Di Luzio
71d4fab15e
Fix inotify for https://github.com/FeralInteractive/gamemode/issues/149
...
1. Don't look for ATTRIB changes - these spawn extra unneeded events when other watches will catch actual edits
2. Move name check code out of IN_ISDIR, I mistook IN_ISDIR to mean the event was from a dir watch, but this was incorrect
2019-05-28 16:37:34 +01:00
Christian Kellner
e87a8f19f3
lib: use libdbus for client's dbus messaging
...
Switch the dbus implementation for the client from systemd to
libdbus. The main reason is that, in flatpaks systemd is not easily
available. No phenomenological change for users of the library,
hopefully.
2019-05-27 13:44:44 +02:00
Alex Smith
3a2ebd1cdf
Merge pull request #144 from mdiluz/add-config-hotreloading
...
Add config hot-reloading
2019-05-24 08:58:43 +01:00
Marc Di Luzio
a0b850474d
Fix comments
2019-05-24 08:48:38 +01:00
Marc Di Luzio
a9e3f866a0
Extend the context rwlock around where we apply optimisations
...
This prevents a potential race condition for when the reaper thread reloads the config
2019-05-24 08:45:14 +01:00
Alex Smith
128d9b1364
Merge pull request #145 from mdiluz/fix-clang-static-analyser-issues
...
Add a clang static analyser check and fix issues
2019-05-24 08:19:43 +01:00
Alex Smith
c502e00b7c
Merge pull request #146 from gicmo/flatpak_portal
...
Add support for flatpak portal
2019-05-24 08:15:45 +01:00
Marc Di Luzio
83c4d38858
Use PATH_MAX-1 as strncopy doesn't always set the final null byte
2019-05-21 09:06:27 +01:00
Christian Kellner
0c36f3a6b0
Talk to the portal when running inside a flatpak
...
When we detect that we are running inside a flatpak, talk to the
flatpak portal D-Bus service instead of the session daemon. This
is necessary because flatpak uses pid namespace isolation (see
man pid_namespaces(7)) and thus the pid needs to be translated
from the flatpak pid namespace to the host namespace. This
translation is happening inside the GameMode xdg-desktop-portal.
2019-05-21 00:34:45 +02:00
Christian Kellner
536d687c9a
Use defines for dbus name, path, interface
...
That gives some meaning to the strings and makes it easier to see
what the arguments of sd_bus_call_method mean without checking the
function docs.
2019-05-20 14:39:09 +02:00
Marc Di Luzio
44ab695246
Fix memory leak ambiguity with executable names
2019-05-19 12:47:32 +01:00
Marc Di Luzio
9db7442a31
Fix potential memory leak in game_mode_initialise_gpu
2019-05-19 12:47:32 +01:00