Exemplo n.º 1
0
gboolean
process_args (int argc, char *argv[],
    gchar * file_list[], gboolean * fullscreen, GOptionContext * context)
{
  gboolean version = FALSE;
  guint c, index, pos = 0;
  GOptionEntry entries[] = {
    {"fullscreen", 'f', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, fullscreen,
        "Fullscreen mode", NULL},
    {"version", 'v', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &version,
        "Print version", NULL},
    {NULL}
  };
  GError *err = NULL;

  g_option_context_add_main_entries (context, entries, NULL);
  g_option_context_add_group (context, gst_init_get_option_group ());
  g_option_context_add_group (context, clutter_get_option_group ());

  // Command line arguments.
  if (!g_option_context_parse (context, &argc, &argv, &err)) {
    g_print ("Error initializing: %s\n", err->message);
    g_error_free (err);
    goto quit;
  }

  if (version) {
    g_print ("snappy version %s\n", VERSION);
    goto quit;
  }
  // File arguments
  if (argc < 2) {
    g_print ("%s", g_option_context_get_help (context, TRUE, NULL));
    goto quit;
  }

  for (index = 1; index < argc; index++) {
    file_list[pos] = argv[index];
    g_debug ("Adding file: %s\n", file_list[pos]);
    pos++;
  }

  return TRUE;

quit:
  return FALSE;
}
Exemplo n.º 2
0
/**
 * serenity_prefs_init:
 * @argc: argument count
 * @argv: vector containing arguments
 * @error: location for a #GError or %NULL.
 *
 * Initializes the preferences subsystem using the arguments from the
 * command line.
 *
 * Returns: %TRUE if successful; otherwise %FALSE and @error is set.
 */
gboolean
serenity_prefs_init (gint     *argc,
                     gchar  ***argv,
                     GError  **error)
{
	GOptionContext *context;

	context = g_option_context_new(_("- A presentation tool"));
	g_option_context_add_main_entries(context, entries, GETTEXT_PACKAGE);
	g_option_context_add_group(context, gtk_get_option_group(TRUE));
	g_option_context_add_group(context, clutter_get_option_group());
	if (!g_option_context_parse(context, argc, argv, error)) {
		return FALSE;
	}

	return TRUE;
}
Exemplo n.º 3
0
/**
 * mex_init_with_args:
 * @argc: a pointer to the number of command line arguments.
 * @argv: a pointer to the array of command line arguments.
 * @parameter_string: a string which is displayed in
 *    the first line of <option>--help</option> output, after
 *    <literal><replaceable>programname</replaceable> [OPTION...]</literal>
 * @entries: a %NULL-terminated array of #GOptionEntry<!-- -->s
 *    describing the options of your program
 * @translation_domain: a translation domain to use for translating
 *    the <option>--help</option> output for the options in @entries
 *    with gettext(), or %NULL
 * @error: a return location for errors
 *
 * This function does the same work as mex_init(). Additionally, it
 * allows you to add your own command line options, and it automatically
 * generates nicely formatted --help output. Clutter's #GOptionGroup
 * is added to the set of available options.
 *
 * This function should be called before calling any other GLib functions. If
 * this is not an option, your program must initialise the GLib thread system
 * using g_thread_init() before any other GLib functions are called.
 *
 * Return value: %TRUE on success, %FALSE on failure.
 *
 * Since: 0.2
 */
