{
SIGNAL_CLOSED,
SIGNAL_NEW_SESSION,
+ SIGNAL_OPTIONS_REQUEST,
+ SIGNAL_DESCRIBE_REQUEST,
+ SIGNAL_SETUP_REQUEST,
+ SIGNAL_PLAY_REQUEST,
+ SIGNAL_PAUSE_REQUEST,
+ SIGNAL_TEARDOWN_REQUEST,
+ SIGNAL_SET_PARAMETER_REQUEST,
+ SIGNAL_GET_PARAMETER_REQUEST,
SIGNAL_LAST
};
G_STRUCT_OFFSET (GstRTSPClientClass, new_session), NULL, NULL,
g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GST_TYPE_RTSP_SESSION);
+ gst_rtsp_client_signals[SIGNAL_OPTIONS_REQUEST] =
+ g_signal_new ("options-request", G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstRTSPClientClass, options_request),
+ NULL, NULL, g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1,
+ G_TYPE_POINTER);
+
+ gst_rtsp_client_signals[SIGNAL_DESCRIBE_REQUEST] =
+ g_signal_new ("describe-request", G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstRTSPClientClass, describe_request),
+ NULL, NULL, g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1,
+ G_TYPE_POINTER);
+
+ gst_rtsp_client_signals[SIGNAL_SETUP_REQUEST] =
+ g_signal_new ("setup-request", G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstRTSPClientClass, setup_request),
+ NULL, NULL, g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1,
+ G_TYPE_POINTER);
+
+ gst_rtsp_client_signals[SIGNAL_PLAY_REQUEST] =
+ g_signal_new ("play-request", G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstRTSPClientClass, play_request),
+ NULL, NULL, g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1,
+ G_TYPE_POINTER);
+
+ gst_rtsp_client_signals[SIGNAL_PAUSE_REQUEST] =
+ g_signal_new ("pause-request", G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstRTSPClientClass, pause_request),
+ NULL, NULL, g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1,
+ G_TYPE_POINTER);
+
+ gst_rtsp_client_signals[SIGNAL_TEARDOWN_REQUEST] =
+ g_signal_new ("teardown-request", G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstRTSPClientClass, teardown_request),
+ NULL, NULL, g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1,
+ G_TYPE_POINTER);
+
+ gst_rtsp_client_signals[SIGNAL_SET_PARAMETER_REQUEST] =
+ g_signal_new ("set-parameter-request", G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstRTSPClientClass,
+ set_parameter_request), NULL, NULL, g_cclosure_marshal_VOID__POINTER,
+ G_TYPE_NONE, 1, G_TYPE_POINTER);
+
+ gst_rtsp_client_signals[SIGNAL_GET_PARAMETER_REQUEST] =
+ g_signal_new ("get-parameter-request", G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstRTSPClientClass,
+ get_parameter_request), NULL, NULL, g_cclosure_marshal_VOID__POINTER,
+ G_TYPE_NONE, 1, G_TYPE_POINTER);
+
tunnels =
g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
g_mutex_init (&tunnels_lock);
send_response (client, session, state->response);
+ /* we emit the signal before closing the connection */
+ g_signal_emit (client, gst_rtsp_client_signals[SIGNAL_TEARDOWN_REQUEST],
+ 0, state);
+
close_connection (client);
return TRUE;
send_response (client, state->session, state->response);
}
+
+ g_signal_emit (client, gst_rtsp_client_signals[SIGNAL_GET_PARAMETER_REQUEST],
+ 0, state);
+
return TRUE;
/* ERRORS */
send_response (client, state->session, state->response);
}
+
+ g_signal_emit (client, gst_rtsp_client_signals[SIGNAL_SET_PARAMETER_REQUEST],
+ 0, state);
+
return TRUE;
/* ERRORS */
/* the state is now READY */
media->state = GST_RTSP_STATE_READY;
+ g_signal_emit (client, gst_rtsp_client_signals[SIGNAL_PAUSE_REQUEST],
+ 0, state);
+
return TRUE;
/* ERRORS */
media->state = GST_RTSP_STATE_PLAYING;
+ g_signal_emit (client, gst_rtsp_client_signals[SIGNAL_PLAY_REQUEST],
+ 0, state);
+
return TRUE;
/* ERRORS */
}
g_object_unref (session);
+ g_signal_emit (client, gst_rtsp_client_signals[SIGNAL_SETUP_REQUEST],
+ 0, state);
+
return TRUE;
/* ERRORS */
send_response (client, state->session, state->response);
+ g_signal_emit (client, gst_rtsp_client_signals[SIGNAL_DESCRIBE_REQUEST],
+ 0, state);
+
return TRUE;
/* ERRORS */
send_response (client, state->session, state->response);
+ g_signal_emit (client, gst_rtsp_client_signals[SIGNAL_OPTIONS_REQUEST],
+ 0, state);
+
return TRUE;
}