Browse Source

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.
Christian Kellner 5 years ago
parent
commit
f9827edfb6
3 changed files with 6 additions and 12 deletions
  1. 0 2
      daemon/gamemode-context.c
  2. 6 9
      daemon/gamemode-dbus.c
  3. 0 1
      daemon/gamemode.h

+ 0 - 2
daemon/gamemode-context.c

@@ -487,7 +487,6 @@ int game_mode_context_register(GameModeContext *self, pid_t client, pid_t reques
 	pthread_rwlock_unlock(&self->rwlock);
 
 	game_mode_client_registered(client);
-	game_mode_client_count_changed();
 
 	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 */
 	pthread_rwlock_unlock(&self->rwlock);
 
-	game_mode_client_count_changed();
 	game_mode_client_unregistered(client);
 
 	return 0;

+ 6 - 9
daemon/gamemode-dbus.c

@@ -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);
 }
 
-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
  */
@@ -293,6 +284,12 @@ static void game_mode_client_send_game_signal(pid_t pid, bool new_game)
 	                         path);
 	if (ret < 0)
 		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 */

+ 0 - 1
daemon/gamemode.h

@@ -197,6 +197,5 @@ int game_mode_get_gpu(GameModeGPUInfo *info);
  */
 void game_mode_context_loop(GameModeContext *context) __attribute__((noreturn));
 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_unregistered(pid_t);