]> git.alsa-project.org Git - alsa-gobject.git/commitdiff
rawmidi: stream_pair: add GObject signal to notify receipt of messages
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Mon, 18 Nov 2019 04:22:44 +0000 (13:22 +0900)
committer坂本 貴史 <o-takashi@sakamocchi.jp>
Sun, 12 Apr 2020 05:30:33 +0000 (14:30 +0900)
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
src/rawmidi/stream-pair.c
tests/alsarawmidi-stream-pair

index e085425d4b9d602bb3477e73985c2bcda5cd9685..f4446ae1f5606cef06994ef42554691009c238df 100644 (file)
@@ -29,6 +29,12 @@ enum rawmidi_stream_pair_prop_type {
 };
 static GParamSpec *rawmidi_stream_pair_props[RAWMIDI_STREAM_PAIR_PROP_COUNT] = { NULL, };
 
+enum rawmidi_stream_pair_sig_type {
+    RAWMIDI_STREAM_PAIR_SIG_HANDLE_MESSAGES = 0,
+    RAWMIDI_STREAM_PAIR_SIG_COUNT,
+};
+static guint rawmidi_stream_pair_sigs[RAWMIDI_STREAM_PAIR_SIG_COUNT] = { 0 };
+
 static void rawmidi_stream_pair_get_property(GObject *obj, guint id,
                                              GValue *val, GParamSpec *spec)
 {
@@ -75,6 +81,21 @@ static void alsarawmidi_stream_pair_class_init(ALSARawmidiStreamPairClass *klass
     g_object_class_install_properties(gobject_class,
                                       RAWMIDI_STREAM_PAIR_PROP_COUNT,
                                       rawmidi_stream_pair_props);
+
+    /**
+     * ALSARawmidiStreamPair::handle-messages:
+     * @self: A #ALSARawmidiStreamPair.
+     *
+     * When any input message is available, this event is emit.
+     */
+    rawmidi_stream_pair_sigs[RAWMIDI_STREAM_PAIR_SIG_HANDLE_MESSAGES] =
+        g_signal_new("handle_messages",
+                     G_OBJECT_CLASS_TYPE(klass),
+                     G_SIGNAL_RUN_LAST,
+                     0,
+                     NULL, NULL,
+                     g_cclosure_marshal_VOID__VOID,
+                     G_TYPE_NONE, 0, NULL);
 }
 
 static void alsarawmidi_stream_pair_init(ALSARawmidiStreamPair *self)
index b31a0956f9368f3a98354899bb97b4bb5fc8c293..83a017fd45999161007ec7e693f36517fa786a0b 100644 (file)
@@ -25,7 +25,9 @@ methods = (
     'drop_substream',
     'create_source',
 )
-signals = ()
+signals = (
+    'handle-messages',
+)
 
 if not test(target, props, methods, signals):
     exit(ENXIO)