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.
This commit is contained in:
Christian Kellner
2019-07-02 17:42:37 +02:00
parent d2bab2962d
commit f9827edfb6
3 changed files with 6 additions and 12 deletions

View File

@ -487,7 +487,6 @@ int game_mode_context_register(GameModeContext *self, pid_t client, pid_t reques
pthread_rwlock_unlock(&self->rwlock); pthread_rwlock_unlock(&self->rwlock);
game_mode_client_registered(client); game_mode_client_registered(client);
game_mode_client_count_changed();
return 0; return 0;
@ -586,7 +585,6 @@ int game_mode_context_unregister(GameModeContext *self, pid_t client, pid_t requ
/* Unlock now we're done applying optimisations */ /* Unlock now we're done applying optimisations */
pthread_rwlock_unlock(&self->rwlock); pthread_rwlock_unlock(&self->rwlock);
game_mode_client_count_changed();
game_mode_client_unregistered(client); game_mode_client_unregistered(client);
return 0; return 0;

View File

@ -203,15 +203,6 @@ static int property_get_client_count(sd_bus *local_bus, const char *path, const
return sd_bus_message_append_basic(reply, 'i', &count); return sd_bus_message_append_basic(reply, 'i', &count);
} }
void game_mode_client_count_changed(void)
{
(void)sd_bus_emit_properties_changed(bus,
"/com/feralinteractive/GameMode",
"com.feralinteractive.GameMode",
"ClientCount",
NULL);
}
/** /**
* Handles the Refresh Config request * Handles the Refresh Config request
*/ */
@ -293,6 +284,12 @@ static void game_mode_client_send_game_signal(pid_t pid, bool new_game)
path); path);
if (ret < 0) if (ret < 0)
fprintf(stderr, "failed to emit signal: %s", strerror(-ret)); fprintf(stderr, "failed to emit signal: %s", strerror(-ret));
(void)sd_bus_emit_properties_changed(bus,
"/com/feralinteractive/GameMode",
"com.feralinteractive.GameMode",
"ClientCount",
NULL);
} }
/* Emit GameRegistered signal */ /* Emit GameRegistered signal */

View File

@ -197,6 +197,5 @@ int game_mode_get_gpu(GameModeGPUInfo *info);
*/ */
void game_mode_context_loop(GameModeContext *context) __attribute__((noreturn)); void game_mode_context_loop(GameModeContext *context) __attribute__((noreturn));
int game_mode_inhibit_screensaver(bool inhibit); int game_mode_inhibit_screensaver(bool inhibit);
void game_mode_client_count_changed(void);
void game_mode_client_registered(pid_t); void game_mode_client_registered(pid_t);
void game_mode_client_unregistered(pid_t); void game_mode_client_unregistered(pid_t);