From 004d3e34827b9ec5c3f1c33de1c1e01095857764 Mon Sep 17 00:00:00 2001 From: Takashi Sakamoto Date: Wed, 10 Jun 2020 10:15:50 +0900 Subject: [PATCH] timer: add boxed object to represent union of two timer events Signed-off-by: Takashi Sakamoto --- src/timer/alsatimer.map | 2 ++ src/timer/event.c | 9 +++++++++ src/timer/event.h | 23 +++++++++++++++++++++++ src/timer/meson.build | 2 ++ 4 files changed, 36 insertions(+) create mode 100644 src/timer/event.c create mode 100644 src/timer/event.h diff --git a/src/timer/alsatimer.map b/src/timer/alsatimer.map index 661b75e..179a2a6 100644 --- a/src/timer/alsatimer.map +++ b/src/timer/alsatimer.map @@ -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 index 0000000..988188a --- /dev/null +++ b/src/timer/event.c @@ -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 index 0000000..169db79 --- /dev/null +++ b/src/timer/event.h @@ -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 +#include + +#include + +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 diff --git a/src/timer/meson.build b/src/timer/meson.build index 3003950..0ffa9eb 100644 --- a/src/timer/meson.build +++ b/src/timer/meson.build @@ -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( -- 2.47.3