]> git.alsa-project.org Git - alsa-gobject.git/commitdiff
seq: event: add GObject abstract object to represent event in ALSA Sequencer
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.c [new file with mode: 0644]
src/seq/event.h [new file with mode: 0644]
src/seq/meson.build
tests/alsaseq-event [new file with mode: 0644]
tests/meson.build

index 80fd9d81aba75d20a7fb9fa810365223c74834ad..69e8599f6fdf10ad33de75411a2ffc1ca3cadeb3 100644 (file)
@@ -58,6 +58,8 @@ ALSA_GOBJECT_0_0_0 {
     "alsaseq_tstamp_set_tick_time";
     "alsaseq_tstamp_get_real_time";
     "alsaseq_tstamp_set_real_time";
+
+    "alsaseq_event_get_type";
   local:
     *;
 };
diff --git a/src/seq/event.c b/src/seq/event.c
new file mode 100644 (file)
index 0000000..a3557e3
--- /dev/null
@@ -0,0 +1,14 @@
+// SPDX-License-Identifier: LGPL-3.0-or-later
+#include "event.h"
+
+G_DEFINE_ABSTRACT_TYPE(ALSASeqEvent, alsaseq_event, G_TYPE_OBJECT)
+
+static void alsaseq_event_class_init(ALSASeqEventClass *klass)
+{
+    return;
+}
+
+static void alsaseq_event_init(ALSASeqEvent *self)
+{
+    return;
+}
diff --git a/src/seq/event.h b/src/seq/event.h
new file mode 100644 (file)
index 0000000..7205bed
--- /dev/null
@@ -0,0 +1,47 @@
+// SPDX-License-Identifier: LGPL-3.0-or-later
+#ifndef __ALSA_GOBJECT_ALSASEQ_EVENT__H__
+#define __ALSA_GOBJECT_ALSASEQ_EVENT__H__
+
+#include <glib.h>
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+#define ALSASEQ_TYPE_EVENT     (alsaseq_event_get_type())
+
+#define ALSASEQ_EVENT(obj)                              \
+    (G_TYPE_CHECK_INSTANCE_CAST((obj),                  \
+                                ALSASEQ_TYPE_EVENT,     \
+                                ALSASeqEvent))
+#define ALSASEQ_IS_EVENT(obj)                           \
+    (G_TYPE_CHECK_INSTANCE_TYPE((obj),                  \
+                                ALSASEQ_TYPE_EVENT))
+
+#define ALSASEQ_EVENT_CLASS(klass)                      \
+    (G_TYPE_CHECK_CLASS_CAST((klass),                   \
+                             ALSASEQ_TYPE_EVENT,        \
+                             ALSASeqEventClass))
+#define ALSASEQ_IS_EVENT_CLASS(klass)                   \
+    (G_TYPE_CHECK_CLASS_TYPE((klass),                   \
+                             ALSASEQ_TYPE_EVENT))
+#define ALSASEQ_EVENT_GET_CLASS(obj)                    \
+    (G_TYPE_INSTANCE_GET_CLASS((obj),                   \
+                               ALSASEQ_TYPE_EVENT,      \
+                               ALSASeqEventClass))
+
+typedef struct _ALSASeqEvent        ALSASeqEvent;
+typedef struct _ALSASeqEventClass   ALSASeqEventClass;
+
+struct _ALSASeqEvent {
+    GObject parent_instance;
+};
+
+struct _ALSASeqEventClass {
+    GObjectClass parent_class;
+};
+
+GType alsaseq_event_get_type() G_GNUC_CONST;
+
+G_END_DECLS
+
+#endif
index 4f23a1952950e1ef22b659e9efa1bd21fccef236..97ba11982caf0a12adf85d12f6d79f7dbb4765e0 100644 (file)
@@ -17,6 +17,7 @@ sources = files(
   'port-info.c',
   'client-pool.c',
   'tstamp.c',
+  'event.c',
 )
 
 headers = files(
@@ -28,6 +29,7 @@ headers = files(
   'port-info.h',
   'client-pool.h',
   'tstamp.h',
+  'event.h',
 )
 
 privates = files(
diff --git a/tests/alsaseq-event b/tests/alsaseq-event
new file mode 100644 (file)
index 0000000..9cd0181
--- /dev/null
@@ -0,0 +1,18 @@
+#!/usr/bin/env python3
+
+from sys import exit
+from errno import ENXIO
+
+from helper import test
+
+import gi
+gi.require_version('ALSASeq', '0.0')
+from gi.repository import ALSASeq
+
+target = ALSASeq.Event
+props = ()
+methods = ()
+signals = ()
+
+if not test(target, props, methods, signals):
+    exit(ENXIO)
index 0cddeb50c0ad68933e3b95e4b40d8d7c4e6d6992..1aabba5d4ea24989491aceff3a40b9736d1f862f 100644 (file)
@@ -35,6 +35,7 @@ tests = {
     'alsaseq-user-client',
     'alsaseq-port-info',
     'alsaseq-client-pool',
+    'alsaseq-event',
   ],
 }