From bcf65d73745b48a7c1520b1686d7eebc7ea62062 Mon Sep 17 00:00:00 2001 From: Christian Hergert Date: Fri, 10 Feb 2023 16:29:57 -0800 Subject: [PATCH] lib: add mks_session_ref_screen() This is just a helper to get the first screen. --- lib/mks-session.c | 30 ++++++++++++++++++++++++++++++ lib/mks-session.h | 2 ++ 2 files changed, 32 insertions(+) diff --git a/lib/mks-session.c b/lib/mks-session.c index 8e8a5a4..df7a7d8 100644 --- a/lib/mks-session.c +++ b/lib/mks-session.c @@ -707,3 +707,33 @@ mks_session_get_name (MksSession *self) return NULL; } + +/** + * mks_session_ref_screen: + * @self: a #MksSession + * + * Gets the main screen for the session. + * + * Returns: (transfer full) (nullable): a #MksScreen or %NULL + */ +MksScreen * +mks_session_ref_screen (MksSession *self) +{ + GListModel *model; + guint n_items; + + g_return_val_if_fail (MKS_IS_SESSION (self), NULL); + + model = G_LIST_MODEL (self->devices); + n_items = g_list_model_get_n_items (model); + + for (guint i = 0; i < n_items; i++) + { + g_autoptr(MksDevice) device = g_list_model_get_item (model, i); + + if (MKS_IS_SCREEN (device)) + return MKS_SCREEN (g_steal_pointer (&device)); + } + + return NULL; +} diff --git a/lib/mks-session.h b/lib/mks-session.h index 83f074c..8a3ad01 100644 --- a/lib/mks-session.h +++ b/lib/mks-session.h @@ -58,5 +58,7 @@ MKS_AVAILABLE_IN_ALL const char *mks_session_get_name (MksSession *self); MKS_AVAILABLE_IN_ALL const char *mks_session_get_uuid (MksSession *self); +MKS_AVAILABLE_IN_ALL +MksScreen *mks_session_ref_screen (MksSession *self); G_END_DECLS