diff options
author | David Robillard <d@drobilla.net> | 2007-05-04 16:44:59 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2007-05-04 16:44:59 +0000 |
commit | 673e4864318ca6c4700cca8402f2fea9bfda53d4 (patch) | |
tree | 332e485ef8e4e7e3fd4f904dbd2b289ee5874a2d | |
parent | afb90380d6bad49054bcbdb248b537e3842137e5 (diff) | |
download | ingen-673e4864318ca6c4700cca8402f2fea9bfda53d4.tar.gz ingen-673e4864318ca6c4700cca8402f2fea9bfda53d4.tar.bz2 ingen-673e4864318ca6c4700cca8402f2fea9bfda53d4.zip |
Added more missing files.
git-svn-id: http://svn.drobilla.net/lad/ingen@500 a436a847-0d15-0410-975c-d299462d15a1
-rw-r--r-- | src/progs/ingen/cmdline.c | 499 | ||||
-rw-r--r-- | src/progs/ingen/cmdline.h | 86 |
2 files changed, 585 insertions, 0 deletions
diff --git a/src/progs/ingen/cmdline.c b/src/progs/ingen/cmdline.c new file mode 100644 index 00000000..6c37d78e --- /dev/null +++ b/src/progs/ingen/cmdline.c @@ -0,0 +1,499 @@ +/* + 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 <stdio.h> +#include <stdlib.h> +#include <string.h> + +#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); +} diff --git a/src/progs/ingen/cmdline.h b/src/progs/ingen/cmdline.h new file mode 100644 index 00000000..6f1f9259 --- /dev/null +++ b/src/progs/ingen/cmdline.h @@ -0,0 +1,86 @@ +/* cmdline.h */ + +/* File autogenerated by gengetopt version 2.19.1 */ + +#ifndef CMDLINE_H +#define CMDLINE_H + +/* If we use autoconf. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +#ifndef CMDLINE_PARSER_PACKAGE +#define CMDLINE_PARSER_PACKAGE "ingen" +#endif + +#ifndef CMDLINE_PARSER_VERSION +#define CMDLINE_PARSER_VERSION VERSION +#endif + +struct gengetopt_args_info +{ + const char *help_help; /* Print help and exit help description. */ + const char *version_help; /* Print version and exit help description. */ + int engine_flag; /* Run (JACK) engine (default=off). */ + const char *engine_help; /* Run (JACK) engine help description. */ + int engine_port_arg; /* Engine OSC port (default='16180'). */ + char * engine_port_orig; /* Engine OSC port original value given at command line. */ + const char *engine_port_help; /* Engine OSC port help description. */ + char * connect_arg; /* Connect to existing engine at OSC URI (default='osc.udp://localhost:16180'). */ + char * connect_orig; /* Connect to existing engine at OSC URI original value given at command line. */ + const char *connect_help; /* Connect to existing engine at OSC URI help description. */ + int gui_flag; /* Launch the GTK graphical interface (default=on). */ + const char *gui_help; /* Launch the GTK graphical interface help description. */ + int client_port_arg; /* Client OSC port. */ + char * client_port_orig; /* Client OSC port original value given at command line. */ + const char *client_port_help; /* Client OSC port help description. */ + char * load_arg; /* Load patch. */ + char * load_orig; /* Load patch original value given at command line. */ + const char *load_help; /* Load patch help description. */ + char * path_arg; /* Target path for loaded patch. */ + char * path_orig; /* Target path for loaded patch original value given at command line. */ + const char *path_help; /* Target path for loaded patch help description. */ + + int help_given ; /* Whether help was given. */ + int version_given ; /* Whether version was given. */ + int engine_given ; /* Whether engine was given. */ + int engine_port_given ; /* Whether engine-port was given. */ + int connect_given ; /* Whether connect was given. */ + int gui_given ; /* Whether gui was given. */ + int client_port_given ; /* Whether client-port was given. */ + int load_given ; /* Whether load was given. */ + int path_given ; /* Whether path was given. */ + +} ; + +extern const char *gengetopt_args_info_purpose; +extern const char *gengetopt_args_info_usage; +extern const char *gengetopt_args_info_help[]; + +int cmdline_parser (int argc, char * const *argv, + struct gengetopt_args_info *args_info); +int cmdline_parser2 (int argc, char * const *argv, + struct gengetopt_args_info *args_info, + int override, int initialize, int check_required); +int cmdline_parser_file_save(const char *filename, + struct gengetopt_args_info *args_info); + +void cmdline_parser_print_help(void); +void cmdline_parser_print_version(void); + +void cmdline_parser_init (struct gengetopt_args_info *args_info); +void cmdline_parser_free (struct gengetopt_args_info *args_info); + +int cmdline_parser_required (struct gengetopt_args_info *args_info, + const char *prog_name); + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ +#endif /* CMDLINE_H */ |