I'm struggling to understand the code from lines 125 to around 157. The function call started on line 154 particularly confuses me. I don't know what a static prefix means for a data type (which I am guessing is a boolean value here). I thought this code looks pretty important. static gboolean on_timeout_cb (gpointer user_data) { GDBusConnection *connection = G_DBUS_CONNECTION (user_data); GVariantBuilder *builder; GVariantBuilder *invalidated_builder; GError *error; swap_a_and_b = !swap_a_and_b; error = NULL; builder = g_variant_builder_new (G_VARIANT_TYPE_ARRAY); invalidated_builder = g_variant_builder_new (G_VARIANT_TYPE ("as")); g_variant_builder_add (builder, "{sv}", "Foo", g_variant_new_string (swap_a_and_b ? "Tock" : "Tick")); g_variant_builder_add (builder, "{sv}", "Bar", g_variant_new_string (swap_a_and_b ? "Tick" : "Tock")); g_dbus_connection_emit_signal (connection, NULL, "/org/gtk/GDBus/TestObject", "org.freedesktop.DBus.Properties", "PropertiesChanged", g_variant_new ("(sa{sv}as)", "org.gtk.GDBus.TestInterface", builder, invalidated_builder), &error); g_assert_no_error (error); return TRUE; }