/* File autogenerated by gengetopt version 2.19.1 generated with the following command: gengetopt The developers of gengetopt consider the fixed text that goes in all gengetopt output files to be in the public domain: we make no copyright claims on it. */ /* If we use autoconf. */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #include #include #include #include "getopt.h" #include "cmdline.h" const char *gengetopt_args_info_purpose = "A modular realtime audio processing system"; const char *gengetopt_args_info_usage = "Usage: ingen [OPTIONS]..."; const char *gengetopt_args_info_description = "This executable can be used to launch any configuration of Ingen.\nIngen can run as a stand-alone server controlled by OSC, or internal to\nanother process. The GUI can communicate with the engine via either method,\nand many GUIs (or other things) may connect to an engine via OSC.\n"; const char *gengetopt_args_info_help[] = { " -h, --help Print help and exit", " -V, --version Print version and exit", " -e, --engine Run (JACK) engine (default=off)", " -E, --engine-port=INT Engine OSC port (default=`16180')", " -c, --connect=STRING Connect to existing engine at OSC URI \n (default=`osc.udp://localhost:16180')", " -g, --gui Launch the GTK graphical interface (default=on)", " -C, --client-port=INT Client OSC port", " -l, --load=STRING Load patch", " -p, --path=STRING Target path for loaded patch", 0 }; static void clear_given (struct gengetopt_args_info *args_info); static void clear_args (struct gengetopt_args_info *args_info); static int cmdline_parser_internal (int argc, char * const *argv, struct gengetopt_args_info *args_info, int override, int initialize, int check_required, const char *additional_error); static char * gengetopt_strdup (const char *s); static void clear_given (struct gengetopt_args_info *args_info) { args_info->help_given = 0 ; args_info->version_given = 0 ; args_info->engine_given = 0 ; args_info->engine_port_given = 0 ; args_info->connect_given = 0 ; args_info->gui_given = 0 ; args_info->client_port_given = 0 ; args_info->load_given = 0 ; args_info->path_given = 0 ; } static void clear_args (struct gengetopt_args_info *args_info) { args_info->engine_flag = 0; args_info->engine_port_arg = 16180; args_info->engine_port_orig = NULL; args_info->connect_arg = gengetopt_strdup ("osc.udp://localhost:16180"); args_info->connect_orig = NULL; args_info->gui_flag = 1; args_info->client_port_orig = NULL; args_info->load_arg = NULL; args_info->load_orig = NULL; args_info->path_arg = NULL; args_info->path_orig = NULL; } static void init_args_info(struct gengetopt_args_info *args_info) { args_info->help_help = gengetopt_args_info_help[0] ; args_info->version_help = gengetopt_args_info_help[1] ; args_info->engine_help = gengetopt_args_info_help[2] ; args_info->engine_port_help = gengetopt_args_info_help[3] ; args_info->connect_help = gengetopt_args_info_help[4] ; args_info->gui_help = gengetopt_args_info_help[5] ; args_info->client_port_help = gengetopt_args_info_help[6] ; args_info->load_help = gengetopt_args_info_help[7] ; args_info->path_help = gengetopt_args_info_help[8] ; } void cmdline_parser_print_version (void) { printf ("%s %s\n", CMDLINE_PARSER_PACKAGE, CMDLINE_PARSER_VERSION); } void cmdline_parser_print_help (void) { int i = 0; cmdline_parser_print_version (); if (strlen(gengetopt_args_info_purpose) > 0) printf("\n%s\n", gengetopt_args_info_purpose); printf("\n%s\n\n", gengetopt_args_info_usage); if (strlen(gengetopt_args_info_description) > 0) printf("%s\n", gengetopt_args_info_description); while (gengetopt_args_info_help[i]) printf("%s\n", gengetopt_args_info_help[i++]); } void cmdline_parser_init (struct gengetopt_args_info *args_info) { clear_given (args_info); clear_args (args_info); init_args_info (args_info); } static void cmdline_parser_release (struct gengetopt_args_info *args_info) { if (args_info->engine_port_orig) { free (args_info->engine_port_orig); /* free previous argument */ args_info->engine_port_orig = 0; } if (args_info->connect_arg) { free (args_info->connect_arg); /* free previous argument */ args_info->connect_arg = 0; } if (args_info->connect_orig) { free (args_info->connect_orig); /* free previous argument */ args_info->connect_orig = 0; } if (args_info->client_port_orig) { free (args_info->client_port_orig); /* free previous argument */ args_info->client_port_orig = 0; } if (args_info->load_arg) { free (args_info->load_arg); /* free previous argument */ args_info->load_arg = 0; } if (args_info->load_orig) { free (args_info->load_orig); /* free previous argument */ args_info->load_orig = 0; } if (args_info->path_arg) { free (args_info->path_arg); /* free previous argument */ args_info->path_arg = 0; } if (args_info->path_orig) { free (args_info->path_orig); /* free previous argument */ args_info->path_orig = 0; } clear_given (args_info); } int cmdline_parser_file_save(const char *filename, struct gengetopt_args_info *args_info) { FILE *outfile; int i = 0; outfile = fopen(filename, "w"); if (!outfile) { fprintf (stderr, "%s: cannot open file for writing: %s\n", CMDLINE_PARSER_PACKAGE, filename); return EXIT_FAILURE; } if (args_info->help_given) { fprintf(outfile, "%s\n", "help"); } if (args_info->version_given) { fprintf(outfile, "%s\n", "version"); } if (args_info->engine_given) { fprintf(outfile, "%s\n", "engine"); } if (args_info->engine_port_given) { if (args_info->engine_port_orig) { fprintf(outfile, "%s=\"%s\"\n", "engine-port", args_info->engine_port_orig); } else { fprintf(outfile, "%s\n", "engine-port"); } } if (args_info->connect_given) { if (args_info->connect_orig) { fprintf(outfile, "%s=\"%s\"\n", "connect", args_info->connect_orig); } else { fprintf(outfile, "%s\n", "connect"); } } if (args_info->gui_given) { fprintf(outfile, "%s\n", "gui"); } if (args_info->client_port_given) { if (args_info->client_port_orig) { fprintf(outfile, "%s=\"%s\"\n", "client-port", args_info->client_port_orig); } else { fprintf(outfile, "%s\n", "client-port"); } } if (args_info->load_given) { if (args_info->load_orig) { fprintf(outfile, "%s=\"%s\"\n", "load", args_info->load_orig); } else { fprintf(outfile, "%s\n", "load"); } } if (args_info->path_given) { if (args_info->path_orig) { fprintf(outfile, "%s=\"%s\"\n", "path", args_info->path_orig); } else { fprintf(outfile, "%s\n", "path"); } } fclose (outfile); i = EXIT_SUCCESS; return i; } void cmdline_parser_free (struct gengetopt_args_info *args_info) { cmdline_parser_release (args_info); } /* gengetopt_strdup() */ /* strdup.c replacement of strdup, which is not standard */ char * gengetopt_strdup (const char *s) { char *result = NULL; if (!s) return result; result = (char*)malloc(strlen(s) + 1); if (result == (char*)0) return (char*)0; strcpy(result, s); return result; } int cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info) { return cmdline_parser2 (argc, argv, args_info, 0, 1, 1); } int cmdline_parser2 (int argc, char * const *argv, struct gengetopt_args_info *args_info, int override, int initialize, int check_required) { int result; result = cmdline_parser_internal (argc, argv, args_info, override, initialize, check_required, NULL); if (result == EXIT_FAILURE) { cmdline_parser_free (args_info); exit (EXIT_FAILURE); } return result; } int cmdline_parser_required (struct gengetopt_args_info *args_info, const char *prog_name) { return EXIT_SUCCESS; } int cmdline_parser_internal (int argc, char * const *argv, struct gengetopt_args_info *args_info, int override, int initialize, int check_required, const char *additional_error) { int c; /* Character of the parsed option. */ int error = 0; struct gengetopt_args_info local_args_info; if (initialize) cmdline_parser_init (args_info); cmdline_parser_init (&local_args_info); optarg = 0; optind = 0; opterr = 1; optopt = '?'; while (1) { int option_index = 0; char *stop_char; static struct option long_options[] = { { "help", 0, NULL, 'h' }, { "version", 0, NULL, 'V' }, { "engine", 0, NULL, 'e' }, { "engine-port", 1, NULL, 'E' }, { "connect", 1, NULL, 'c' }, { "gui", 0, NULL, 'g' }, { "client-port", 1, NULL, 'C' }, { "load", 1, NULL, 'l' }, { "path", 1, NULL, 'p' }, { NULL, 0, NULL, 0 } }; stop_char = 0; c = getopt_long (argc, argv, "hVeE:c:gC:l:p:", long_options, &option_index); if (c == -1) break; /* Exit from `while (1)' loop. */ switch (c) { case 'h': /* Print help and exit. */ cmdline_parser_print_help (); cmdline_parser_free (&local_args_info); exit (EXIT_SUCCESS); case 'V': /* Print version and exit. */ cmdline_parser_print_version (); cmdline_parser_free (&local_args_info); exit (EXIT_SUCCESS); case 'e': /* Run (JACK) engine. */ if (local_args_info.engine_given) { fprintf (stderr, "%s: `--engine' (`-e') option given more than once%s\n", argv[0], (additional_error ? additional_error : "")); goto failure; } if (args_info->engine_given && ! override) continue; local_args_info.engine_given = 1; args_info->engine_given = 1; args_info->engine_flag = !(args_info->engine_flag); break; case 'E': /* Engine OSC port. */ if (local_args_info.engine_port_given) { fprintf (stderr, "%s: `--engine-port' (`-E') option given more than once%s\n", argv[0], (additional_error ? additional_error : "")); goto failure; } if (args_info->engine_port_given && ! override) continue; local_args_info.engine_port_given = 1; args_info->engine_port_given = 1; args_info->engine_port_arg = strtol (optarg, &stop_char, 0); if (!(stop_char && *stop_char == '\0')) { fprintf(stderr, "%s: invalid numeric value: %s\n", argv[0], optarg); goto failure; } if (args_info->engine_port_orig) free (args_info->engine_port_orig); /* free previous string */ args_info->engine_port_orig = gengetopt_strdup (optarg); break; case 'c': /* Connect to existing engine at OSC URI. */ if (local_args_info.connect_given) { fprintf (stderr, "%s: `--connect' (`-c') option given more than once%s\n", argv[0], (additional_error ? additional_error : "")); goto failure; } if (args_info->connect_given && ! override) continue; local_args_info.connect_given = 1; args_info->connect_given = 1; if (args_info->connect_arg) free (args_info->connect_arg); /* free previous string */ args_info->connect_arg = gengetopt_strdup (optarg); if (args_info->connect_orig) free (args_info->connect_orig); /* free previous string */ args_info->connect_orig = gengetopt_strdup (optarg); break; case 'g': /* Launch the GTK graphical interface. */ if (local_args_info.gui_given) { fprintf (stderr, "%s: `--gui' (`-g') option given more than once%s\n", argv[0], (additional_error ? additional_error : "")); goto failure; } if (args_info->gui_given && ! override) continue; local_args_info.gui_given = 1; args_info->gui_given = 1; args_info->gui_flag = !(args_info->gui_flag); break; case 'C': /* Client OSC port. */ if (local_args_info.client_port_given) { fprintf (stderr, "%s: `--client-port' (`-C') option given more than once%s\n", argv[0], (additional_error ? additional_error : "")); goto failure; } if (args_info->client_port_given && ! override) continue; local_args_info.client_port_given = 1; args_info->client_port_given = 1; args_info->client_port_arg = strtol (optarg, &stop_char, 0); if (!(stop_char && *stop_char == '\0')) { fprintf(stderr, "%s: invalid numeric value: %s\n", argv[0], optarg); goto failure; } if (args_info->client_port_orig) free (args_info->client_port_orig); /* free previous string */ args_info->client_port_orig = gengetopt_strdup (optarg); break; case 'l': /* Load patch. */ if (local_args_info.load_given) { fprintf (stderr, "%s: `--load' (`-l') option given more than once%s\n", argv[0], (additional_error ? additional_error : "")); goto failure; } if (args_info->load_given && ! override) continue; local_args_info.load_given = 1; args_info->load_given = 1; if (args_info->load_arg) free (args_info->load_arg); /* free previous string */ args_info->load_arg = gengetopt_strdup (optarg); if (args_info->load_orig) free (args_info->load_orig); /* free previous string */ args_info->load_orig = gengetopt_strdup (optarg); break; case 'p': /* Target path for loaded patch. */ if (local_args_info.path_given) { fprintf (stderr, "%s: `--path' (`-p') option given more than once%s\n", argv[0], (additional_error ? additional_error : "")); goto failure; } if (args_info->path_given && ! override) continue; local_args_info.path_given = 1; args_info->path_given = 1; if (args_info->path_arg) free (args_info->path_arg); /* free previous string */ args_info->path_arg = gengetopt_strdup (optarg); if (args_info->path_orig) free (args_info->path_orig); /* free previous string */ args_info->path_orig = gengetopt_strdup (optarg); break; case 0: /* Long option with no short option */ case '?': /* Invalid option. */ /* `getopt_long' already printed an error message. */ goto failure; default: /* bug: option not considered. */ fprintf (stderr, "%s: option unknown: %c%s\n", CMDLINE_PARSER_PACKAGE, c, (additional_error ? additional_error : "")); abort (); } /* switch */ } /* while */ cmdline_parser_release (&local_args_info); if ( error ) return (EXIT_FAILURE); return 0; failure: cmdline_parser_release (&local_args_info); return (EXIT_FAILURE); }