mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-23 10:11:08 +00:00
tools: Fix printing commands help
This commit is contained in:
parent
b612d015ca
commit
be66877d95
4 changed files with 82 additions and 43 deletions
|
@ -205,42 +205,75 @@ _ges_command_line_formatter_add_effect (GESTimeline * timeline,
|
|||
static GOptionEntry timeline_parsing_options[] = {
|
||||
{"clip", 'c', 0.0, G_OPTION_ARG_CALLBACK,
|
||||
&_ges_command_line_formatter_add_clip,
|
||||
"",
|
||||
"Adds a clip in the timeline\n"
|
||||
" * start - s : The start position of the element inside the layer.\n"
|
||||
" * duration - d: The duration of the clip.\n"
|
||||
" * inpoint - i : The inpoint of the clip.\n"
|
||||
" * track-types - tt: The type of the tracks where the clip should be used:\n"
|
||||
" Examples:\n"
|
||||
" * audio / a\n"
|
||||
" * video / v\n"
|
||||
" * audio+video / a+v\n"
|
||||
" Will default to all the media types in the clip that match the global track-types\n"},
|
||||
"<clip uri> - Adds a clip in the timeline.",
|
||||
" * s=, start The start position of the element inside the layer.\n"
|
||||
" * d=, duration The duration of the clip.\n"
|
||||
" * i=, inpoint The inpoint of the clip.\n"
|
||||
" * tt=, track-types The type of the tracks where the clip should be used:\n"
|
||||
" Examples:\n"
|
||||
" * audio / a\n"
|
||||
" * video / v\n"
|
||||
" * audio+video / a+v\n"
|
||||
" (Will default to all the media types in the clip that match the global track-types)\n"},
|
||||
{"effect", 'e', 0.0, G_OPTION_ARG_CALLBACK,
|
||||
&_ges_command_line_formatter_add_effect, "",
|
||||
"Adds an effect as specified by 'bin-description'\n"
|
||||
" * bin-description - d: The description of the effect bin with a gst-launch-style pipeline description.\n"
|
||||
" * element-name - e : The name of the element to apply the effect on.\n"},
|
||||
&_ges_command_line_formatter_add_effect,
|
||||
"<effect bin description> - Adds an effect as specified by 'bin-description'.",
|
||||
" * d=, bin-description The description of the effect bin with a gst-launch-style pipeline description.\n"
|
||||
" * e=, element-name The name of the element to apply the effect on.\n"},
|
||||
{"test-clip", 0, 0.0, G_OPTION_ARG_CALLBACK,
|
||||
&_ges_command_line_formatter_add_test_clip,
|
||||
"",
|
||||
"Add a test clip in the timeline\n"
|
||||
" * start -s : The start position of the element inside the layer.\n"
|
||||
" * duration -d : The duration of the clip."
|
||||
" * inpoint - i : The inpoint of the clip.\n"},
|
||||
"<test clip pattern> - Add a test clip in the timeline.",
|
||||
" * s=, start The start position of the element inside the layer.\n"
|
||||
" * d=, duration The duration of the clip.\n"
|
||||
" * i=, inpoint The inpoint of the clip.\n"},
|
||||
{"set-", 0, 0.0, G_OPTION_ARG_CALLBACK,
|
||||
NULL,
|
||||
"<property name> <value> - Set a property on the last added element."
|
||||
" Any child property that exists on the previously added element"
|
||||
" can be used as <property name>", NULL},
|
||||
};
|
||||
|
||||
GOptionGroup *
|
||||
_ges_command_line_formatter_get_option_group (void)
|
||||
gchar *
|
||||
ges_command_line_formatter_get_help (gint nargs, gchar ** commands)
|
||||
{
|
||||
GOptionGroup *group;
|
||||
gint i;
|
||||
gchar *help = NULL;
|
||||
|
||||
group = g_option_group_new ("GESCommandLineFormatter",
|
||||
"GStreamer Editing Services command line options to describe a timeline",
|
||||
"Show GStreamer Options", NULL, NULL);
|
||||
g_option_group_add_entries (group, timeline_parsing_options);
|
||||
for (i = 0; i < G_N_ELEMENTS (timeline_parsing_options); i++) {
|
||||
gboolean print = nargs == 0;
|
||||
|
||||
return group;
|
||||
if (!print) {
|
||||
gint j;
|
||||
|
||||
for (j = 0; j < nargs; j++) {
|
||||
gchar *cname = commands[j][0] == '+' ? &commands[j][1] : commands[j];
|
||||
|
||||
if (!g_strcmp0 (cname, timeline_parsing_options[i].long_name)) {
|
||||
print = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (print) {
|
||||
gchar *tmp = g_strdup_printf ("%s %s%s %s\n", help ? help : "",
|
||||
timeline_parsing_options[i].arg_description ? "+" : "",
|
||||
timeline_parsing_options[i].long_name,
|
||||
timeline_parsing_options[i].description);
|
||||
|
||||
g_free (help);
|
||||
help = tmp;
|
||||
|
||||
if (timeline_parsing_options[i].arg_description) {
|
||||
tmp = g_strdup_printf ("%s Properties:\n%s\n", help,
|
||||
timeline_parsing_options[i].arg_description);
|
||||
g_free (help);
|
||||
help = tmp;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return help;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -51,6 +51,7 @@ struct _GESCommandLineFormatter
|
|||
};
|
||||
|
||||
GType ges_command_line_formatter_get_type (void);
|
||||
gchar * ges_command_line_formatter_get_help (gint nargs, gchar ** commands);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
|
|
@ -316,13 +316,6 @@ ges_base_xml_formatter_set_timeline_properties(GESBaseXmlFormatter * self,
|
|||
const gchar *properties,
|
||||
const gchar *metadatas);
|
||||
|
||||
|
||||
/****************************************************
|
||||
* GESCommandLineFormatter *
|
||||
****************************************************/
|
||||
G_GNUC_INTERNAL GOptionGroup *
|
||||
_ges_command_line_formatter_get_option_group (void);
|
||||
|
||||
/****************************************************
|
||||
* GESContainer *
|
||||
****************************************************/
|
||||
|
|
|
@ -22,14 +22,18 @@
|
|||
#include "ges-launcher.h"
|
||||
|
||||
static void
|
||||
_print_all_commands (void)
|
||||
_print_all_commands (gint nargs, gchar ** commands)
|
||||
{
|
||||
/* Yeah I know very fancy */
|
||||
g_print ("Available ges-launch-1.0 commands:\n\n");
|
||||
g_print (" %-9s %-11s %-15s %-10s\n\n", "+clip", "+effect", "+test-clip",
|
||||
"set-");
|
||||
g_print ("See ges-launch-1.0 help <command> or ges-launch-1.0 help <guide> "
|
||||
"to read about a specific command or a given guide\n");
|
||||
gchar *help;
|
||||
|
||||
if (nargs == 0)
|
||||
g_print ("Available ges-launch-1.0 commands:\n\n");
|
||||
|
||||
help = ges_command_line_formatter_get_help (nargs, commands);
|
||||
|
||||
g_print ("%s", help);
|
||||
|
||||
g_free (help);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -44,7 +48,15 @@ _check_command_help (int argc, gchar ** argv)
|
|||
*/
|
||||
|
||||
if (!g_strcmp0 (argv[1], "help")) {
|
||||
_print_all_commands ();
|
||||
gint nargs = 0;
|
||||
gchar **commands = NULL;
|
||||
|
||||
if (argc > 2) {
|
||||
nargs = argc - 2;
|
||||
commands = &argv[2];
|
||||
}
|
||||
|
||||
_print_all_commands (nargs, commands);
|
||||
exit (0);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue