summaryrefslogtreecommitdiff
path: root/libs/evoral
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2010-08-05 13:36:38 +0000
committerCarl Hetherington <carl@carlh.net>2010-08-05 13:36:38 +0000
commit5e3ca4db5cc356385e520643cfd279f393db4b51 (patch)
tree2ea31a74d34e37e33bc5b126a5e7f1b58753b4f0 /libs/evoral
parente7a2b99f3d4f7afe73a30ac85e770e228785c1be (diff)
Support cut / copy / paste of MIDI automation.
git-svn-id: svn://localhost/ardour2/branches/3.0@7545 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/evoral')
-rw-r--r--libs/evoral/evoral/TimeConverter.hpp12
-rw-r--r--libs/evoral/src/ControlList.cpp8
2 files changed, 18 insertions, 2 deletions
diff --git a/libs/evoral/evoral/TimeConverter.hpp b/libs/evoral/evoral/TimeConverter.hpp
index 9c53d0370c..25371a18bf 100644
--- a/libs/evoral/evoral/TimeConverter.hpp
+++ b/libs/evoral/evoral/TimeConverter.hpp
@@ -29,6 +29,7 @@ namespace Evoral {
template<typename A, typename B>
class TimeConverter {
public:
+ TimeConverter (B ob = 0) : _origin_b (ob) {}
virtual ~TimeConverter() {}
/** Convert A time to B time (A to B) */
@@ -36,6 +37,17 @@ public:
/** Convert B time to A time (A from B) */
virtual A from(B b) const = 0;
+
+ B origin_b () const {
+ return _origin_b;
+ }
+
+ void set_origin_b (B o) {
+ _origin_b = o;
+ }
+
+protected:
+ B _origin_b;
};
diff --git a/libs/evoral/src/ControlList.cpp b/libs/evoral/src/ControlList.cpp
index 880198dc53..72b032e0cf 100644
--- a/libs/evoral/src/ControlList.cpp
+++ b/libs/evoral/src/ControlList.cpp
@@ -1145,7 +1145,10 @@ ControlList::cut (iterator start, iterator end)
return nal;
}
-/** @param op 0 = cut, 1 = copy, 2 = clear */
+/** @param start Start position in model coordinates.
+ * @param end End position in model coordinates.
+ * @param op 0 = cut, 1 = copy, 2 = clear.
+ */
boost::shared_ptr<ControlList>
ControlList::cut_copy_clear (double start, double end, int op)
{
@@ -1247,9 +1250,10 @@ ControlList::copy (double start, double end)
void
ControlList::clear (double start, double end)
{
- (void) cut_copy_clear (start, end, 2);
+ cut_copy_clear (start, end, 2);
}
+/** @param pos Position in model coordinates */
bool
ControlList::paste (ControlList& alist, double pos, float /*times*/)
{