diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2006-05-19 01:54:00 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2006-05-19 01:54:00 +0000 |
commit | 06654aa7f10005d447d0829f149b9008c1abbcb6 (patch) | |
tree | d5c7695567cd010c4037741a0d7ecf8dcb2c192c /libs | |
parent | f6da2b13f9b90eb94dee777986035ced73a53810 (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.h | 2 | ||||
-rw-r--r-- | libs/ardour/osc.cc | 59 | ||||
-rw-r--r-- | libs/ardour/session_state.cc | 10 |
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); } } } |