]> git.alsa-project.org Git - alsa-gobject.git/commitdiff
seq: event_fixed: add API to refer to quadlet data of event
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/alsaseq.map
src/seq/event-fixed.c
src/seq/event-fixed.h
tests/alsaseq-event-fixed

index b7544029c3e8e8b530ece38b2ad204bba1154902..014f2c4c7921d45a18b37be0428aa1bcd76a9c40 100644 (file)
@@ -67,6 +67,8 @@ ALSA_GOBJECT_0_0_0 {
     "alsaseq_event_fixed_new";
     "alsaseq_event_fixed_get_byte_data";
     "alsaseq_event_fixed_set_byte_data";
+    "alsaseq_event_fixed_get_quadlet_data";
+    "alsaseq_event_fixed_set_quadlet_data";
 
     "alsaseq_event_variable_get_type";
     "alsaseq_event_variable_new";
index ef34c37af7b773444ca5e35d6d4fea6757182a10..9813eec743bb8c0365441bc73d6cdbd6c3d52a66 100644 (file)
@@ -235,3 +235,44 @@ void alsaseq_event_fixed_set_byte_data(ALSASeqEventFixed *self,
 
     memcpy(ev->data.raw8.d, data, sizeof(ev->data.raw8.d));
 }
+
+/**
+ * alsaseq_event_fixed_get_quadlet_data:
+ * @self: A #ALSASeqEventFixed.
+ *
+ * Get the 3 quadlet data for the event.
+ *
+ * Returns: (array fixed-size=3)(transfer none): The 3 quadlet data for the
+ *          event. The lifetime of the object is the same as the event itself.
+ */
+const guint32 *alsaseq_event_fixed_get_quadlet_data(ALSASeqEventFixed *self)
+{
+    ALSASeqEvent *parent;
+    struct snd_seq_event *ev;
+
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_FIXED(self), NULL);
+    parent = ALSASEQ_EVENT(self);
+    seq_event_refer_private(parent, &ev);
+
+    return ev->data.raw32.d;
+}
+
+/**
+ * alsaseq_event_fixed_set_quadlet_data:
+ * @self: A #ALSASeqEventFixed.
+ * @data: (array fixed-size=3)(transfer none): The 3 quadlet data for the event.
+ *
+ * Copy the 3 quadlet data for the event.
+ */
+void alsaseq_event_fixed_set_quadlet_data(ALSASeqEventFixed *self,
+                                          const guint32 data[3])
+{
+    ALSASeqEvent *parent;
+    struct snd_seq_event *ev;
+
+    g_return_if_fail(ALSASEQ_IS_EVENT_FIXED(self));
+    parent = ALSASEQ_EVENT(self);
+    seq_event_refer_private(parent, &ev);
+
+    memcpy(ev->data.raw32.d, data, sizeof(ev->data.raw32.d));
+}
index 45460593d248c3fdefb06ac229c72c78e830ac16..97cd6df6e9dff3521fa95e8aa838c4a95081c0e5 100644 (file)
@@ -56,6 +56,10 @@ const guint8 *alsaseq_event_fixed_get_byte_data(ALSASeqEventFixed *self);
 void alsaseq_event_fixed_set_byte_data(ALSASeqEventFixed *self,
                                        const guint8 data[12]);
 
+const guint32 *alsaseq_event_fixed_get_quadlet_data(ALSASeqEventFixed *self);
+void alsaseq_event_fixed_set_quadlet_data(ALSASeqEventFixed *self,
+                                          const guint32 data[3]);
+
 G_END_DECLS
 
 #endif
index 1f4d9f9d83404d8193777a6a33ae690f9ae2a373..7f4a6f649db6a8b16aaf32e3eb8177eea14dc157 100644 (file)
@@ -22,6 +22,8 @@ methods = (
     'new',
     'get_byte_data',
     'set_byte_data',
+    'get_quadlet_data',
+    'set_quadlet_data',
 )
 signals = ()