]> git.alsa-project.org Git - alsa-gobject.git/commitdiff
seq: event_data_queue: add accessor methods
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-data-queue.c
src/seq/event-data-queue.h

index 0a4a28a1e574f46413ccecaadf057cfe172f97ad..4b97a81772d4f51beb9ac0629acc0c2bbb52f015 100644 (file)
@@ -98,6 +98,18 @@ ALSA_GOBJECT_0_0_0 {
     "alsaseq_event_data_ctl_set_value";
 
     "alsaseq_event_data_queue_get_type";
+    "alsaseq_event_data_queue_get_queue_id";
+    "alsaseq_event_data_queue_set_queue_id";
+    "alsaseq_event_data_queue_get_value_param";
+    "alsaseq_event_data_queue_set_value_param";
+    "alsaseq_event_data_queue_get_tstamp_param";
+    "alsaseq_event_data_queue_set_tstamp_param";
+    "alsaseq_event_data_queue_get_position_param";
+    "alsaseq_event_data_queue_set_position_param";
+    "alsaseq_event_data_queue_get_skew_param";
+    "alsaseq_event_data_queue_set_skew_param";
+    "alsaseq_event_data_queue_get_quadlet_param";
+    "alsaseq_event_data_queue_set_quadlet_param";
   local:
     *;
 };
index c56440fea665dd5082784390eb58b76c4ad675a7..a0c07a96fc45fde49cf5ded66abea6412c37169e 100644 (file)
@@ -7,3 +7,192 @@ ALSASeqEventDataQueue *seq_event_data_queue_copy(const ALSASeqEventDataQueue *se
 }
 
 G_DEFINE_BOXED_TYPE(ALSASeqEventDataQueue, alsaseq_event_data_queue, seq_event_data_queue_copy, g_free)
+
+/**
+ * alsaseq_event_data_queue_get_queue_id:
+ * @self: A #ALSASeqEventDataQueue.
+ *
+ * Get the numerical ID of queue for the event.
+ *
+ * Returns: the numerical ID of queue for the event.
+ */
+guint8 alsaseq_event_data_queue_get_queue_id(ALSASeqEventDataQueue *self)
+{
+    return self->queue;
+}
+
+/**
+ * alsaseq_event_data_queue_set_queue_id:
+ * @self: A #ALSASeqEventDataQueue.
+ * @queue_id: The numerical ID of queue for the event.
+ *
+ * Se the numerical ID of queue for the event.
+ */
+void alsaseq_event_data_queue_set_queue_id(ALSASeqEventDataQueue *self,
+                                           guint8 queue_id)
+{
+    self->queue = queue_id;
+}
+
+/**
+ * alsaseq_event_data_queue_get_value_param:
+ * @self: A #ALSASeqEventDataQueue.
+ *
+ * Get the value as param of the queue event.
+ *
+ * Returns: the value as param of the queue event.
+ */
+gint alsaseq_event_data_queue_get_value_param(ALSASeqEventDataQueue *self)
+{
+    return self->param.value;
+}
+
+/**
+ * alsaseq_event_data_queue_set_value_param:
+ * @self: A #ALSASeqEventDataQueue.
+ * @value: The value as param of the queue event.
+ *
+ * Set the value as param of the queue event.
+ */
+void alsaseq_event_data_queue_set_value_param(ALSASeqEventDataQueue *self,
+                                              gint value)
+{
+    self->param.value = value;
+}
+
+/**
+ * alsaseq_event_data_queue_get_tstamp_param:
+ * @self: A #ALSASeqEventDataQueue.
+ *
+ * Get the timestamp as param of the queue event.
+ *
+ * Returns: (transfer none): the timestamp as param of the queue event.
+ */
+const ALSASeqTstamp *alsaseq_event_data_queue_get_tstamp_param(ALSASeqEventDataQueue *self)
+{
+    return &self->param.time;
+}
+
+/**
+ * alsaseq_event_data_queue_set_tstamp_param:
+ * @self: A #ALSASeqEventDataQueue.
+ * @tstamp: (transfer none): The timestamp as param of the queue event.
+ *
+ * Set the timestamp as param of the queue event.
+ */
+void alsaseq_event_data_queue_set_tstamp_param(ALSASeqEventDataQueue *self,
+                                               const ALSASeqTstamp *tstamp)
+{
+    self->param.time = *tstamp;
+}
+
+/**
+ * alsaseq_event_data_queue_get_position_param:
+ * @self: A #ALSASeqEventDataQueue.
+ *
+ * Get the position as param of the queue event.
+ *
+ * Returns: the position as param of the queue event.
+ */
+guint alsaseq_event_data_queue_get_position_param(ALSASeqEventDataQueue *self)
+{
+    return self->param.position;
+}
+
+/**
+ * alsaseq_event_data_queue_set_position_param:
+ * @self: A #ALSASeqEventDataQueue.
+ * @position: the position as param of the queue event.
+ *
+ * Set the position as param of the queue event.
+ */
+void alsaseq_event_data_queue_set_position_param(ALSASeqEventDataQueue *self,
+                                                 guint position)
+{
+    self->param.position = position;
+}
+
+/**
+ * alsaseq_event_data_queue_get_skew_param:
+ * @self: A #ALSASeqEventDataQueue.
+ *
+ * Get the skew as param of the queue event.
+ *
+ * Returns: (transfer none)(array fixed-size=2): the skew as param of the queue
+ *          event. The first element is for 'value' and another is for 'base'.
+ */
+const guint *alsaseq_event_data_queue_get_skew_param(ALSASeqEventDataQueue *self)
+{
+    return (const guint *)&self->param.skew;
+}
+
+/**
+ * alsaseq_event_data_queue_set_skew_param:
+ * @self: A #ALSASeqEventDataQueue.
+ * @skew: (array fixed-size=2)(transfer none): the skew as param of the queue
+ *        event. The first element is for 'value' and another is for 'base'.
+ *
+ * Set the skew as param of the queue event.
+ */
+void alsaseq_event_data_queue_set_skew_param(ALSASeqEventDataQueue *self,
+                                             const guint skew[2])
+{
+    self->param.skew.value = skew[0];
+    self->param.skew.base = skew[1];
+}
+
+/**
+ * alsaseq_event_data_queue_get_quadlet_param:
+ * @self: A #ALSASeqEventDataQueue.
+ *
+ * Get two quadlets as param of the queue event.
+ *
+ * Returns: (transfer none)(array fixed-size=2): two quadlets as param of the
+ *          queue event.
+ */
+const guint32 *alsaseq_event_data_queue_get_quadlet_param(ALSASeqEventDataQueue *self)
+{
+    return self->param.d32;
+}
+
+/**
+ * alsaseq_event_data_queue_set_quadlets_param:
+ * @self: A #ALSASeqEventDataQueue.
+ * @quadlets: (array fixed-size=2)(transfer none): two quadlets as param of the
+ *            queue event.
+ *
+ * Set two quadlets as param of the queue event.
+ */
+void alsaseq_event_data_queue_set_quadlet_param(ALSASeqEventDataQueue *self,
+                                                const guint32 quadlets[2])
+{
+    memcpy(self->param.d32, quadlets, sizeof(self->param.d32));
+}
+
+/**
+ * alsaseq_event_data_queue_get_byte_param:
+ * @self: A #ALSASeqEventDataQueue.
+ *
+ * Get eight bytes as param of the queue event.
+ *
+ * Returns: (transfer none)(array fixed-size=8): eight bytes as param of the
+ *          queue event.
+ */
+const guint8 *alsaseq_event_data_queue_get_byte_param(ALSASeqEventDataQueue *self)
+{
+    return self->param.d8;
+}
+
+/**
+ * alsaseq_event_data_queue_set_byte_param:
+ * @self: A #ALSASeqEventDataQueue.
+ * @bytes: (array fixed-size=8)(transfer none): eight bytes as param of the
+ *        queue event.
+ *
+ * Set eight quadlets as param of the queue event.
+ */
+void alsaseq_event_data_queue_set_byte_param(ALSASeqEventDataQueue *self,
+                                             const guint32 bytes[8])
+{
+    memcpy(self->param.d8, bytes, sizeof(self->param.d8));
+}
index 8db6f464e3e3350bbdcae06e72093589f2ee52b1..f1177c0b8724bdcf4fb56671bccd9c0f6a2e707d 100644 (file)
@@ -5,6 +5,8 @@
 #include <glib.h>
 #include <glib-object.h>
 
