]> git.alsa-project.org Git - alsa-gobject.git/commitdiff
ctl: card: add virtual object to handle event for element
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Mon, 18 Nov 2019 04:22:44 +0000 (13:22 +0900)
committerTakashi Sakamoto <o-takashi@sakamocchi.jp>
Thu, 12 Dec 2019 05:29:12 +0000 (14:29 +0900)
src/ctl/card.c
src/ctl/card.h
tests/alsactl-card

index 8ffcac3f28be92314345cca9532b077432b30240..d2cf21da9dfe73189f59387dc731711c8042d5ec 100644 (file)
@@ -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,
index 55b0ce8d0b423ede4587247878a6c277e1fcf544..eb48633c2bac09c1212e130c1fc65a77db5671c5 100644 (file)
@@ -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;
index 3cb633ce2978f633eb631d0ed58c28cb38a3305c..3b7d42a0fe5701739dc37cbc8a0b2c082a618815 100644 (file)
@@ -28,6 +28,7 @@ methods = (
     'replace_elems',
     'remove_elems',
     'create_source',
+    'do_handle_elem_event',
 )
 signals = (
     'handle-elem-event',