summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2013-03-03 08:26:50 +0000
committerRobin Gareus <robin@gareus.org>2013-03-03 08:26:50 +0000
commit0c90adf3e6805e49058b305279e71417cd402e11 (patch)
tree4ced858c4d9dbeeadd0c9756ac992c4fd8f38c70 /libs
parentdbe00236ff5cfce8f539cf84a6d34b353542dfff (diff)
skip fade&envelope info in region XML
git-svn-id: svn://localhost/ardour2/branches/3.0@14118 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/ardour/audioregion.h1
-rw-r--r--libs/ardour/audioregion.cc13
-rw-r--r--libs/ardour/session_state.cc6
3 files changed, 17 insertions, 3 deletions
diff --git a/libs/ardour/ardour/audioregion.h b/libs/ardour/ardour/audioregion.h
index 67946caa6f..83cd227bce 100644
--- a/libs/ardour/ardour/audioregion.h
+++ b/libs/ardour/ardour/audioregion.h
@@ -112,6 +112,7 @@ class AudioRegion : public Region
virtual framecnt_t read_raw_internal (Sample*, framepos_t, framecnt_t, int channel) const;
XMLNode& state ();
+ XMLNode& get_basic_state ();
int set_state (const XMLNode&, int version);
static void set_default_fade (float steepness, framecnt_t len);
diff --git a/libs/ardour/audioregion.cc b/libs/ardour/audioregion.cc
index fe09774bc5..d101583aa4 100644
--- a/libs/ardour/audioregion.cc
+++ b/libs/ardour/audioregion.cc
@@ -754,16 +754,25 @@ AudioRegion::read_from_sources (SourceList const & srcs, framecnt_t limit, Sampl
}
XMLNode&
-AudioRegion::state ()
+AudioRegion::get_basic_state ()
{
XMLNode& node (Region::state ());
- XMLNode *child;
char buf[64];
LocaleGuard lg (X_("POSIX"));
snprintf (buf, sizeof (buf), "%u", (uint32_t) _sources.size());
node.add_property ("channels", buf);
+ return node;
+}
+
+XMLNode&
+AudioRegion::state ()
+{
+ XMLNode& node (get_basic_state());
+ XMLNode *child;
+ LocaleGuard lg (X_("POSIX"));
+
child = node.add_child ("Envelope");
bool default_env = false;
diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc
index 2dd2dfa7a0..7857e85f4c 100644
--- a/libs/ardour/session_state.cc
+++ b/libs/ardour/session_state.cc
@@ -1078,7 +1078,11 @@ Session::state (bool full_state)
boost::shared_ptr<Region> r = i->second;
/* only store regions not attached to playlists */
if (r->playlist() == 0) {
- child->add_child_nocopy (r->get_state ());
+ if (boost::dynamic_pointer_cast<AudioRegion>(r)) {
+ child->add_child_nocopy ((boost::dynamic_pointer_cast<AudioRegion>(r))->get_basic_state ());
+ } else {
+ child->add_child_nocopy (r->get_state ());
+ }
}
}