From 5fb6ec66b452637bb9bd0e8df7f2463a1f2c444b Mon Sep 17 00:00:00 2001 From: Takashi Sakamoto Date: Mon, 18 Nov 2019 13:22:44 +0900 Subject: [PATCH] ctl: card: add virtual object to handle event for element --- src/ctl/card.c | 2 +- src/ctl/card.h | 11 +++++++++++ tests/alsactl-card | 1 + 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/ctl/card.c b/src/ctl/card.c index 8ffcac3..d2cf21d 100644 --- a/src/ctl/card.c +++ b/src/ctl/card.c @@ -114,7 +114,7 @@ static void alsactl_card_class_init(ALSACtlCardClass *klass) g_signal_new("handle-elem-event", G_OBJECT_CLASS_TYPE(klass), G_SIGNAL_RUN_LAST, - 0, + G_STRUCT_OFFSET(ALSACtlCardClass, handle_elem_event), NULL, NULL, alsactl_sigs_marshal_VOID__BOXED_FLAGS, G_TYPE_NONE, 2, ALSACTL_TYPE_ELEM_ID, diff --git a/src/ctl/card.h b/src/ctl/card.h index 55b0ce8..eb48633 100644 --- a/src/ctl/card.h +++ b/src/ctl/card.h @@ -47,6 +47,17 @@ struct _ALSACtlCard { struct _ALSACtlCardClass { GObjectClass parent_class; + + /** + * ALSACtlCardClass::handle_elem_event: + * @self: A #ALSACtlCard. + * @elem_id: (transfer none): A #ALSACtlElemId. + * @events: A set of #ALSACtlEventMaskFlag. + * + * When event occurs for any element, this signal is emit. + */ + void (*handle_elem_event)(ALSACtlCard *self, const ALSACtlElemId *elem_id, + ALSACtlEventMaskFlag events); }; GType alsactl_card_get_type() G_GNUC_CONST; diff --git a/tests/alsactl-card b/tests/alsactl-card index 3cb633c..3b7d42a 100644 --- a/tests/alsactl-card +++ b/tests/alsactl-card @@ -28,6 +28,7 @@ methods = ( 'replace_elems', 'remove_elems', 'create_source', + 'do_handle_elem_event', ) signals = ( 'handle-elem-event', -- 2.47.3