1 /* Copyright (C) 2006 Paul Davis
3 This program is free software; you can redistribute it and/or modify it
4 under the terms of the GNU General Public License as published by the
5 Free Software Foundation; either version 2 of the License, or (at your
6 option) any later version.
8 This program is distributed in the hope that it will be useful, but WITHOUT
9 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13 You should have received a copy of the GNU General Public License along
14 with this program; if not, write to the Free Software Foundation, Inc.,
15 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 #ifndef __ardour_smpte_h__
19 #define __ardour_smpte_h__
33 /** SMPTE frame rate (in frames per second).
35 * This should be eliminated in favour of a float to support arbitrary rates.
49 uint32_t frames; ///< SMPTE frames (not audio samples)
50 uint32_t subframes; ///< Typically unused
51 FPS rate; ///< Frame rate of this Time
52 static FPS default_rate; ///< Rate to use for default constructor
54 Time(FPS a_rate = default_rate) {
65 Wrap increment( Time& smpte );
66 Wrap decrement( Time& smpte );
67 Wrap increment_subframes( Time& smpte );
68 Wrap decrement_subframes( Time& smpte );
69 Wrap increment_seconds( Time& smpte );
70 Wrap increment_minutes( Time& smpte );
71 Wrap increment_hours( Time& smpte );
72 void frames_floor( Time& smpte );
73 void seconds_floor( Time& smpte );
74 void minutes_floor( Time& smpte );
75 void hours_floor( Time& smpte );
79 #endif // __ardour_smpte_h__