summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThibault Saunier <tsaunier@igalia.com>2020-12-15 18:02:00 -0300
committerThibault Saunier <tsaunier@igalia.com>2020-12-16 22:00:37 -0300
commit9dfb2016a261de7e8ff307aa54887161eb8c7f91 (patch)
treec8ffe47d817c033d0e499b4c8b1864ba9078568c
parentb32debe06cc5c01266544f17f428754a92424da7 (diff)
validate: scenario: Add a GstValidateScenario::action-done signal
Allowing application to know when a specific action is done. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/233>
-rw-r--r--validate/gst/validate/gst-validate-scenario.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/validate/gst/validate/gst-validate-scenario.c b/validate/gst/validate/gst-validate-scenario.c
index d262459..154b7a0 100644
--- a/validate/gst/validate/gst-validate-scenario.c
+++ b/validate/gst/validate/gst-validate-scenario.c
@@ -134,6 +134,7 @@ enum
enum
{
DONE,
+ ACTION_DONE,
LAST_SIGNAL
};
@@ -4588,6 +4589,20 @@ gst_validate_scenario_class_init (GstValidateScenarioClass * klass)
scenario_signals[DONE] =
g_signal_new ("done", G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL, G_TYPE_NONE, 0);
+
+ /**
+ * GstValidateScenario::action-done:
+ * @scenario: The scenario running
+ * @action: The #GstValidateAction that is done running
+ *
+ * Emitted when an action is done.
+ *
+ * Since: 1.20
+ */
+ scenario_signals[ACTION_DONE] =
+ g_signal_new ("action-done", G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL, G_TYPE_NONE, 1,
+ GST_TYPE_VALIDATE_ACTION);
}
static void
@@ -5858,6 +5873,7 @@ _action_set_done (GstValidateAction * action)
GST_TIME_ARGS (action->priv->execution_duration));
g_free (repeat_message);
+ g_signal_emit (scenario, scenario_signals[ACTION_DONE], 0, action);
if (action->priv->state != GST_VALIDATE_EXECUTE_ACTION_NON_BLOCKING)
/* We took the 'scenario' reference... unreffing it now */
gst_validate_action_unref (action);