From: Takashi Sakamoto Date: Mon, 18 Nov 2019 04:22:44 +0000 (+0900) Subject: ctl: card: add object to represent sound card X-Git-Tag: v0.1.0~424 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=4b7135502216f8284063cc6b341e7e4f9ee20fc6;p=alsa-gobject.git ctl: card: add object to represent sound card --- diff --git a/src/ctl/alsactl.map b/src/ctl/alsactl.map index 45d84d3..f7b0ed6 100644 --- a/src/ctl/alsactl.map +++ b/src/ctl/alsactl.map @@ -10,6 +10,9 @@ ALSA_GOBJECT_0_0_0 { "alsactl_get_card_sysname"; "alsactl_get_control_sysname"; "alsactl_get_control_devnode"; + + "alsactl_card_get_type"; + "alsactl_card_new"; local: *; }; diff --git a/src/ctl/card.c b/src/ctl/card.c new file mode 100644 index 0000000..565b3c2 --- /dev/null +++ b/src/ctl/card.c @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: LGPL-3.0-or-later +#include "card.h" + +G_DEFINE_TYPE(ALSACtlCard, alsactl_card, G_TYPE_OBJECT) + +static void alsactl_card_class_init(ALSACtlCardClass *klass) +{ + return; +} + +static void alsactl_card_init(ALSACtlCard *self) +{ + return; +} + +/** + * alsactl_card_new: + * + * Allocate and return an instance of ALSACtlCard class. + */ +ALSACtlCard *alsactl_card_new() +{ + return g_object_new(ALSACTL_TYPE_CARD, NULL); +} diff --git a/src/ctl/card.h b/src/ctl/card.h new file mode 100644 index 0000000..9d443f8 --- /dev/null +++ b/src/ctl/card.h @@ -0,0 +1,49 @@ +// SPDX-License-Identifier: LGPL-3.0-or-later +#ifndef __ALSA_GOBJECT_ALSACTL_CARD__H__ +#define __ALSA_GOBJECT_ALSACTL_CARD__H__ + +#include +#include + +G_BEGIN_DECLS + +#define ALSACTL_TYPE_CARD (alsactl_card_get_type()) + +#define ALSACTL_CARD(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + ALSACTL_TYPE_CARD, \ + ALSACtlCard)) +#define ALSACTL_IS_CARD(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ + ALSACTL_TYPE_CARD)) + +#define ALSACTL_CARD_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), \ + ALSACTL_TYPE_CARD, \ + ALSACtlCardClass)) +#define ALSACTL_IS_CARD_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), \ + ALSACTL_TYPE_CARD)) +#define ALSACTL_CARD_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), \ + ALSACTL_TYPE_CARD, \ + ALSACtlCardClass)) + +typedef struct _ALSACtlCard ALSACtlCard; +typedef struct _ALSACtlCardClass ALSACtlCardClass; + +struct _ALSACtlCard { + GObject parent_instance; +}; + +struct _ALSACtlCardClass { + GObjectClass parent_class; +}; + +GType alsactl_card_get_type() G_GNUC_CONST; + +ALSACtlCard *alsactl_card_new(); + +G_END_DECLS + +#endif diff --git a/src/ctl/meson.build b/src/ctl/meson.build index b15bece..4d9fadb 100644 --- a/src/ctl/meson.build +++ b/src/ctl/meson.build @@ -10,10 +10,12 @@ has_marshaller = false sources = files( 'query.c', + 'card.c', ) headers = files( 'query.h', + 'card.h', ) privates = files( diff --git a/tests/alsactl-card b/tests/alsactl-card new file mode 100644 index 0000000..eb46ee8 --- /dev/null +++ b/tests/alsactl-card @@ -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('ALSACtl', '0.0') +from gi.repository import ALSACtl + +target = ALSACtl.Card() +props = () +methods = ( + 'new', +) +signals = () + +if not test(target, props, methods, signals): + exit(ENXIO) diff --git a/tests/meson.build b/tests/meson.build index 5735350..1384379 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -4,6 +4,7 @@ tests = { 'ctl': [ 'alsactl-enums', + 'alsactl-card', ], }