From 23b9314788d9f2c9f16a0daf1517bfd899243f54 Mon Sep 17 00:00:00 2001 From: kotontrion Date: Fri, 14 Jun 2024 14:15:26 +0200 Subject: Add get_default method to obtain the singleton instance --- include/river.h | 7 ++++++- src/river.c | 14 ++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/include/river.h b/include/river.h index f1f8128..881ca75 100644 --- a/include/river.h +++ b/include/river.h @@ -79,9 +79,14 @@ G_DECLARE_FINAL_TYPE (AstalRiverRiver, astal_river_river, ASTAL_RIVER, RIVER, GO * * Returns: (nullable): a newly created connection to river */ - AstalRiverRiver *astal_river_river_new(); +/** + * astal_river_river_get_default + * + * Returns: (nullable) (transfer none): gets the default River object. + */ +AstalRiverRiver* astal_river_river_get_default(); /** * astal_river_river_get_outputs * @self: the AstalRiverRiver object diff --git a/src/river.c b/src/river.c index 44225a6..61c5c9d 100644 --- a/src/river.c +++ b/src/river.c @@ -1,5 +1,6 @@ +#include "river.h" #include "river-private.h" #include #include @@ -295,7 +296,7 @@ static gboolean astal_river_river_initable_init (GInitable *initable, GCancellab } static void astal_river_river_initable_iface_init (GInitableIface *iface) { - iface->init = astal_river_river_initable_init; + iface->init = astal_river_river_initable_init; } static void astal_river_river_init(AstalRiverRiver *self) { @@ -303,7 +304,7 @@ static void astal_river_river_init(AstalRiverRiver *self) { } AstalRiverRiver *astal_river_river_new() { - return g_initable_new(ASTAL_RIVER_TYPE_RIVER, NULL, NULL, NULL); + return g_initable_new(ASTAL_RIVER_TYPE_RIVER, NULL, NULL, NULL); } static void disconnect_signal (gpointer key, gpointer value, gpointer user_data) { @@ -314,6 +315,15 @@ static void disconnect_signal (gpointer key, gpointer value, gpointer user_data) g_signal_handler_disconnect (output, GPOINTER_TO_UINT(value)); } +AstalRiverRiver* astal_river_river_get_default() { + static AstalRiverRiver *self = NULL; + + if (self == NULL) + self = astal_river_river_new(); + + return self; +} + static void astal_river_river_finalize(GObject *object) { AstalRiverRiver *self = ASTAL_RIVER_RIVER(object); -- cgit v1.2.3