diff options
author | Taybin Rutkin <taybin@taybin.com> | 2005-09-25 18:42:24 +0000 |
---|---|---|
committer | Taybin Rutkin <taybin@taybin.com> | 2005-09-25 18:42:24 +0000 |
commit | 209d967b1bb80a9735d690d8f4f0455ecb9970ca (patch) | |
tree | 9d76ddcd7c1ac9d91bb2b1a33d31b66ce4ded5de /gtk2_ardour/opts.cc | |
parent | e4b9aed743fc765219ac775905a221c017c88fba (diff) |
Initial import of gtk2_ardour.
git-svn-id: svn://localhost/trunk/ardour2@24 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/opts.cc')
-rw-r--r-- | gtk2_ardour/opts.cc | 154 |
1 files changed, 154 insertions, 0 deletions
diff --git a/gtk2_ardour/opts.cc b/gtk2_ardour/opts.cc new file mode 100644 index 0000000000..48245651e8 --- /dev/null +++ b/gtk2_ardour/opts.cc @@ -0,0 +1,154 @@ +/* + Copyright (C) 2001 Paul Davis + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + $Id$ +*/ + +#include <getopt.h> +#include <iostream> +#include <cstdlib> + +#include "opts.h" + +#include "i18n.h" + +using namespace std; + +string GTK_ARDOUR::session_name = ""; +string GTK_ARDOUR::jack_client_name = "ardour"; +bool GTK_ARDOUR::show_key_actions = false; +bool GTK_ARDOUR::no_splash = true; +bool GTK_ARDOUR::just_version = false; +bool GTK_ARDOUR::use_vst = true; +bool GTK_ARDOUR::new_session = false; +char* GTK_ARDOUR::curvetest_file = 0; +bool GTK_ARDOUR::try_hw_optimization = false; + +using namespace GTK_ARDOUR; + +int +print_help (const char *execname) +{ + cout << _("Usage: ") << execname << "\n" + << _(" -v, --version Show version information\n") + << _(" -h, --help Print this message\n") + << _(" -b, --bindings Print all possible keyboard binding names\n") + << _(" -n, --show-splash Show splash screen\n") + << _(" -c, --name name Use a specific jack client name, default is ardour\n") + << _(" -N, --new session-name Create a new session from the command line\n") + << _(" -o, --use-hw-optimizations Try to use h/w specific optimizations\n") +#ifdef VST_SUPPORT + << _(" -V, --novst Do not use VST support\n") +#endif + << _(" [session-name] Name of session to load\n") + << _(" -C, --curvetest filename Curve algorithm debugger\n") + ; + return 1; + +} + +int +GTK_ARDOUR::parse_opts (int argc, char *argv[]) + +{ + const char *optstring = "U:hbvVnoc:C:N:"; + const char *execname = strrchr (argv[0], '/'); + + if (execname == 0) { + execname = argv[0]; + } else { + execname++; + } + + const struct option longopts[] = { + { "version", 0, 0, 'v' }, + { "help", 0, 0, 'h' }, + { "bindings", 0, 0, 'b' }, + { "show-splash", 0, 0, 'n' }, + { "name", 1, 0, 'c' }, + { "novst", 0, 0, 'V' }, + { "new", 1, 0, 'N' }, + { "use-hw-optimizations", 0, 0, 'o' }, + { "curvetest", 1, 0, 'C' }, + { 0, 0, 0, 0 } + }; + + int option_index = 0; + int c = 0; + + while (1) { + c = getopt_long (argc, argv, optstring, longopts, &option_index); + + if (c == -1) { + break; + } + + switch (c) { + case 0: + break; + + case 'v': + just_version = true; + break; + + case 'h': + print_help (execname); + exit (0); + break; + case 'b': + show_key_actions = true; + break; + + case 'n': + no_splash = false; + break; + + case 'N': + new_session = true; + session_name = optarg; + break; + + case 'o': + try_hw_optimization = true; + break; + + case 'V': +#ifdef VST_SUPPORT + use_vst = false; +#endif /* VST_SUPPORT */ + break; + + case 'c': + jack_client_name = optarg; + break; + + case 'C': + curvetest_file = optarg; + break; + + default: + break; + } + } + + if (optind < argc) { + session_name = argv[optind++]; + } + + return 0; +} + |