From 85eedd49d6681a0921803a1b375faa140312715e Mon Sep 17 00:00:00 2001 From: Takashi Sakamoto Date: Mon, 18 Nov 2019 13:22:44 +0900 Subject: [PATCH] rawmidi: stream_pair: add object to represent a pair of data stream Signed-off-by: Takashi Sakamoto --- src/rawmidi/alsarawmidi.map | 3 +++ src/rawmidi/meson.build | 2 ++ src/rawmidi/stream-pair.c | 24 +++++++++++++++++ src/rawmidi/stream-pair.h | 49 +++++++++++++++++++++++++++++++++++ tests/alsarawmidi-stream-pair | 20 ++++++++++++++ tests/meson.build | 1 + 6 files changed, 99 insertions(+) create mode 100644 src/rawmidi/stream-pair.c create mode 100644 src/rawmidi/stream-pair.h create mode 100644 tests/alsarawmidi-stream-pair diff --git a/src/rawmidi/alsarawmidi.map b/src/rawmidi/alsarawmidi.map index 9a384c3..1c68baa 100644 --- a/src/rawmidi/alsarawmidi.map +++ b/src/rawmidi/alsarawmidi.map @@ -10,6 +10,9 @@ ALSA_GOBJECT_0_0_0 { "alsarawmidi_get_substream_info"; "alsarawmidi_substream_info_get_type"; + + "alsarawmidi_stream_pair_get_type"; + "alsarawmidi_stream_pair_new"; local: *; }; diff --git a/src/rawmidi/meson.build b/src/rawmidi/meson.build index e83b456..b686511 100644 --- a/src/rawmidi/meson.build +++ b/src/rawmidi/meson.build @@ -11,11 +11,13 @@ has_marshaller = false sources = files( 'query.c', 'substream-info.c', + 'stream-pair.c', ) headers = files( 'query.h', 'substream-info.h', + 'stream-pair.h', ) privates = files( diff --git a/src/rawmidi/stream-pair.c b/src/rawmidi/stream-pair.c new file mode 100644 index 0000000..4ce38ff --- /dev/null +++ b/src/rawmidi/stream-pair.c @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: LGPL-3.0-or-later +#include "stream-pair.h" + +G_DEFINE_TYPE(ALSARawmidiStreamPair, alsarawmidi_stream_pair, G_TYPE_OBJECT) + +static void alsarawmidi_stream_pair_class_init(ALSARawmidiStreamPairClass *klass) +{ + return; +} + +static void alsarawmidi_stream_pair_init(ALSARawmidiStreamPair *self) +{ + return; +} + +/** + * alsarawmidi_stream_pair_new: + * + * Allocate and return an instance of ALSARawmidiStreamPair class. + */ +ALSARawmidiStreamPair *alsarawmidi_stream_pair_new() +{ + return g_object_new(ALSARAWMIDI_TYPE_STREAM_PAIR, NULL); +} diff --git a/src/rawmidi/stream-pair.h b/src/rawmidi/stream-pair.h new file mode 100644 index 0000000..248d62c --- /dev/null +++ b/src/rawmidi/stream-pair.h @@ -0,0 +1,49 @@ +// SPDX-License-Identifier: LGPL-3.0-or-later +#ifndef __ALSA_GOBJECT_ALSARAWMIDI_STREAM_PAIR__H__ +#define __ALSA_GOBJECT_ALSARAWMIDI_STREAM_PAIR__H__ + +#include +#include + +G_BEGIN_DECLS + +#define ALSARAWMIDI_TYPE_STREAM_PAIR (alsarawmidi_stream_pair_get_type()) + +#define ALSARAWMIDI_STREAM_PAIR(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + ALSARAWMIDI_TYPE_STREAM_PAIR, \ + ALSARawmidiStreamPair)) +#define ALSARAWMIDI_IS_STREAM_PAIR(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ + ALSARAWMIDI_TYPE_STREAM_PAIR)) + +#define ALSARAWMIDI_STREAM_PAIR_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), \ + ALSARAWMIDI_TYPE_STREAM_PAIR, \ + ALSARawmidiStreamPairClass)) +#define ALSARAWMIDI_IS_STREAM_PAIR_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), \ + ALSARAWMIDI_TYPE_STREAM_PAIR)) +#define ALSARAWMIDI_STREAM_PAIR_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), \ + ALSARAWMIDI_TYPE_STREAM_PAIR, \ + ALSARawmidiStreamPairClass)) + +typedef struct _ALSARawmidiStreamPair ALSARawmidiStreamPair; +typedef struct _ALSARawmidiStreamPairClass ALSARawmidiStreamPairClass; + +struct _ALSARawmidiStreamPair { + GObject parent_instance; +}; + +struct _ALSARawmidiStreamPairClass { + GObjectClass parent_class; +}; + +GType alsarawmidi_stream_pair_get_type(void) G_GNUC_CONST; + +ALSARawmidiStreamPair *alsarawmidi_stream_pair_new(); + +G_END_DECLS + +#endif diff --git a/tests/alsarawmidi-stream-pair b/tests/alsarawmidi-stream-pair new file mode 100644 index 0000000..cdf1983 --- /dev/null +++ b/tests/alsarawmidi-stream-pair @@ -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.StreamPair() +props = () +methods = ( + 'new', +) +signals = () + +if not test(target, props, methods, signals): + exit(ENXIO) diff --git a/tests/meson.build b/tests/meson.build index 8ca61e2..38d192b 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -52,6 +52,7 @@ tests = { 'rawmidi': [ 'alsarawmidi-enums', 'alsarawmidi-substream-info', + 'alsarawmidi-stream-pair', ], } -- 2.47.3