+/*
+ * Copyright (C) 2016-2019 Robin Gareus <robin@gareus.org>
+ *
+ * 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.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
#include <iostream>
#include <cstdlib>
#include <getopt.h>
*/
XMLProperty const * target = (*i)->property (X_("name"));
if (!target) {
- (*i)->add_property ("type", "dangling-aux-send");
+ (*i)->set_property ("type", "dangling-aux-send");
continue;
}
boost::shared_ptr<Route> r = s->route_by_name (target->value ());
if (!r || boost::dynamic_pointer_cast<Track> (r)) {
- (*i)->add_property ("type", "dangling-aux-send");
+ (*i)->set_property ("type", "dangling-aux-send");
continue;
}
- (*i)->add_property ("target", r->id ().to_s ());
+ (*i)->set_property ("target", r->id ().to_s ());
}
if (role && role->value () == X_("Listen")) {
(*i)->remove_property (X_("bitslot"));
}
else if (role && (role->value () == X_("Send") || role->value () == X_("Aux"))) {
- char buf[32];
Delivery::Role xrole;
uint32_t bitslot = 0;
xrole = Delivery::Role (string_2_enum (role->value (), xrole));
std::string name = Send::name_and_id_new_send (*s, xrole, bitslot, false);
- snprintf (buf, sizeof (buf), "%" PRIu32, bitslot);
(*i)->remove_property (X_("bitslot"));
(*i)->remove_property (X_("name"));
- (*i)->add_property ("bitslot", buf);
- (*i)->add_property ("name", name);
+ (*i)->set_property ("bitslot", bitslot);
+ (*i)->set_property ("name", name);
}
else if (type && type->value () == X_("intreturn")) {
// ignore, in case bus existed in old session,
// tracks in old session may be connected to it.
// if the bus is new, new_route_from_template()
// will have re-created an ID.
- (*i)->add_property ("type", "ignore-aux-return");
+ (*i)->set_property ("type", "ignore-aux-return");
}
else if (type && type->value () == X_("return")) {
// Return::set_state() generates a new one
else if (type && type->value () == X_("port")) {
// PortInsert::set_state() handles the bitslot
(*i)->remove_property (X_("bitslot"));
- (*i)->add_property ("ignore-name", "1");
+ (*i)->set_property ("ignore-name", "1");
}
}
}
}
-static void usage (int status) {
+static void usage () {
// help2man compatible format (standard GNU help-text)
printf (UTILNAME " - copy mixer settings from one session to another.\n\n");
printf ("Usage: " UTILNAME " [ OPTIONS ] <src> <dst>\n\n");
-d, --debug print pre-processed XML for each route\n\
-l, --log-messages display libardour log messages\n\
-s, --snapshot <name> create a new snapshot in dst\n\
- -v, --verbose show perfomed copy opeations\n\
+ -v, --verbose show performed copy operations\n\
-V, --version print version information and exit\n\
\n");
printf ("Report bugs to <http://tracker.ardour.org/>\n"
"Website: <http://ardour.org/>\n");
- ::exit (status);
+ ::exit (EXIT_SUCCESS);
}
static bool ends_with (std::string const& value, std::string const& ending)
break;
case 'h':
- usage (0);
+ usage ();
break;
case 'l':
case 'V':
printf ("ardour-utils version %s\n\n", VERSIONSTRING);
printf ("Copyright (C) GPL 2016 Robin Gareus <robin@gareus.org>\n");
- exit (0);
+ exit (EXIT_SUCCESS);
break;
case 'v':
break;
default:
- usage (EXIT_FAILURE);
- break;
+ cerr << "Error: unrecognized option. See --help for usage information.\n";
+ ::exit (EXIT_FAILURE);
+ break;
}
}
// TODO parse path/name from a single argument.
if (optind + 2 > argc) {
- usage (EXIT_FAILURE);
+ cerr << "Error: Missing parameter. See --help for usage information.\n";
+ ::exit (EXIT_FAILURE);
}
std::string src = argv[optind];
if (!ends_with (src, statefile_suffix)) {
fprintf (stderr, "source is not a .ardour session file.\n");
- exit (1);
+ exit (EXIT_FAILURE);
}
if (!ends_with (dst, statefile_suffix)) {
fprintf (stderr, "target is not a .ardour session file.\n");
- exit (1);
+ exit (EXIT_FAILURE);
}
if (!Glib::file_test (src, Glib::FILE_TEST_IS_REGULAR)) {
fprintf (stderr, "source is not a regular file.\n");
- exit (1);
+ exit (EXIT_FAILURE);
}
if (!Glib::file_test (dst, Glib::FILE_TEST_IS_REGULAR)) {
fprintf (stderr, "target is not a regular file.\n");
- exit (1);
+ exit (EXIT_FAILURE);
}
std::string src_path = Glib::path_get_dirname (src);