From 6b72a77ef2b3fdedee1a2b34eeb4dce949d85734 Mon Sep 17 00:00:00 2001 From: Takashi Sakamoto Date: Wed, 1 Apr 2020 18:13:28 +0900 Subject: [PATCH] seq: client_info: add object to represent information of client Signed-off-by: Takashi Sakamoto --- src/seq/alsaseq.map | 3 +++ src/seq/client-info.c | 24 +++++++++++++++++++ src/seq/client-info.h | 49 +++++++++++++++++++++++++++++++++++++++ src/seq/meson.build | 2 ++ tests/alsaseq-client-info | 20 ++++++++++++++++ tests/meson.build | 1 + 6 files changed, 99 insertions(+) create mode 100644 src/seq/client-info.c create mode 100644 src/seq/client-info.h create mode 100644 tests/alsaseq-client-info diff --git a/src/seq/alsaseq.map b/src/seq/alsaseq.map index 571fc84..0b515a0 100644 --- a/src/seq/alsaseq.map +++ b/src/seq/alsaseq.map @@ -22,6 +22,9 @@ ALSA_GOBJECT_0_0_0 { "alsaseq_get_client_id_list"; "alsaseq_system_info_get_type"; + + "alsaseq_client_info_get_type"; + "alsaseq_client_info_new"; local: *; }; diff --git a/src/seq/client-info.c b/src/seq/client-info.c new file mode 100644 index 0000000..561397f --- /dev/null +++ b/src/seq/client-info.c @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: LGPL-3.0-or-later +#include "client-info.h" + +G_DEFINE_TYPE(ALSASeqClientInfo, alsaseq_client_info, G_TYPE_OBJECT) + +static void alsaseq_client_info_class_init(ALSASeqClientInfoClass *klass) +{ + return; +} + +static void alsaseq_client_info_init(ALSASeqClientInfo *self) +{ + return; +} + +/** + * alsaseq_client_info_new: + * + * Allocate and return an instance of ALSASeqClientinfo class. + */ +ALSASeqClientInfo *alsaseq_client_info_new() +{ + return g_object_new(ALSASEQ_TYPE_CLIENT_INFO, NULL); +} diff --git a/src/seq/client-info.h b/src/seq/client-info.h new file mode 100644 index 0000000..cb746ca --- /dev/null +++ b/src/seq/client-info.h @@ -0,0 +1,49 @@ +// SPDX-License-Identifier: LGPL-3.0-or-later +#ifndef __ALSA_GOBJECT_ALSASEQ_CLIENT_INFO__H__ +#define __ALSA_GOBJECT_ALSASEQ_CLIENT_INFO__H__ + +#include +#include + +G_BEGIN_DECLS + +#define ALSASEQ_TYPE_CLIENT_INFO (alsaseq_client_info_get_type()) + +#define ALSASEQ_CLIENT_INFO(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + ALSASEQ_TYPE_CLIENT_INFO, \ + ALSASeqClientInfo)) +#define ALSASEQ_IS_CLIENT_INFO(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ + ALSASEQ_TYPE_CLIENT_INFO)) + +#define ALSASEQ_CLIENT_INFO_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), \ + ALSASEQ_TYPE_CLIENT_INFO, \ + ALSASeqClientInfoClass)) +#define ALSASEQ_IS_CLIENT_INFO_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), \ + ALSASEQ_TYPE_CLIENT_INFO)) +#define ALSASEQ_CLIENT_INFO_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), \ + ALSASEQ_TYPE_CLIENT_INFO, \ + ALSASeqClientInfoClass)) + +typedef struct _ALSASeqClientInfo ALSASeqClientInfo; +typedef struct _ALSASeqClientInfoClass ALSASeqClientInfoClass; + +struct _ALSASeqClientInfo { + GObject parent_instance; +}; + +struct _ALSASeqClientInfoClass { + GObjectClass parent_class; +}; + +GType alsaseq_client_info_get_type() G_GNUC_CONST; + +ALSASeqClientInfo *alsaseq_client_info_new(); + +G_END_DECLS + +#endif diff --git a/src/seq/meson.build b/src/seq/meson.build index 440f06a..44ec1aa 100644 --- a/src/seq/meson.build +++ b/src/seq/meson.build @@ -11,11 +11,13 @@ has_marshaller = false sources = files( 'query.c', 'system-info.c', + 'client-info.c', ) headers = files( 'query.h', 'system-info.h', + 'client-info.h', ) privates = files( diff --git a/tests/alsaseq-client-info b/tests/alsaseq-client-info new file mode 100644 index 0000000..7c9259e --- /dev/null +++ b/tests/alsaseq-client-info @@ -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('ALSASeq', '0.0') +from gi.repository import ALSASeq + +target = ALSASeq.ClientInfo() +props = () +methods = ( + 'new', +) +signals = () + +if not test(target, props, methods, signals): + exit(ENXIO) diff --git a/tests/meson.build b/tests/meson.build index dba7e55..629141d 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -31,6 +31,7 @@ tests = { 'seq': [ 'alsaseq-enums', 'alsaseq-system-info', + 'alsaseq-client-info', ], } -- 2.47.3