From f3730c56f078bd4c513b53248c97ea55a839100f Mon Sep 17 00:00:00 2001 From: Takashi Sakamoto Date: Sun, 1 Dec 2019 12:02:00 +0900 Subject: [PATCH] rawmidi: stream_pair: add class virtual method to handle disconnection of sound card Signed-off-by: Takashi Sakamoto --- src/rawmidi/stream-pair.c | 2 +- src/rawmidi/stream-pair.h | 11 +++++++++++ tests/alsarawmidi-stream-pair | 1 + 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/rawmidi/stream-pair.c b/src/rawmidi/stream-pair.c index 7459615..36ae473 100644 --- a/src/rawmidi/stream-pair.c +++ b/src/rawmidi/stream-pair.c @@ -111,7 +111,7 @@ static void alsarawmidi_stream_pair_class_init(ALSARawmidiStreamPairClass *klass g_signal_new("handle-disconnection", G_OBJECT_CLASS_TYPE(klass), G_SIGNAL_RUN_LAST, - 0, + G_STRUCT_OFFSET(ALSARawmidiStreamPairClass, handle_disconnection), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0, G_TYPE_NONE, 0); diff --git a/src/rawmidi/stream-pair.h b/src/rawmidi/stream-pair.h index a5f2afa..04c8e75 100644 --- a/src/rawmidi/stream-pair.h +++ b/src/rawmidi/stream-pair.h @@ -54,6 +54,17 @@ struct _ALSARawmidiStreamPairClass { * When any input message in available, this event is emit. */ void (*handle_messages)(ALSARawmidiStreamPair *self); + + /** + * ALSARawmidiStreamPairClass::handle_disconnection: + * @self: A #ALSARawmidiStreamPair. + * + * When the sound card is not available anymore due to unbinding driver or + * hot unplugging, this signal is emit. The owner of this object should + * call g_object_free() as quickly as possible to release ALSA rawmidi + * character device. + */ + void (*handle_disconnection)(ALSARawmidiStreamPair *self); }; GType alsarawmidi_stream_pair_get_type(void) G_GNUC_CONST; diff --git a/tests/alsarawmidi-stream-pair b/tests/alsarawmidi-stream-pair index 2751836..b75d427 100644 --- a/tests/alsarawmidi-stream-pair +++ b/tests/alsarawmidi-stream-pair @@ -25,6 +25,7 @@ methods = ( 'drop_substream', 'create_source', 'do_handle_messages', + 'do_handle_disconnection', ) signals = ( 'handle-messages', -- 2.47.3