]> git.alsa-project.org Git - alsa-gobject.git/commitdiff
ctl: elem_id: add GObject derived object for identifier of control element
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/elem-id.c [new file with mode: 0644]
src/ctl/elem-id.h [new file with mode: 0644]
src/ctl/meson.build

index 8cd47038bb1a65e4d4f0e91974ec049360595019..1abe9b27546f4f99280775738cd8a9c41ce902be 100644 (file)
@@ -17,6 +17,8 @@ ALSA_GOBJECT_0_0_0 {
     "alsactl_card_get_info";
 
     "alsactl_card_info_get_type";
+
+    "alsactl_elem_id_get_type";
   local:
     *;
 };
diff --git a/src/ctl/elem-id.c b/src/ctl/elem-id.c
new file mode 100644 (file)
index 0000000..d0ab59b
--- /dev/null
@@ -0,0 +1,9 @@
+// SPDX-License-Identifier: LGPL-3.0-or-later
+#include "elem-id.h"
+
+ALSACtlElemId *ctl_elem_id_copy(const ALSACtlElemId *self)
+{
+    return g_memdup(self, sizeof(*self));
+}
+
+G_DEFINE_BOXED_TYPE(ALSACtlElemId, alsactl_elem_id, ctl_elem_id_copy, g_free);
diff --git a/src/ctl/elem-id.h b/src/ctl/elem-id.h
new file mode 100644 (file)
index 0000000..7d62c53
--- /dev/null
@@ -0,0 +1,20 @@
+// SPDX-License-Identifier: LGPL-3.0-or-later
+#ifndef __ALSA_GOBJECT_ALSACTL_ELEM_ID__H__
+#define __ALSA_GOBJECT_ALSACTL_ELEM_ID__H__
+
+#include <glib.h>
+#include <glib-object.h>
+
+#include <sound/asound.h>
+
+G_BEGIN_DECLS
+
+#define ALSACTL_TYPE_ELEM_ID    (alsactl_elem_id_get_type())
+
+typedef struct snd_ctl_elem_id ALSACtlElemId;
+
+GType alsactl_elem_id_get_type() G_GNUC_CONST;
+
+G_END_DECLS
+
+#endif
index 00c61f58a58c1ec065c512cf99fdeca4e16e9539..817930aa3c82dec9db440e3894ef25ad74b7bda6 100644 (file)
@@ -12,12 +12,14 @@ sources = files(
   'query.c',
   'card.c',
   'card-info.c',
+  'elem-id.c',
 )
 
 headers = files(
   'query.h',
   'card.h',
   'card-info.h',
+  'elem-id.h',
 )
 
 privates = files(