From 89eeea757cab1e0ff87177bcabb29d6b48553140 Mon Sep 17 00:00:00 2001 From: Takashi Sakamoto Date: Mon, 18 Nov 2019 13:22:44 +0900 Subject: [PATCH] ctl: elem_info_enum: add object to represent information for element of enumerator type --- src/ctl/alsactl.map | 2 ++ src/ctl/elem-info-enum.c | 14 +++++++++++ src/ctl/elem-info-enum.h | 48 ++++++++++++++++++++++++++++++++++++ src/ctl/meson.build | 2 ++ tests/alsactl-elem-info-enum | 18 ++++++++++++++ tests/meson.build | 1 + 6 files changed, 85 insertions(+) create mode 100644 src/ctl/elem-info-enum.c create mode 100644 src/ctl/elem-info-enum.h create mode 100644 tests/alsactl-elem-info-enum diff --git a/src/ctl/alsactl.map b/src/ctl/alsactl.map index cd24eed..f4b688e 100644 --- a/src/ctl/alsactl.map +++ b/src/ctl/alsactl.map @@ -37,6 +37,8 @@ ALSA_GOBJECT_0_0_0 { "alsactl_elem_info_int_get_type"; "alsactl_elem_info_int_new"; + + "alsactl_elem_info_enum_get_type"; local: *; }; diff --git a/src/ctl/elem-info-enum.c b/src/ctl/elem-info-enum.c new file mode 100644 index 0000000..2e47598 --- /dev/null +++ b/src/ctl/elem-info-enum.c @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: LGPL-3.0-or-later +#include "elem-info-enum.h" + +G_DEFINE_TYPE(ALSACtlElemInfoEnum, alsactl_elem_info_enum, ALSACTL_TYPE_ELEM_INFO) + +static void alsactl_elem_info_enum_class_init(ALSACtlElemInfoEnumClass *klass) +{ + return; +} + +static void alsactl_elem_info_enum_init(ALSACtlElemInfoEnum *self) +{ + return; +} diff --git a/src/ctl/elem-info-enum.h b/src/ctl/elem-info-enum.h new file mode 100644 index 0000000..4ffee53 --- /dev/null +++ b/src/ctl/elem-info-enum.h @@ -0,0 +1,48 @@ +// SPDX-License-Identifier: LGPL-3.0-or-later +#ifndef __ALSA_GOBJECT_ALSACTL_ELEM_INFO_ENUM__H__ +#define __ALSA_GOBJECT_ALSACTL_ELEM_INFO_ENUM__H__ + +#include +#include + +#include + +G_BEGIN_DECLS + +#define ALSACTL_TYPE_ELEM_INFO_ENUM (alsactl_elem_info_enum_get_type()) + +#define ALSACTL_ELEM_INFO_ENUM(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + ALSACTL_TYPE_ELEM_INFO_ENUM, \ + ALSACtlElemInfoEnum)) +#define ALSACTL_IS_ELEM_INFO_ENUM(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ + ALSACTL_TYPE_ELEM_INFO_ENUM)) + +#define ALSACTL_ELEM_INFO_ENUM_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), \ + ALSACTL_TYPE_ELEM_INFO_ENUM, \ + ALSACtlElemInfoEnumClass)) +#define ALSACTL_IS_ELEM_INFO_ENUM_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), \ + ALSACTL_TYPE_ELEM_INFO_ENUM)) +#define ALSACTL_ELEM_INFO_ENUM_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), \ + ALSACTL_TYPE_ELEM_INFO_ENUM, \ + ALSACtlElemInfoEnumClass)) + +typedef struct _ALSACtlElemInfoEnum ALSACtlElemInfoEnum; +typedef struct _ALSACtlElemInfoEnumClass ALSACtlElemInfoEnumClass; + +struct _ALSACtlElemInfoEnum { + ALSACtlElemInfo parent_instance; +}; + +struct _ALSACtlElemInfoEnumClass { + ALSACtlElemInfoClass parent_class; +}; + +GType alsactl_elem_info_enum_get_type(void) G_GNUC_CONST; +G_END_DECLS + +#endif diff --git a/src/ctl/meson.build b/src/ctl/meson.build index f4f6b01..bc33afd 100644 --- a/src/ctl/meson.build +++ b/src/ctl/meson.build @@ -16,6 +16,7 @@ sources = files( 'elem-info.c', 'elem-info-bool.c', 'elem-info-int.c', + 'elem-info-enum.c', ) headers = files( @@ -26,6 +27,7 @@ headers = files( 'elem-info.h', 'elem-info-bool.h', 'elem-info-int.h', + 'elem-info-enum.h', ) privates = files( diff --git a/tests/alsactl-elem-info-enum b/tests/alsactl-elem-info-enum new file mode 100644 index 0000000..00a8536 --- /dev/null +++ b/tests/alsactl-elem-info-enum @@ -0,0 +1,18 @@ +#!/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.ElemInfoEnum() +props = () +methods = () +signals = () + +if not test(target, props, methods, signals): + exit(ENXIO) diff --git a/tests/meson.build b/tests/meson.build index 157164c..5e0a031 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -9,6 +9,7 @@ tests = { 'alsactl-elem-info', 'alsactl-elem-info-bool', 'alsactl-elem-info-int', + 'alsactl-elem-info-enum', ], } -- 2.47.3