Allow trim of midi regions to before the start of the source. Fixes #3156.
[ardour.git] / libs / evoral / evoral / TimeConverter.hpp
index eabe0e47621894950d45ef410c3d2426492fd029..25371a18bf88700a64ba477ccfdea78b4bc03ec1 100644 (file)
@@ -1,16 +1,16 @@
 /* This file is part of Evoral.
  * Copyright (C) 2009 Dave Robillard <http://drobilla.net>
  * Copyright (C) 2009 Paul Davis
- * 
+ *
  * Evoral is free software; you can redistribute it and/or modify it under the
  * terms of the GNU General Public License as published by the Free Software
  * Foundation; either version 2 of the License, or (at your option) any later
  * version.
- * 
+ *
  * Evoral is distributed in the hope that it will be useful, but WITHOUT ANY
  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for details.
- * 
+ *
  * You should have received a copy of the GNU General Public License along
  * with this program; if not, write to the Free Software Foundation, Inc.,
  * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
@@ -29,13 +29,25 @@ 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) */
        virtual B to(A a) const = 0;
-       
+
        /** 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;
 };