From 863b31cae9be5e8e0467f1a9f93e7348d41f7e88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Exp=C3=B3sito?= Date: Tue, 29 Oct 2024 11:35:17 +0100 Subject: [PATCH 3/5] output/kms: Add meta_output_kms_from_kms_connector() Add a function that returns a MetaOutputKms (if any) from a MetaKmsConnector. Part-of: --- src/backends/native/meta-output-kms.c | 19 +++++++++++++++++++ src/backends/native/meta-output-kms.h | 2 ++ 2 files changed, 21 insertions(+) diff --git a/src/backends/native/meta-output-kms.c b/src/backends/native/meta-output-kms.c index 684cf0e094..27b7533a5e 100644 --- a/src/backends/native/meta-output-kms.c +++ b/src/backends/native/meta-output-kms.c @@ -47,6 +47,8 @@ struct _MetaOutputKms G_DEFINE_TYPE (MetaOutputKms, meta_output_kms, META_TYPE_OUTPUT_NATIVE) +static GQuark kms_connector_output_kms_quark; + MetaKmsConnector * meta_output_kms_get_kms_connector (MetaOutputKms *output_kms) { @@ -90,6 +92,13 @@ meta_output_kms_can_clone (MetaOutputKms *output_kms, return TRUE; } +MetaOutputKms * +meta_output_kms_from_kms_connector (MetaKmsConnector *connector) +{ + return g_object_get_qdata (G_OBJECT (connector), + kms_connector_output_kms_quark); +} + static GBytes * meta_output_kms_read_edid (MetaOutputNative *output_native) { @@ -534,6 +543,16 @@ meta_output_kms_new (MetaGpuKms *gpu_kms, meta_output_unassign_crtc (output); } + if (!kms_connector_output_kms_quark) + { + kms_connector_output_kms_quark = + g_quark_from_static_string ("kms-connector-output-kms-quark"); + } + + g_object_set_qdata (G_OBJECT (kms_connector), + kms_connector_output_kms_quark, + output_kms); + return output_kms; } diff --git a/src/backends/native/meta-output-kms.h b/src/backends/native/meta-output-kms.h index e0eb60eb4d..4391dc1899 100644 --- a/src/backends/native/meta-output-kms.h +++ b/src/backends/native/meta-output-kms.h @@ -39,6 +39,8 @@ MetaKmsConnector * meta_output_kms_get_kms_connector (MetaOutputKms *output_kms) uint32_t meta_output_kms_get_connector_id (MetaOutputKms *output_kms); +MetaOutputKms * meta_output_kms_from_kms_connector (MetaKmsConnector *connector); + MetaOutputKms * meta_output_kms_new (MetaGpuKms *gpu_kms, MetaKmsConnector *kms_connector, MetaOutput *old_output, -- 2.48.1