+#include <seq/tstamp.h>
+
 #include <sound/asequencer.h>
 
 G_BEGIN_DECLS
@@ -15,6 +17,34 @@ typedef struct snd_seq_ev_queue_control ALSASeqEventDataQueue;
 
 GType alsaseq_event_data_queue_get_type() G_GNUC_CONST;
 
+guint8 alsaseq_event_data_queue_get_queue_id(ALSASeqEventDataQueue *self);
+void alsaseq_event_data_queue_set_queue_id(ALSASeqEventDataQueue *self,
+                                           guint8 queue_id);
+
+gint alsaseq_event_data_queue_get_value_param(ALSASeqEventDataQueue *self);
+void alsaseq_event_data_queue_set_value_param(ALSASeqEventDataQueue *self,
+                                              gint value);
+
+const ALSASeqTstamp *alsaseq_event_data_queue_get_tstamp_param(ALSASeqEventDataQueue *self);
+void alsaseq_event_data_queue_set_tstamp_param(ALSASeqEventDataQueue *self,
+                                               const ALSASeqTstamp *tstamp);
+
+guint alsaseq_event_data_queue_get_position_param(ALSASeqEventDataQueue *self);
+void alsaseq_event_data_queue_set_position_param(ALSASeqEventDataQueue *self,
+                                                 guint position);
+
+const guint *alsaseq_event_data_queue_get_skew_param(ALSASeqEventDataQueue *self);
+void alsaseq_event_data_queue_set_skew_param(ALSASeqEventDataQueue *self,
+                                             const guint skew[2]);
+
+const guint32 *alsaseq_event_data_queue_get_quadlet_param(ALSASeqEventDataQueue *self);
+void alsaseq_event_data_queue_set_quadlet_param(ALSASeqEventDataQueue *self,
+                                                const guint32 quadlets[2]);
+
+const guint8 *alsaseq_event_data_queue_get_byte_param(ALSASeqEventDataQueue *self);
+void alsaseq_event_data_queue_set_byte_param(ALSASeqEventDataQueue *self,
+                                             const guint32 bytes[8]);
+
 G_END_DECLS
 
 #endif