From 6277e71e012ef56ff581228d2e1927cb9dcc98e1 Mon Sep 17 00:00:00 2001 From: Takashi Sakamoto Date: Wed, 1 Apr 2020 18:13:28 +0900 Subject: [PATCH] seq: user_client: add properties Signed-off-by: Takashi Sakamoto --- src/seq/user-client.c | 35 +++++++++++++++++++++++++++++++++++ tests/alsaseq-user-client | 4 +++- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/src/seq/user-client.c b/src/seq/user-client.c index 15524dc..8c8b824 100644 --- a/src/seq/user-client.c +++ b/src/seq/user-client.c @@ -16,6 +16,29 @@ struct _ALSASeqUserClientPrivate { }; G_DEFINE_TYPE_WITH_PRIVATE(ALSASeqUserClient, alsaseq_user_client, G_TYPE_OBJECT) +enum seq_user_client_prop_type { + SEQ_USER_CLIENT_PROP_CLIENT_ID = 1, + SEQ_USER_CLIENT_PROP_COUNT, +}; +static GParamSpec *seq_user_client_props[SEQ_USER_CLIENT_PROP_COUNT] = { NULL, }; + +static void seq_user_client_get_property(GObject *obj, guint id, GValue *val, + GParamSpec *spec) +{ + ALSASeqUserClient *self = ALSASEQ_USER_CLIENT(obj); + ALSASeqUserClientPrivate *priv = + alsaseq_user_client_get_instance_private(self); + + switch (id) { + case SEQ_USER_CLIENT_PROP_CLIENT_ID: + g_value_set_uchar(val, (guint8)priv->client_id); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, id, spec); + break; + } +} + static void seq_user_client_finalize(GObject *obj) { ALSASeqUserClient *self = ALSASEQ_USER_CLIENT(obj); @@ -33,6 +56,18 @@ static void alsaseq_user_client_class_init(ALSASeqUserClientClass *klass) GObjectClass *gobject_class = G_OBJECT_CLASS(klass); gobject_class->finalize = seq_user_client_finalize; + gobject_class->get_property = seq_user_client_get_property; + + seq_user_client_props[SEQ_USER_CLIENT_PROP_CLIENT_ID] = + g_param_spec_uchar("client-id", "client-id", + "The numerical ID of the client.", + 0, G_MAXUINT8, + 0, + G_PARAM_READABLE); + + g_object_class_install_properties(gobject_class, + SEQ_USER_CLIENT_PROP_COUNT, + seq_user_client_props); } static void alsaseq_user_client_init(ALSASeqUserClient *self) diff --git a/tests/alsaseq-user-client b/tests/alsaseq-user-client index e5098bd..5d108b7 100644 --- a/tests/alsaseq-user-client +++ b/tests/alsaseq-user-client @@ -10,7 +10,9 @@ gi.require_version('ALSASeq', '0.0') from gi.repository import ALSASeq target = ALSASeq.UserClient() -props = () +props = ( + 'client-id', +) methods = ( 'new', 'open', -- 2.47.3