From 4a3c684711b7d84d8cb8877ff70df3fdcb657184 Mon Sep 17 00:00:00 2001 From: Takashi Sakamoto Date: Mon, 18 Nov 2019 13:22:44 +0900 Subject: [PATCH] rawmidi: substream_status: add object to represent status of attached substream Signed-off-by: Takashi Sakamoto --- src/rawmidi/alsarawmidi.map | 3 ++ src/rawmidi/meson.build | 2 ++ src/rawmidi/privates.h | 1 + src/rawmidi/substream-status.c | 24 +++++++++++++++ src/rawmidi/substream-status.h | 49 ++++++++++++++++++++++++++++++ tests/alsarawmidi-substream-status | 20 ++++++++++++ tests/meson.build | 1 + 7 files changed, 100 insertions(+) create mode 100644 src/rawmidi/substream-status.c create mode 100644 src/rawmidi/substream-status.h create mode 100644 tests/alsarawmidi-substream-status diff --git a/src/rawmidi/alsarawmidi.map b/src/rawmidi/alsarawmidi.map index b9ba394..1a0a56d 100644 --- a/src/rawmidi/alsarawmidi.map +++ b/src/rawmidi/alsarawmidi.map @@ -19,6 +19,9 @@ ALSA_GOBJECT_0_0_0 { "alsarawmidi_substream_params_get_type"; "alsarawmidi_substream_params_new"; + + "alsarawmidi_substream_status_get_type"; + "alsarawmidi_substream_status_new"; local: *; }; diff --git a/src/rawmidi/meson.build b/src/rawmidi/meson.build index cf845f8..e4d2ff2 100644 --- a/src/rawmidi/meson.build +++ b/src/rawmidi/meson.build @@ -13,6 +13,7 @@ sources = files( 'substream-info.c', 'stream-pair.c', 'substream-params.c', + 'substream-status.c', ) headers = files( @@ -20,6 +21,7 @@ headers = files( 'substream-info.h', 'stream-pair.h', 'substream-params.h', + 'substream-status.h', ) privates = files( diff --git a/src/rawmidi/privates.h b/src/rawmidi/privates.h index ae579de..ff284dd 100644 --- a/src/rawmidi/privates.h +++ b/src/rawmidi/privates.h @@ -9,6 +9,7 @@ #include "substream-info.h" #include "substream-params.h" +#include "substream-status.h" #include diff --git a/src/rawmidi/substream-status.c b/src/rawmidi/substream-status.c new file mode 100644 index 0000000..8c6e766 --- /dev/null +++ b/src/rawmidi/substream-status.c @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: LGPL-3.0-or-later +#include "substream-status.h" + +G_DEFINE_TYPE(ALSARawmidiSubstreamStatus, alsarawmidi_substream_status, G_TYPE_OBJECT) + +static void alsarawmidi_substream_status_class_init(ALSARawmidiSubstreamStatusClass *klass) +{ + return; +} + +static void alsarawmidi_substream_status_init(ALSARawmidiSubstreamStatus *self) +{ + return; +} + +/** + * alsarawmidi_substream_status_new: + * + * Allocate and return an instance of ALSARawmidiSubstreamStatus class. + */ +ALSARawmidiSubstreamStatus *alsarawmidi_substream_status_new() +{ + return g_object_new(ALSARAWMIDI_TYPE_SUBSTREAM_STATUS, NULL); +} diff --git a/src/rawmidi/substream-status.h b/src/rawmidi/substream-status.h new file mode 100644 index 0000000..6d48c24 --- /dev/null +++ b/src/rawmidi/substream-status.h @@ -0,0 +1,49 @@ +// SPDX-License-Identifier: LGPL-3.0-or-later +#ifndef __ALSA_GOBJECT_ALSARAWMIDI_SUBSTREAM_STATUS__H__ +#define __ALSA_GOBJECT_ALSARAWMIDI_SUBSTREAM_STATUS__H__ + +#include +#include + +G_BEGIN_DECLS + +#define ALSARAWMIDI_TYPE_SUBSTREAM_STATUS (alsarawmidi_substream_status_get_type()) + +#define ALSARAWMIDI_SUBSTREAM_STATUS(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + ALSARAWMIDI_TYPE_SUBSTREAM_STATUS, \ + ALSARawmidiSubstreamStatus)) +#define ALSARAWMIDI_IS_SUBSTREAM_STATUS(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ + ALSARAWMIDI_TYPE_SUBSTREAM_STATUS)) + +#define ALSARAWMIDI_SUBSTREAM_STATUS_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), \ + ALSARAWMIDI_TYPE_SUBSTREAM_STATUS, \ + ALSARawmidiSubstreamStatusClass)) +#define ALSARAWMIDI_IS_SUBSTREAM_STATUS_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), \ + ALSARAWMIDI_TYPE_SUBSTREAM_STATUS)) +#define ALSARAWMIDI_SUBSTREAM_STATUS_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), \ + ALSARAWMIDI_TYPE_SUBSTREAM_STATUS, \ + ALSARawmidiSubstreamStatusClass)) + +typedef struct _ALSARawmidiSubstreamStatus ALSARawmidiSubstreamStatus; +typedef struct _ALSARawmidiSubstreamStatusClass ALSARawmidiSubstreamStatusClass; + +struct _ALSARawmidiSubstreamStatus { + GObject parent_instance; +}; + +struct _ALSARawmidiSubstreamStatusClass { + GObjectClass parent_class; +}; + +GType alsarawmidi_substream_status_get_type() G_GNUC_CONST; + +ALSARawmidiSubstreamStatus *alsarawmidi_substream_status_new(); + +G_END_DECLS + +#endif diff --git a/tests/alsarawmidi-substream-status b/tests/alsarawmidi-substream-status new file mode 100644 index 0000000..65cbfd7 --- /dev/null +++ b/tests/alsarawmidi-substream-status @@ -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.SubstreamStatus() +props = () +methods = ( + 'new', +) +signals = () + +if not test(target, props, methods, signals): + exit(ENXIO) diff --git a/tests/meson.build b/tests/meson.build index bf4b7f5..1dbe3bc 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -54,6 +54,7 @@ tests = { 'alsarawmidi-substream-info', 'alsarawmidi-stream-pair', 'alsarawmidi-substream-params', + 'alsarawmidi-substream-status', ], } -- 2.47.3