From: Takashi Sakamoto Date: Mon, 18 Nov 2019 04:22:44 +0000 (+0900) Subject: ctl: card: add an API to remove user-defined elements X-Git-Tag: v0.1.0~397 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=1b9413d6271b60607d1842855eca1dfae7b9ef2e;p=alsa-gobject.git ctl: card: add an API to remove user-defined elements --- diff --git a/src/ctl/alsactl.map b/src/ctl/alsactl.map index 1a5637d..967f757 100644 --- a/src/ctl/alsactl.map +++ b/src/ctl/alsactl.map @@ -23,6 +23,7 @@ ALSA_GOBJECT_0_0_0 { "alsactl_card_command_elem_tlv"; "alsactl_card_add_elems"; "alsactl_card_replace_elems"; + "alsactl_card_remove_elems"; "alsactl_card_info_get_type"; diff --git a/src/ctl/card.c b/src/ctl/card.c index 94b4741..d1e106b 100644 --- a/src/ctl/card.c +++ b/src/ctl/card.c @@ -612,3 +612,24 @@ void alsactl_card_replace_elems(ALSACtlCard *self, const ALSACtlElemId *elem_id, add_or_replace_elems(priv->fd, elem_id, elem_count, elem_info, TRUE, entries, error); } + +/** + * alsactl_card_remove_elems: + * @self: A #ALSACtlCard. + * @elem_id: A #ALSACtlElemId. + * @error: A #GError. + * + * Remove user-defined elements. + */ +void alsactl_card_remove_elems(ALSACtlCard *self, const ALSACtlElemId *elem_id, + GError **error) +{ + ALSACtlCardPrivate *priv; + + g_return_if_fail(ALSACTL_IS_CARD(self)); + g_return_if_fail(elem_id != NULL); + priv = alsactl_card_get_instance_private(self); + + if (ioctl(priv->fd, SNDRV_CTL_IOCTL_ELEM_REMOVE, elem_id) < 0) + generate_error(error, errno); +} diff --git a/src/ctl/card.h b/src/ctl/card.h index 171ff8c..570b8a1 100644 --- a/src/ctl/card.h +++ b/src/ctl/card.h @@ -83,6 +83,8 @@ void alsactl_card_add_elems(ALSACtlCard *self, const ALSACtlElemId *elem_id, void alsactl_card_replace_elems(ALSACtlCard *self, const ALSACtlElemId *elem_id, guint elem_count, ALSACtlElemInfo *elem_info, GList **entries, GError **error); +void alsactl_card_remove_elems(ALSACtlCard *self, const ALSACtlElemId *elem_id, + GError **error); G_END_DECLS diff --git a/tests/alsactl-card b/tests/alsactl-card index 8c6a664..fc68e23 100644 --- a/tests/alsactl-card +++ b/tests/alsactl-card @@ -25,6 +25,7 @@ methods = ( 'command_elem_tlv', 'add_elems', 'replace_elems', + 'remove_elems', ) signals = ()