gboolean
mex_init_with_args (int            *argc,
                    char         ***argv,
                    const char     *parameter_string,
                    GOptionEntry   *entries,
                    const char     *translation_domain,
                    GError        **error)
{
  GOptionContext *context;
  gboolean res;

  if (mex_is_initialized)
    return TRUE;

  if (!g_thread_supported ())
    g_thread_init (NULL);

  context = g_option_context_new (parameter_string);

  g_option_context_add_group (context, clutter_get_option_group ());

  if (entries)
    g_option_context_add_main_entries (context, entries, translation_domain);

  res = g_option_context_parse (context, argc, argv, error);
  g_option_context_free (context);

  if (!res)
        return FALSE;

  mex_base_init (argc, argv);

  mex_is_initialized = TRUE;

  return TRUE;
}
Exemplo n.º 4
0
gint ease_main_main (char** args, int args_length1) {
#line 383 "ease-main.c"
	gint result = 0;
	GOptionContext* context;
	UniqueApp* _tmp1_;
	gboolean _tmp2_;
	gboolean running;
	gboolean _tmp7_ = FALSE;
	GError * _inner_error_ = NULL;
#line 61 "ease-main.vala"
	g_set_application_name ("Ease");
#line 62 "ease-main.vala"
	gtk_window_set_default_icon_name ("ease");
#line 65 "ease-main.vala"
	context = g_option_context_new (_ (" - a presentation editor"));
#line 68 "ease-main.vala"
	g_option_context_add_main_entries (context, EASE_MAIN_options, NULL);
#line 71 "ease-main.vala"
	g_option_context_add_group (context, gtk_get_option_group (TRUE));
#line 72 "ease-main.vala"
	g_option_context_add_group (context, clutter_get_option_group ());
#line 403 "ease-main.c"
	{
		gboolean _tmp0_;
#line 76 "ease-main.vala"
		_tmp0_ = g_option_context_parse (context, &args_length1, &args, &_inner_error_);
#line 408 "ease-main.c"
		if (_inner_error_ != NULL) {
			if (_inner_error_->domain == G_OPTION_ERROR) {
				goto __catch12_g_option_error;
			}
			_g_option_context_free0 (context);
			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
			g_clear_error (&_inner_error_);
			return 0;
		}
#line 76 "ease-main.vala"
		if (!_tmp0_) {
#line 420 "ease-main.c"
			result = 1;
			_g_option_context_free0 (context);
#line 76 "ease-main.vala"
			return result;
#line 425 "ease-main.c"
		}
	}
	goto __finally12;
	__catch12_g_option_error:
	{
		GError * e;
		e = _inner_error_;
		_inner_error_ = NULL;
		{
#line 80 "ease-main.vala"
			fprintf (stdout, _ ("error parsing options: %s\n"), e->message);
#line 437 "ease-main.c"
			result = 1;
			_g_error_free0 (e);
			_g_option_context_free0 (context);
#line 81 "ease-main.vala"
			return result;
#line 443 "ease-main.c"
		}
	}
	__finally12:
	if (_inner_error_ != NULL) {
		_g_option_context_free0 (context);
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
		g_clear_error (&_inner_error_);
		return 0;
	}
#line 85 "ease-main.vala"
	ease_main_app = (_tmp1_ = unique_app_new ("org.ease-project.ease", NULL), _g_object_unref0 (ease_main_app), _tmp1_);
#line 86 "ease-main.vala"
	unique_app_add_command (ease_main_app, "Open document", (gint) EASE_MAIN_UNIQUE_COMMAND_OPEN_FILE);
#line 87 "ease-main.vala"
	unique_app_add_command (ease_main_app, "Play document", (gint) EASE_MAIN_UNIQUE_COMMAND_PLAY_FILE);
#line 88 "ease-main.vala"
	unique_app_add_command (ease_main_app, "Create new document", (gint) EASE_MAIN_UNIQUE_COMMAND_SHOW_WELCOME);
#line 91 "ease-main.vala"
	running = (g_object_get (ease_main_app, "is-running", &_tmp2_, NULL), _tmp2_);
#line 93 "ease-main.vala"
	if (!running) {
#line 465 "ease-main.c"
		GeeArrayList* _tmp3_;
		ClutterBackend* backend;
		GtkSettings* settings;
		gint _tmp4_;
		gint _tmp5_;
#line 96 "ease-main.vala"
		g_signal_connect (ease_main_app, "message-received", (GCallback) __lambda65__unique_app_message_received, NULL);
#line 120 "ease-main.vala"
		gst_init (&args_length1, &args);
#line 123 "ease-main.vala"
		ease_undo_controller_set_enable_debug (ease_main_debug_undo);
#line 126 "ease-main.vala"
		ease_main_windows = (_tmp3_ = gee_array_list_new (EASE_MAIN_TYPE_EDITOR_WINDOW_INFO, (GBoxedCopyFunc) ease_main_editor_window_info_ref, ease_main_editor_window_info_unref, NULL), _g_object_unref0 (ease_main_windows), _tmp3_);
#line 129 "ease-main.vala"
		backend = _g_object_ref0 (clutter_get_default_backend ());
#line 130 "ease-main.vala"
		settings = _g_object_ref0 (gtk_settings_get_default ());
#line 131 "ease-main.vala"
		clutter_backend_set_double_click_time (backend, (guint) (g_object_get (settings, "gtk-double-click-time", &_tmp4_, NULL), _tmp4_));
#line 132 "ease-main.vala"
		clutter_backend_set_double_click_distance (backend, (guint) (g_object_get (settings, "gtk-double-click-distance", &_tmp5_, NULL), _tmp5_));
#line 487 "ease-main.c"
		_g_object_unref0 (settings);
		_g_object_unref0 (backend);
	}
#line 137 "ease-main.vala"
	if (ease_main_filenames != NULL) {
#line 139 "ease-main.vala"
		if (!running) {
#line 495 "ease-main.c"
			{
				gint i;
#line 141 "ease-main.vala"
				i = 0;
#line 500 "ease-main.c"
				{
					gboolean _tmp6_;
#line 141 "ease-main.vala"
					_tmp6_ = TRUE;
#line 141 "ease-main.vala"
					while (TRUE) {
#line 141 "ease-main.vala"
						if (!_tmp6_) {
#line 141 "ease-main.vala"
							i++;
#line 511 "ease-main.c"
						}
#line 141 "ease-main.vala"
						_tmp6_ = FALSE;
#line 141 "ease-main.vala"
						if (!(ease_main_filenames[i] != NULL)) {
#line 141 "ease-main.vala"
							break;
#line 519 "ease-main.c"
						}
#line 143 "ease-main.vala"
						ease_main_open_file (ease_main_filenames[i]);
#line 523 "ease-main.c"
					}
				}
			}
		} else {
			UniqueMessageData* data;
#line 148 "ease-main.vala"
			data = unique_message_data_new ();
#line 149 "ease-main.vala"
			unique_message_data_set_uris (data, ease_main_filenames);
#line 150 "ease-main.vala"
			unique_app_send_message (ease_main_app, (gint) EASE_MAIN_UNIQUE_COMMAND_OPEN_FILE, data);
#line 535 "ease-main.c"
			_unique_message_data_free0 (data);
		}
	}
#line 155 "ease-main.vala"
	if (ease_main_play_filename != NULL) {
#line 157 "ease-main.vala"
		if (!running) {
#line 159 "ease-main.vala"
			ease_main_play_file (ease_main_play_filename, ease_main_filenames == NULL);
#line 545 "ease-main.c"
		} else {
			UniqueMessageData* data;
#line 163 "ease-main.vala"
			data = unique_message_data_new ();
#line 164 "ease-main.vala"
			unique_message_data_set_filename (data, ease_main_play_filename);
#line 165 "ease-main.vala"
			unique_app_send_message (ease_main_app, (gint) EASE_MAIN_UNIQUE_COMMAND_PLAY_FILE, data);
#line 554 "ease-main.c"
			_unique_message_data_free0 (data);
		}
	}
#line 170 "ease-main.vala"
	if (ease_main_filenames == NULL) {
#line 170 "ease-main.vala"
		_tmp7_ = ease_main_play_filename == NULL;
#line 562 "ease-main.c"
	} else {
#line 170 "ease-main.vala"
		_tmp7_ = FALSE;
#line 566 "ease-main.c"
	}
#line 170 "ease-main.vala"
	if (_tmp7_) {
#line 172 "ease-main.vala"
		if (!running) {
#line 172 "ease-main.vala"
			ease_main_show_welcome ();
#line 574 "ease-main.c"
		} else {
#line 173 "ease-main.vala"
			unique_app_send_message (ease_main_app, (gint) EASE_MAIN_UNIQUE_COMMAND_SHOW_WELCOME, NULL);
#line 578 "ease-main.c"
		}
	}
#line 177 "ease-main.vala"
	if (running) {
#line 583 "ease-main.c"
		result = 0;
		_g_option_context_free0 (context);
#line 177 "ease-main.vala"
		return result;
#line 588 "ease-main.c"
	}
#line 179 "ease-main.vala"
	gtk_main ();
#line 181 "ease-main.vala"
	ease_temp_clean ();
#line 594 "ease-main.c"
	result = 0;
	_g_option_context_free0 (context);
#line 183 "ease-main.vala"
	return result;
#line 599 "ease-main.c"
}
Exemplo n.º 5
0
/*           Process command arguments           */
GList *
process_args (int argc, char *argv[],
    gboolean * blind, gboolean * fullscreen, gboolean * hide, gboolean * loop,
    gboolean * secret, gchar ** suburi, gboolean * tags,
    GOptionContext * context)
{
  gboolean recent = FALSE, version = FALSE;
  guint c, index, pos = 0;
  GList * uri_list = NULL;

  GOptionEntry entries[] = {
    {"blind", 'b', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, blind,
        "Blind mode", NULL},
    {"fullscreen", 'f', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, fullscreen,
        "Fullscreen mode", NULL},
    {"hide-controls", 'h', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, hide,
        "Hide on screen controls", NULL},
    {"loop", 'l', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, loop,
        "Looping mode", NULL},
    {"media-info", 'i', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, tags,
        "Print media information", NULL},
    {"recent", 'r', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &recent,
        "Show recently viewed", NULL},
    {"secret", 's', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, secret,
        "Views not saved in recently viewed history", NULL},
    {"subtitles", 't', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_FILENAME,
        suburi, "Use this subtitle file", NULL},
    {"version", 'v', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &version,
        "Shows snappy's version", NULL},
    {NULL}
  };
  GError *err = NULL;

  g_option_context_add_main_entries (context, entries, NULL);
  g_option_context_add_group (context, gst_init_get_option_group ());
  g_option_context_add_group (context, clutter_get_option_group ());

  /* Check command arguments and update entry variables */
  if (!g_option_context_parse (context, &argc, &argv, &err)) {
    g_print ("Error initializing: %s\n", err->message);
    g_error_free (err);
    return NULL;
  }

  /* Recently viewed uris */
  if (recent) {
    gchar **recent = NULL;

    g_print ("These are the recently viewed URIs: \n\n");

    recent = get_recently_viewed ();

    for (c = 0; recent[c] != NULL; c++) {
      if (c < 9)
        g_print ("0%d: %s \n", c + 1, recent[c]);
      else
        g_print ("%d: %s \n", c + 1, recent[c]);
    }

    return NULL;
  }

  /* Show snappy's version */
  if (version) {
    g_print ("snappy version %s\n", VERSION);
    return NULL;
  }

  /* Check that at least one URI has been introduced */
  if (argc > 1) {
    /* Save uris in the file glist */
    for (index = 1; index < argc; index++) {
      g_print ("Adding file: %s\n", argv[index]);
      uri_list = g_list_append (uri_list, clean_uri (argv[index]));
      pos++;
    }
  } else {
    /* If no files passed by user display help */
    g_print ("%s", g_option_context_get_help (context, TRUE, NULL));
  }

  return uri_list;
}