summaryrefslogtreecommitdiff
path: root/cfgtool/cfgtool.cc
diff options
context:
space:
mode:
Diffstat (limited to 'cfgtool/cfgtool.cc')
-rw-r--r--cfgtool/cfgtool.cc39
1 files changed, 39 insertions, 0 deletions
diff --git a/cfgtool/cfgtool.cc b/cfgtool/cfgtool.cc
new file mode 100644
index 0000000000..5f39bd58b0
--- /dev/null
+++ b/cfgtool/cfgtool.cc
@@ -0,0 +1,39 @@
+#include <stdio.h>
+
+#include "pbd/pbd.h"
+#include "pbd/xml++.h"
+#include "ardour/rc_configuration.h"
+#include "pbd/enumwriter.h"
+
+using namespace ARDOUR;
+using namespace std;
+
+int main (int argc, char **argv) {
+ if (argc < 2) {
+ fprintf(stderr, "usage %s <file-name>\n", argv[0]);
+ return -1;
+ }
+
+ setenv ("ARDOUR_DLL_PATH", "/xxx", 1);
+ setenv ("ARDOUR_CONFIG_PATH", "/xxx", 1);
+
+ if (!ARDOUR::init (false, true, "/xxx")) {
+ fprintf(stderr, "Failed to initialize libardour\n");
+ return -1;
+ }
+
+ RCConfiguration * rc = new RCConfiguration;
+ XMLNode& state = rc->get_state();
+
+ // TODO strip some nodes here ?
+
+ XMLTree tree;
+ tree.set_root (&state);
+
+ if (!tree.write (argv[1])) {
+ fprintf(stderr, "Error saving config file '%s'\n", argv[1]);
+ return -1;
+ }
+
+ return 0;
+}