MusicalTime => Beats.
[ardour.git] / libs / evoral / src / TimeConverter.cpp
1 /* This file is part of Evoral.
2  * Copyright (C) 2008 David Robillard <http://drobilla.net>
3  * Copyright (C) 2000-2008 Paul Davis
4  *
5  * Evoral is free software; you can redistribute it and/or modify it under the
6  * terms of the GNU General Public License as published by the Free Software
7  * Foundation; either version 2 of the License, or (at your option) any later
8  * version.
9  *
10  * Evoral is distributed in the hope that it will be useful, but WITHOUT ANY
11  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12  * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for details.
13  *
14  * You should have received a copy of the GNU General Public License along
15  * with this program; if not, write to the Free Software Foundation, Inc.,
16  * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17  */
18
19 #include <stdint.h>
20
21 #include "evoral/TimeConverter.hpp"
22 #include "evoral/types.hpp"
23
24 typedef int64_t framepos_t; /* MUST match libs/ardour/ardour/types.h */
25
26 namespace Evoral {
27
28 template<typename A, typename B>
29 TimeConverter<A,B>::~TimeConverter()
30 {}
31
32 template<typename A, typename B>
33 B
34 IdentityConverter<A,B>::to(A a) const
35 {
36         return static_cast<B>(a);
37 }
38
39 template<typename A, typename B>
40 A
41 IdentityConverter<A,B>::from(B b) const
42 {
43         return static_cast<A>(b);
44 }
45
46 template class IdentityConverter<double, framepos_t>;
47 template class TimeConverter<double, framepos_t>;
48 template class TimeConverter<Evoral::Beats, framepos_t>;
49
50 } // namespace Evoral