]> git.alsa-project.org Git - alsa-gobject.git/commitdiff
rawmidi: substream_status: add object to represent status of attached substream
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Mon, 18 Nov 2019 04:22:44 +0000 (13:22 +0900)
committer坂本 貴史 <o-takashi@sakamocchi.jp>
Sun, 12 Apr 2020 05:30:33 +0000 (14:30 +0900)
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
src/rawmidi/alsarawmidi.map
src/rawmidi/meson.build
src/rawmidi/privates.h
src/rawmidi/substream-status.c [new file with mode: 0644]
src/rawmidi/substream-status.h [new file with mode: 0644]
tests/alsarawmidi-substream-status [new file with mode: 0644]
tests/meson.build

index b9ba3946c12ee54507deb9dba5a2558444a6811b..1a0a56dc32d40e6c3d0ec60a4e3944bc7597610e 100644 (file)
@@ -19,6 +19,9 @@ ALSA_GOBJECT_0_0_0 {
 
     "alsarawmidi_substream_params_get_type";
     "alsarawmidi_substream_params_new";
+
+    "alsarawmidi_substream_status_get_type";
+    "alsarawmidi_substream_status_new";
   local:
     *;
 };
index cf845f8cf31c5ba53b405f7f503ad98952718005..e4d2ff29c84542973005fe08fe71d6faf37b6a90 100644 (file)
@@ -13,6 +13,7 @@ sources = files(
   'substream-info.c',
   'stream-pair.c',
   'substream-params.c',
+  'substream-status.c',
 )
 
 headers = files(
@@ -20,6 +21,7 @@ headers = files(
   'substream-info.h',
   'stream-pair.h',
   'substream-params.h',
+  'substream-status.h',
 )
 
 privates = files(
index ae579de769efb0ea84a38d14260a56d263c4aeba..ff284dd6d56141643ec612684c9ef3a1f2bccf4e 100644 (file)
@@ -9,6 +9,7 @@
 
 #include "substream-info.h"
 #include "substream-params.h"
+#include "substream-status.h"
 
 #include <sound/asound.h>
 
diff --git a/src/rawmidi/substream-status.c b/src/rawmidi/substream-status.c
new file mode 100644 (file)
index 0000000..8c6e766
--- /dev/null
@@ -0,0 +1,24 @@
+// SPDX-License-Identifier: LGPL-3.0-or-later
+#include "substream-status.h"
+
+G_DEFINE_TYPE(ALSARawmidiSubstreamStatus, alsarawmidi_substream_status, G_TYPE_OBJECT)
+
+static void alsarawmidi_substream_status_class_init(ALSARawmidiSubstreamStatusClass *klass)
+{
+    return;
+}
+
+static void alsarawmidi_substream_status_init(ALSARawmidiSubstreamStatus *self)
+{
+    return;
+}
+
+/**
+ * alsarawmidi_substream_status_new:
+ *
+ * Allocate and return an instance of ALSARawmidiSubstreamStatus class.
+ */
+ALSARawmidiSubstreamStatus *alsarawmidi_substream_status_new()
+{
+    return g_object_new(ALSARAWMIDI_TYPE_SUBSTREAM_STATUS, NULL);
+}
diff --git a/src/rawmidi/substream-status.h b/src/rawmidi/substream-status.h
new file mode 100644 (file)
index 0000000..6d48c24
--- /dev/null
@@ -0,0 +1,49 @@
+// SPDX-License-Identifier: LGPL-3.0-or-later
+#ifndef __ALSA_GOBJECT_ALSARAWMIDI_SUBSTREAM_STATUS__H__
+#define __ALSA_GOBJECT_ALSARAWMIDI_SUBSTREAM_STATUS__H__
+
+#include <glib.h>
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+#define ALSARAWMIDI_TYPE_SUBSTREAM_STATUS   (alsarawmidi_substream_status_get_type())
+
+#define ALSARAWMIDI_SUBSTREAM_STATUS(obj)                           \
+    (G_TYPE_CHECK_INSTANCE_CAST((obj),                              \
+                                ALSARAWMIDI_TYPE_SUBSTREAM_STATUS,  \
+                                ALSARawmidiSubstreamStatus))
+#define ALSARAWMIDI_IS_SUBSTREAM_STATUS(obj)                        \
+    (G_TYPE_CHECK_INSTANCE_TYPE((obj),                              \
+                                ALSARAWMIDI_TYPE_SUBSTREAM_STATUS))
+
+#define ALSARAWMIDI_SUBSTREAM_STATUS_CLASS(klass)                   \
+    (G_TYPE_CHECK_CLASS_CAST((klass),                               \
+                             ALSARAWMIDI_TYPE_SUBSTREAM_STATUS,     \
+                             ALSARawmidiSubstreamStatusClass))
+#define ALSARAWMIDI_IS_SUBSTREAM_STATUS_CLASS(klass)                \
+    (G_TYPE_CHECK_CLASS_TYPE((klass),                               \
+                             ALSARAWMIDI_TYPE_SUBSTREAM_STATUS))
+#define ALSARAWMIDI_SUBSTREAM_STATUS_GET_CLASS(obj)                 \
+    (G_TYPE_INSTANCE_GET_CLASS((obj),                               \
+                               ALSARAWMIDI_TYPE_SUBSTREAM_STATUS,   \
+                               ALSARawmidiSubstreamStatusClass))
+
+typedef struct _ALSARawmidiSubstreamStatus          ALSARawmidiSubstreamStatus;
+typedef struct _ALSARawmidiSubstreamStatusClass     ALSARawmidiSubstreamStatusClass;
+
+struct _ALSARawmidiSubstreamStatus {
+    GObject parent_instance;
+};
+
+struct _ALSARawmidiSubstreamStatusClass {
+    GObjectClass parent_class;
+};
+
+GType alsarawmidi_substream_status_get_type() G_GNUC_CONST;
+
+ALSARawmidiSubstreamStatus *alsarawmidi_substream_status_new();
+
+G_END_DECLS
+
+#endif
diff --git a/tests/alsarawmidi-substream-status b/tests/alsarawmidi-substream-status
new file mode 100644 (file)
index 0000000..65cbfd7
--- /dev/null
@@ -0,0 +1,20 @@
+#!/usr/bin/env python3
+
+from sys import exit
+from errno import ENXIO
+
+from helper import test
+
+import gi
+gi.require_version('ALSARawmidi', '0.0')
+from gi.repository import ALSARawmidi
+
+target = ALSARawmidi.SubstreamStatus()
+props = ()
+methods = (
+    'new',
+)
+signals = ()
+
+if not test(target, props, methods, signals):
+    exit(ENXIO)
index bf4b7f5bbf5900db7db3625b68c145819797dac9..1dbe3bc7a76157a40ee3b0a2df6aa02bec874ffe 100644 (file)
@@ -54,6 +54,7 @@ tests = {
     'alsarawmidi-substream-info',
     'alsarawmidi-stream-pair',
     'alsarawmidi-substream-params',
+    'alsarawmidi-substream-status',
   ],
 }