]> git.alsa-project.org Git - alsa-gobject.git/commitdiff
seq: event_fixed: add API to refer to byte 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 da27a71e15eec45cb4f65e437c8c09b49cdfcfa2..b7544029c3e8e8b530ece38b2ad204bba1154902 100644 (file)
@@ -65,6 +65,8 @@ ALSA_GOBJECT_0_0_0 {
 
     "alsaseq_event_fixed_get_type";
     "alsaseq_event_fixed_new";
+    "alsaseq_event_fixed_get_byte_data";
+    "alsaseq_event_fixed_set_byte_data";
 
     "alsaseq_event_variable_get_type";
     "alsaseq_event_variable_new";
index 96261e73176250f52382bfe2676e5ae4b9ea6ca7..ef34c37af7b773444ca5e35d6d4fea6757182a10 100644 (file)
@@ -194,3 +194,44 @@ ALSASeqEventFixed *alsaseq_event_fixed_new(ALSASeqEventType event_type,
                         "length-mode", ALSASEQ_EVENT_LENGTH_MODE_FIXED,
                         NULL);
 }
+
+/**
+ * alsaseq_event_fixed_get_byte_data:
+ * @self: A #ALSASeqEventFixed.
+ *
+ * Refer to the 12 byte data for the event.
+ *
+ * Returns: (array fixed-size=12)(transfer none): The 12 byte data for the
+ *          event. The lifetime of the object is the same as the event itself.
+ */
+const guint8 *alsaseq_event_fixed_get_byte_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.raw8.d;
+}
+
+/**
+ * alsaseq_event_fixed_set_byte_data:
+ * @self: A #ALSASeqEventFixed.
+ * @data: (array fixed-size=12)(transfer none): The 12 byte data for the event.
+ *
+ * Copy the 12 byte data for the event.
+ */
+void alsaseq_event_fixed_set_byte_data(ALSASeqEventFixed *self,
+                                       const guint8 data[12])
+{
+    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.raw8.d, data, sizeof(ev->data.raw8.d));
+}
index d63cfb7bec947f9c2474d8ef0e642d0d041f55d9..45460593d248c3fdefb06ac229c72c78e830ac16 100644 (file)
@@ -52,6 +52,10 @@ GType alsaseq_event_fixed_get_type() G_GNUC_CONST;
 ALSASeqEventFixed *alsaseq_event_fixed_new(ALSASeqEventType event_type,
                                            GError **error);
 
+const guint8 *alsaseq_event_fixed_get_byte_data(ALSASeqEventFixed *self);
+void alsaseq_event_fixed_set_byte_data(ALSASeqEventFixed *self,
+                                       const guint8 data[12]);
+
 G_END_DECLS
 
 #endif
index ee3e7d4417b16e24c8dd6784f6e775c615779af3..1f4d9f9d83404d8193777a6a33ae690f9ae2a373 100644 (file)
@@ -20,6 +20,8 @@ props = (
 )
 methods = (
     'new',
+    'get_byte_data',
+    'set_byte_data',
 )
 signals = ()