]> git.alsa-project.org Git - alsa-gobject.git/commitdiff
timer: add boxed object to represent union of two timer events
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Wed, 10 Jun 2020 01:15:50 +0000 (10:15 +0900)
committer坂本 貴史 <o-takashi@sakamocchi.jp>
Fri, 12 Jun 2020 00:00:43 +0000 (09:00 +0900)
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
src/timer/alsatimer.map
src/timer/event.c [new file with mode: 0644]
src/timer/event.h [new file with mode: 0644]
src/timer/meson.build

index 661b75e05cdc2f48e35175fd040113f02ed4a67e..179a2a660bead372caa13f6abcfebc1929404003 100644 (file)
@@ -59,6 +59,8 @@ ALSA_GOBJECT_0_0_0 {
 
     "alsatimer_event_data_timestamp_get_type";
     "alsatimer_event_data_timestamp_get_timestamp";
+
+    "alsatimer_event_get_type";
   local:
     *;
 };
diff --git a/src/timer/event.c b/src/timer/event.c
new file mode 100644 (file)
index 0000000..988188a
--- /dev/null
@@ -0,0 +1,9 @@
+// SPDX-License-Identifier: LGPL-3.0-or-later
+#include "event.h"
+
+ALSATimerEvent *timer_event_copy(const ALSATimerEvent *self)
+{
+    return g_memdup(self, sizeof(*self));
+}
+
+G_DEFINE_BOXED_TYPE(ALSATimerEvent, alsatimer_event, timer_event_copy, g_free)
diff --git a/src/timer/event.h b/src/timer/event.h
new file mode 100644 (file)
index 0000000..169db79
--- /dev/null
@@ -0,0 +1,23 @@
+// SPDX-License-Identifier: LGPL-3.0-or-later
+#ifndef __ALSA_GOBJECT_ALSATIMER_EVENT__H__
+#define __ALSA_GOBJECT_ALSATIMER_EVENT__H__
+
+#include <glib.h>
+#include <glib-object.h>
+
+#include <sound/asound.h>
+
+G_BEGIN_DECLS
+
+#define ALSATIMER_TYPE_EVENT    (alsatimer_event_get_type())
+
+typedef union {
+    struct snd_timer_read tick;
+    struct snd_timer_tread timestamp;
+} ALSATimerEvent;
+
+GType alsatimer_event_get_type() G_GNUC_CONST;
+
+G_END_DECLS
+
+#endif
index 3003950aba8169111d5144ac0a977a62a1514e37..0ffa9eb5359bcce7fca7b64da57e9562f84763aa 100644 (file)
@@ -21,6 +21,7 @@ sources = files(
   'event-data.c',
   'event-data-tick.c',
   'event-data-timestamp.c',
+  'event.c',
 )
 
 headers = files(
@@ -36,6 +37,7 @@ headers = files(
   'event-data.h',
   'event-data-tick.h',
   'event-data-timestamp.h',
+  'event.h',
 )
 
 privates = files(