summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2006-05-19 01:54:00 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2006-05-19 01:54:00 +0000
commit06654aa7f10005d447d0829f149b9008c1abbcb6 (patch)
treed5c7695567cd010c4037741a0d7ecf8dcb2c192c /libs
parentf6da2b13f9b90eb94dee777986035ced73a53810 (diff)
fix for edit & mix group names getting lost at session load
git-svn-id: svn://localhost/trunk/ardour2@513 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/ardour/osc.h2
-rw-r--r--libs/ardour/osc.cc59
-rw-r--r--libs/ardour/session_state.cc10
3 files changed, 66 insertions, 5 deletions
diff --git a/libs/ardour/ardour/osc.h b/libs/ardour/ardour/osc.h
index bcf4841a3d..66c28eb8a5 100644
--- a/libs/ardour/ardour/osc.h
+++ b/libs/ardour/ardour/osc.h
@@ -71,6 +71,8 @@ class OSC : public BasicUI, public sigc::trackable
std::string get_server_url ();
std::string get_unix_server_url ();
+ int current_value (const char *path, const char *types, lo_arg **argv, int argc, void *data, void *user_data);
+
#define PATH_CALLBACK(name) \
static int _ ## name (const char *path, const char *types, lo_arg **argv, int argc, void *data, void *user_data) { \
return static_cast<OSC*>(user_data)->cb_ ## name (path, types, argv, argc, data); \
diff --git a/libs/ardour/osc.cc b/libs/ardour/osc.cc
index 9ab2bd3c3b..67b70fba0c 100644
--- a/libs/ardour/osc.cc
+++ b/libs/ardour/osc.cc
@@ -377,3 +377,62 @@ OSC::session_going_away ()
/* path callbacks */
+int
+OSC::current_value (const char *path, const char *types, lo_arg **argv, int argc, void *data, void* user_data)
+{
+#if 0
+ const char* returl;
+
+ if (argc < 3 || types == 0 || strlen (types) < 3 || types[0] != 's' || types[1] != 's' || types[2] != s) {
+ return 1;
+ }
+
+ const char *returl = argv[1]->s;
+ lo_address addr = find_or_cache_addr (returl);
+
+ const char *retpath = argv[2]->s;
+
+
+ if (strcmp (argv[0]->s, "transport_frame")) {
+
+ if (session) {
+ lo_send (addr, retpath, "i", session->transport_frame());
+ }
+
+ } else if (strcmp (argv[0]->s, "transport_speed")) {
+
+ if (session) {
+ lo_send (addr, retpath, "i", session->transport_frame());
+ }
+
+ } else if (strcmp (argv[0]->s, "transport_locked")) {
+
+ if (session) {
+ lo_send (addr, retpath, "i", session->transport_frame());
+ }
+
+ } else if (strcmp (argv[0]->s, "punch_in") {
+
+ if (session) {
+ lo_send (addr, retpath, "i", session->transport_frame());
+ }
+
+ } else if (strcmp (argv[0]->s, "punch_out") {
+
+ if (session) {
+ lo_send (addr, retpath, "i", session->transport_frame());
+ }
+
+ } else if (strcmp (argv[0]->s, "rec_enable") {
+
+ if (session) {
+ lo_send (addr, retpath, "i", session->transport_frame());
+ }
+
+ } else {
+
+ /* error */
+ }
+#endif
+ return 0;
+}
diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc
index af0e39449e..eaadec0fd3 100644
--- a/libs/ardour/session_state.cc
+++ b/libs/ardour/session_state.cc
@@ -2377,18 +2377,18 @@ Session::load_route_groups (const XMLNode& node, bool edit)
{
XMLNodeList nlist = node.children();
XMLNodeConstIterator niter;
- RouteGroup* route;
+ RouteGroup* rg;
set_dirty();
for (niter = nlist.begin(); niter != nlist.end(); ++niter) {
if ((*niter)->name() == "RouteGroup") {
if (edit) {
- route = add_edit_group ("");
- route->set_state (**niter);
+ rg = add_edit_group ("");
+ rg->set_state (**niter);
} else {
- route = add_mix_group ("");
- route->set_state (**niter);
+ rg = add_mix_group ("");
+ rg->set_state (**niter);
}
}
}