From: Takashi Sakamoto Date: Wed, 1 Apr 2020 09:13:28 +0000 (+0900) Subject: seq: user_client: add object to represent user client for ALSA Sequencer X-Git-Tag: v0.1.0~300 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=3cd626f7430911eabba5fa24002adef3724ea7ab;p=alsa-gobject.git seq: user_client: add object to represent user client for ALSA Sequencer Signed-off-by: Takashi Sakamoto --- diff --git a/src/seq/alsaseq.map b/src/seq/alsaseq.map index 2c444a7..c68c921 100644 --- a/src/seq/alsaseq.map +++ b/src/seq/alsaseq.map @@ -28,6 +28,9 @@ ALSA_GOBJECT_0_0_0 { "alsaseq_client_info_new"; "alsaseq_client_info_set_event_filter"; "alsaseq_client_info_get_event_filter"; + + "alsaseq_user_client_get_type"; + "alsaseq_user_client_new"; local: *; }; diff --git a/src/seq/meson.build b/src/seq/meson.build index 44ec1aa..3e8d511 100644 --- a/src/seq/meson.build +++ b/src/seq/meson.build @@ -12,12 +12,14 @@ sources = files( 'query.c', 'system-info.c', 'client-info.c', + 'user-client.c', ) headers = files( 'query.h', 'system-info.h', 'client-info.h', + 'user-client.h', ) privates = files( diff --git a/src/seq/user-client.c b/src/seq/user-client.c new file mode 100644 index 0000000..a74f2b6 --- /dev/null +++ b/src/seq/user-client.c @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: LGPL-3.0-or-later +#include "user-client.h" + +G_DEFINE_TYPE(ALSASeqUserClient, alsaseq_user_client, G_TYPE_OBJECT) + +static void alsaseq_user_client_class_init(ALSASeqUserClientClass *klass) +{ + return; +} + +static void alsaseq_user_client_init(ALSASeqUserClient *self) +{ + return; +} + +/** + * alsaseq_user_client_new: + * + * Allocate and return an instance of ALSASeqUserClient class. + */ +ALSASeqUserClient *alsaseq_user_client_new() +{ + return g_object_new(ALSASEQ_TYPE_USER_CLIENT, NULL); +} diff --git a/src/seq/user-client.h b/src/seq/user-client.h new file mode 100644 index 0000000..3d94bf4 --- /dev/null +++ b/src/seq/user-client.h @@ -0,0 +1,49 @@ +// SPDX-License-Identifier: LGPL-3.0-or-later +#ifndef __ALSA_GOBJECT_ALSASEQ_USER_CLIENT__H__ +#define __ALSA_GOBJECT_ALSASEQ_USER_CLIENT__H__ + +#include +#include + +G_BEGIN_DECLS + +#define ALSASEQ_TYPE_USER_CLIENT (alsaseq_user_client_get_type()) + +#define ALSASEQ_USER_CLIENT(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + ALSASEQ_TYPE_USER_CLIENT, \ + ALSASeqUserClient)) +#define ALSASEQ_IS_USER_CLIENT(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ + ALSASEQ_TYPE_USER_CLIENT)) + +#define ALSASEQ_USER_CLIENT_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), \ + ALSASEQ_TYPE_USER_CLIENT, \ + ALSASeqUserClientClass)) +#define ALSASEQ_IS_USER_CLIENT_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), \ + ALSASEQ_TYPE_USER_CLIENT)) +#define ALSASEQ_USER_CLIENT_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), \ + ALSASEQ_TYPE_USER_CLIENT, \ + ALSASeqUserClientClass)) + +typedef struct _ALSASeqUserClient ALSASeqUserClient; +typedef struct _ALSASeqUserClientClass ALSASeqUserClientClass; + +struct _ALSASeqUserClient { + GObject parent_instance; +}; + +struct _ALSASeqUserClientClass { + GObjectClass parent_class; +}; + +GType alsaseq_user_client_get_type() G_GNUC_CONST; + +ALSASeqUserClient *alsaseq_user_client_new(); + +G_END_DECLS + +#endif diff --git a/tests/alsaseq-user-client b/tests/alsaseq-user-client new file mode 100644 index 0000000..d1dc621 --- /dev/null +++ b/tests/alsaseq-user-client @@ -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.UserClient() +props = () +methods = ( + 'new', +) +signals = () + +if not test(target, props, methods, signals): + exit(ENXIO) diff --git a/tests/meson.build b/tests/meson.build index 629141d..4f81e3c 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -32,6 +32,7 @@ tests = { 'alsaseq-enums', 'alsaseq-system-info', 'alsaseq-client-info', + 'alsaseq-user-client', ], }