]> git.alsa-project.org Git - alsa-gobject.git/commitdiff
ctl: card: add object to represent sound card
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Mon, 18 Nov 2019 04:22:44 +0000 (13:22 +0900)
committerTakashi Sakamoto <o-takashi@sakamocchi.jp>
Sat, 30 Nov 2019 08:58:41 +0000 (17:58 +0900)
src/ctl/alsactl.map
src/ctl/card.c [new file with mode: 0644]
src/ctl/card.h [new file with mode: 0644]
src/ctl/meson.build
tests/alsactl-card [new file with mode: 0644]
tests/meson.build

index 45d84d3e90717411cac87bc7a2de9c58a9991707..f7b0ed6aff3eb8111ee7378cd835462656705554 100644 (file)
@@ -10,6 +10,9 @@ ALSA_GOBJECT_0_0_0 {
     "alsactl_get_card_sysname";
     "alsactl_get_control_sysname";
     "alsactl_get_control_devnode";
+
+    "alsactl_card_get_type";
+    "alsactl_card_new";
   local:
     *;
 };
diff --git a/src/ctl/card.c b/src/ctl/card.c
new file mode 100644 (file)
index 0000000..565b3c2
--- /dev/null
@@ -0,0 +1,24 @@
+// SPDX-License-Identifier: LGPL-3.0-or-later
+#include "card.h"
+
+G_DEFINE_TYPE(ALSACtlCard, alsactl_card, G_TYPE_OBJECT)
+
+static void alsactl_card_class_init(ALSACtlCardClass *klass)
+{
+    return;
+}
+
+static void alsactl_card_init(ALSACtlCard *self)
+{
+    return;
+}
+
+/**
+ * alsactl_card_new:
+ *
+ * Allocate and return an instance of ALSACtlCard class.
+ */
+ALSACtlCard *alsactl_card_new()
+{
+    return g_object_new(ALSACTL_TYPE_CARD, NULL);
+}
diff --git a/src/ctl/card.h b/src/ctl/card.h
new file mode 100644 (file)
index 0000000..9d443f8
--- /dev/null
@@ -0,0 +1,49 @@
+// SPDX-License-Identifier: LGPL-3.0-or-later
+#ifndef __ALSA_GOBJECT_ALSACTL_CARD__H__
+#define __ALSA_GOBJECT_ALSACTL_CARD__H__
+
+#include <glib.h>
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+#define ALSACTL_TYPE_CARD   (alsactl_card_get_type())
+
+#define ALSACTL_CARD(obj)                           \
+    (G_TYPE_CHECK_INSTANCE_CAST((obj),              \
+                                ALSACTL_TYPE_CARD,  \
+                                ALSACtlCard))
+#define ALSACTL_IS_CARD(obj)                        \
+    (G_TYPE_CHECK_INSTANCE_TYPE((obj),              \
+                                ALSACTL_TYPE_CARD))
+
+#define ALSACTL_CARD_CLASS(klass)                   \
+    (G_TYPE_CHECK_CLASS_CAST((klass),               \
+                             ALSACTL_TYPE_CARD,     \
+                             ALSACtlCardClass))
+#define ALSACTL_IS_CARD_CLASS(klass)                \
+    (G_TYPE_CHECK_CLASS_TYPE((klass),               \
+                             ALSACTL_TYPE_CARD))
+#define ALSACTL_CARD_GET_CLASS(obj)                 \
+    (G_TYPE_INSTANCE_GET_CLASS((obj),               \
+                               ALSACTL_TYPE_CARD,   \
+                               ALSACtlCardClass))
+
+typedef struct _ALSACtlCard         ALSACtlCard;
+typedef struct _ALSACtlCardClass    ALSACtlCardClass;
+
+struct _ALSACtlCard {
+    GObject parent_instance;
+};
+
+struct _ALSACtlCardClass {
+    GObjectClass parent_class;
+};
+
+GType alsactl_card_get_type() G_GNUC_CONST;
+
+ALSACtlCard *alsactl_card_new();
+
+G_END_DECLS
+
+#endif
index b15beceaed84f5b34a1290a803e48df0a98a4bb7..4d9fadbe44d7a1ac98aa93de13b5ea5309fcb7f2 100644 (file)
@@ -10,10 +10,12 @@ has_marshaller = false
 
 sources = files(
   'query.c',
+  'card.c',
 )
 
 headers = files(
   'query.h',
+  'card.h',
 )
 
 privates = files(
diff --git a/tests/alsactl-card b/tests/alsactl-card
new file mode 100644 (file)
index 0000000..eb46ee8
--- /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('ALSACtl', '0.0')
+from gi.repository import ALSACtl
+
+target = ALSACtl.Card()
+props = ()
+methods = (
+    'new',
+)
+signals = ()
+
+if not test(target, props, methods, signals):
+    exit(ENXIO)
index 5735350a91d5dea8a9ab97050ba0f2305fdf943d..1384379ba6e66cb4377f8da42a61c8b5f4ed2be7 100644 (file)
@@ -4,6 +4,7 @@
 tests = {
   'ctl': [
     'alsactl-enums',
+    'alsactl-card',
   ],
 }