]> git.alsa-project.org Git - alsa-gobject.git/commitdiff
seq: user_client: add properties
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Wed, 1 Apr 2020 09:13:28 +0000 (18:13 +0900)
committer坂本 貴史 <o-takashi@sakamocchi.jp>
Fri, 3 Apr 2020 13:06:25 +0000 (22:06 +0900)
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
src/seq/user-client.c
tests/alsaseq-user-client

index 15524dc773601122e9611f20f98c67871656f17e..8c8b824c53668eeb7499f2b0479791147bcf5ffd 100644 (file)
@@ -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)
index e5098bdcf2f7c560c7ad505b539fd7f282f7b3dc..5d108b7b2200e449e42a1cd05f01af5acefa38a0 100644 (file)
@@ -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',