Skip silent sources on session-archive -- fixes #7699
[ardour.git] / gtk2_ardour / opts.cc
index f544adec5cc46eddb1c2cf641ed1bbcf0aaa2a69..d0657abe8b69c2a3755316adec9ef9e27bdccc24 100644 (file)
 #include "ardour/debug.h"
 #include "ardour/session.h"
 
+#ifndef NDEBUG // "-H"
+#include "processor_box.h"
+#endif
+
 #include "opts.h"
 
-#include "i18n.h"
+#include "pbd/i18n.h"
 
 using namespace std;
 
@@ -35,6 +39,7 @@ string ARDOUR_COMMAND_LINE::session_name = "";
 string ARDOUR_COMMAND_LINE::backend_client_name = "ardour";
 string ARDOUR_COMMAND_LINE::backend_session_uuid;
 bool  ARDOUR_COMMAND_LINE::show_key_actions = false;
+bool  ARDOUR_COMMAND_LINE::show_actions = false;
 bool ARDOUR_COMMAND_LINE::no_splash = false;
 bool ARDOUR_COMMAND_LINE::just_version = false;
 bool ARDOUR_COMMAND_LINE::use_vst = true;
@@ -54,27 +59,44 @@ using namespace ARDOUR_COMMAND_LINE;
 int
 print_help (const char *execname)
 {
-       cout << _("Usage: ") << execname << " [OPTION]... [SESSION_NAME]\n\n"
-            << _("  [SESSION_NAME]              Name of session to load\n")
-            << _("  -v, --version               Show version information\n")
-            << _("  -h, --help                  Print this message\n")
-            << _("  -a, --no-announcements      Do not contact website for announcements\n")
-            << _("  -b, --bindings              Print all possible keyboard binding names\n")
-            << _("  -c, --name <name>           Use a specific backend client name, default is ardour\n")
-            << _("  -d, --disable-plugins       Disable all plugins in an existing session\n")
-            << _("  -D, --debug <options>       Set debug flags. Use \"-D list\" to see available options\n")
-            << _("  -n, --no-splash             Do not show splash screen\n")
-            << _("  -m, --menus file            Use \"file\" to define menus\n")
-            << _("  -N, --new session-name      Create a new session from the command line\n")
-            << _("  -O, --no-hw-optimizations   Disable h/w specific optimizations\n")
-            << _("  -P, --no-connect-ports      Do not connect any ports at startup\n")
-            << _("  -S, --sync                  Draw the gui synchronously \n")
+       // help2man format, http://docopt.org/
+       // https://www.gnu.org/prep/standards/standards.html#g_t_002d_002dhelp
+       cout
+               << _("Usage: ") << PROGRAM_NAME << _(" [ OPTIONS ] [ SESSION-NAME ]")
+               << "\n\n"
+               << _("Ardour is a multichannel hard disk recorder (HDR) and digital audio workstation (DAW).")
+               << "\n\n"
+               << _("Options:\n")
+               << _("  -a, --no-announcements      Do not contact website for announcements\n")
+               << _("  -A, --actions               Print all possible menu action names\n")
+               << _("  -b, --bindings              Display all current key bindings\n")
+               << _("  -B, --bypass-plugins        Bypass all plugins in an existing session\n")
+               << _("  -c, --name <name>           Use a specific backend client name, default is ardour\n")
+#ifndef NDEBUG
+               << _("  -C, --curvetest filename    Curve algorithm debugger\n")
+#endif
+               << _("  -d, --disable-plugins       Disable all plugins (safe mode)\n")
+#ifndef NDEBUG
+               << _("  -D, --debug <options>       Set debug flags. Use \"-D list\" to see available options\n")
+#endif
+               << _("  -E, --save <file>           Load the specified session, save it to <file> and then quit\n")
+               << _("  -h, --help                  Print this message\n")
+               << _("  -k, --keybindings <file>    Name of key bindings to load\n")
+               << _("  -m, --menus file            Use \"file\" to define menus\n")
+               << _("  -n, --no-splash             Do not show splash screen\n")
+               << _("  -N, --new session-name      Create a new session from the command line\n")
+               << _("  -O, --no-hw-optimizations   Disable h/w specific optimizations\n")
+               << _("  -P, --no-connect-ports      Do not connect any ports at startup\n")
+               << _("  -S, --sync                  Draw the GUI synchronously\n")
+               << _("  -T, --template <name>       Use given template for new session\n")
+               << _("  -U, --uuid <uuid>           Set (jack) backend UUID\n")
+               << _("  -v, --version               Print version and exit\n")
 #ifdef WINDOWS_VST_SUPPORT
-            << _("  -V, --novst                 Do not use VST support\n")
+               << _("  -V, --novst                 Disable WindowsVST support\n")
 #endif
-            << _("  -E, --save <file>           Load the specified session, save it to <file> and then quit\n")
-            << _("  -C, --curvetest filename    Curve algorithm debugger\n")
-            << _("  -k, --keybindings filename  Name of key bindings to load\n")
+               << "\n\n"
+               << _("Report bugs to http://tracker.ardour.org\n")
+               << _("Website http://ardour.org\n")
                ;
        return 1;
 
@@ -83,14 +105,9 @@ print_help (const char *execname)
 int
 ARDOUR_COMMAND_LINE::parse_opts (int argc, char *argv[])
 {
-       const char *optstring = "abc:C:dD:hk:E:m:N:nOp:PST:U:vV";
+       const char *optstring = "aAbBc:C:dD:hHk:E:m:N:nOp:PST:U:vV";
        const char *execname = strrchr (argv[0], '/');
 
-       if (getenv ("ARDOUR_SAE")) {
-               menus_file = "ardour-sae.menus";
-               keybindings_path = "SAE";
-       }
-
        if (execname == 0) {
                execname = argv[0];
        } else {
@@ -101,7 +118,9 @@ ARDOUR_COMMAND_LINE::parse_opts (int argc, char *argv[])
                { "version", 0, 0, 'v' },
                { "help", 0, 0, 'h' },
                { "no-announcements", 0, 0, 'a' },
+               { "actions", 0, 0, 'A' },
                { "bindings", 0, 0, 'b' },
+               { "bypass-plugins", 0, 0, 'B' },
                { "disable-plugins", 0, 0, 'd' },
                { "debug", 1, 0, 'D' },
                { "no-splash", 0, 0, 'n' },
@@ -141,14 +160,27 @@ ARDOUR_COMMAND_LINE::parse_opts (int argc, char *argv[])
                        print_help (execname);
                        exit (0);
                        break;
+               case 'H':
+#ifndef NDEBUG
+                       ProcessorBox::show_all_processors = true;
+#endif
+                       break;
                case 'a':
                        check_announcements = false;
                        break;
 
+               case 'A':
+                       show_actions = true;
+                       break;
+
                case 'b':
                        show_key_actions = true;
                        break;
 
+               case 'B':
+                       ARDOUR::Session::set_bypass_all_loaded_plugins (true);
+                       break;
+
                case 'd':
                        ARDOUR::Session::set_disable_all_loaded_plugins (true);
                        break;
@@ -216,7 +248,7 @@ ARDOUR_COMMAND_LINE::parse_opts (int argc, char *argv[])
 
                case 'U':
                        backend_session_uuid = optarg;
-                        break;
+                       break;
 
                default:
                        return print_help(execname);