summaryrefslogtreecommitdiff
path: root/libs/surfaces/control_protocol/smpte.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/surfaces/control_protocol/smpte.cc')
-rw-r--r--libs/surfaces/control_protocol/smpte.cc48
1 files changed, 24 insertions, 24 deletions
diff --git a/libs/surfaces/control_protocol/smpte.cc b/libs/surfaces/control_protocol/smpte.cc
index 5df159a52b..969c3385bc 100644
--- a/libs/surfaces/control_protocol/smpte.cc
+++ b/libs/surfaces/control_protocol/smpte.cc
@@ -19,8 +19,8 @@
#define SMPTE_IS_AROUND_ZERO( sm ) (!(sm).frames && !(sm).seconds && !(sm).minutes && !(sm).hours)
#define SMPTE_IS_ZERO( sm ) (!(sm).frames && !(sm).seconds && !(sm).minutes && !(sm).hours && !(sm.subframes))
-#include <control_protocol/smpte.h>
-#include <ardour/configuration.h>
+#include "control_protocol/smpte.h"
+#include "ardour/rc_configuration.h"
namespace SMPTE {
@@ -32,20 +32,20 @@ float Time::default_rate = 30.0;
* @return true if seconds wrap.
*/
Wrap
-increment( Time& smpte )
+increment( Time& smpte, uint32_t subframes_per_frame )
{
Wrap wrap = NONE;
if (smpte.negative) {
if (SMPTE_IS_AROUND_ZERO(smpte) && smpte.subframes) {
// We have a zero transition involving only subframes
- smpte.subframes = ARDOUR::Config->get_subframes_per_frame() - smpte.subframes;
+ smpte.subframes = subframes_per_frame - smpte.subframes;
smpte.negative = false;
return SECONDS;
}
smpte.negative = false;
- wrap = decrement( smpte );
+ wrap = decrement( smpte, subframes_per_frame );
if (!SMPTE_IS_ZERO( smpte )) {
smpte.negative = true;
}
@@ -118,19 +118,19 @@ increment( Time& smpte )
* Realtime safe.
* @return true if seconds wrap. */
Wrap
-decrement( Time& smpte )
+decrement( Time& smpte, uint32_t subframes_per_frame )
{
Wrap wrap = NONE;
if (smpte.negative || SMPTE_IS_ZERO(smpte)) {
smpte.negative = false;
- wrap = increment( smpte );
+ wrap = increment( smpte, subframes_per_frame );
smpte.negative = true;
return wrap;
} else if (SMPTE_IS_AROUND_ZERO(smpte) && smpte.subframes) {
// We have a zero transition involving only subframes
- smpte.subframes = ARDOUR::Config->get_subframes_per_frame() - smpte.subframes;
+ smpte.subframes = subframes_per_frame - smpte.subframes;
smpte.negative = true;
return SECONDS;
}
@@ -215,13 +215,13 @@ frames_floor( Time& smpte )
/** Increment @a smpte by one subframe */
Wrap
-increment_subframes( Time& smpte )
+increment_subframes( Time& smpte, uint32_t subframes_per_frame )
{
Wrap wrap = NONE;
if (smpte.negative) {
smpte.negative = false;
- wrap = decrement_subframes( smpte );
+ wrap = decrement_subframes( smpte, subframes_per_frame );
if (!SMPTE_IS_ZERO(smpte)) {
smpte.negative = true;
}
@@ -229,9 +229,9 @@ increment_subframes( Time& smpte )
}
smpte.subframes++;
- if (smpte.subframes >= ARDOUR::Config->get_subframes_per_frame()) {
+ if (smpte.subframes >= subframes_per_frame) {
smpte.subframes = 0;
- increment( smpte );
+ increment( smpte, subframes_per_frame );
return FRAMES;
}
return NONE;
@@ -240,13 +240,13 @@ increment_subframes( Time& smpte )
/** Decrement @a smpte by one subframe */
Wrap
-decrement_subframes( Time& smpte )
+decrement_subframes( Time& smpte, uint32_t subframes_per_frame )
{
Wrap wrap = NONE;
if (smpte.negative) {
smpte.negative = false;
- wrap = increment_subframes( smpte );
+ wrap = increment_subframes( smpte, subframes_per_frame );
smpte.negative = true;
return wrap;
}
@@ -258,7 +258,7 @@ decrement_subframes( Time& smpte )
smpte.subframes = 1;
return FRAMES;
} else {
- decrement( smpte );
+ decrement( smpte, subframes_per_frame );
smpte.subframes = 79;
return FRAMES;
}
@@ -274,7 +274,7 @@ decrement_subframes( Time& smpte )
/** Go to next whole second (frames == 0 or frames == 2) */
Wrap
-increment_seconds( Time& smpte )
+increment_seconds( Time& smpte, uint32_t subframes_per_frame )
{
Wrap wrap = NONE;
@@ -283,7 +283,7 @@ increment_seconds( Time& smpte )
if (smpte.negative) {
// Wrap second if on second boundary
- wrap = increment(smpte);
+ wrap = increment(smpte, subframes_per_frame);
// Go to lowest absolute frame value
seconds_floor( smpte );
if (SMPTE_IS_ZERO(smpte)) {
@@ -307,7 +307,7 @@ increment_seconds( Time& smpte )
}
// Increment by one frame
- wrap = increment( smpte );
+ wrap = increment( smpte, subframes_per_frame );
}
return wrap;
@@ -349,7 +349,7 @@ seconds_floor( Time& smpte )
/** Go to next whole minute (seconds == 0, frames == 0 or frames == 2) */
Wrap
-increment_minutes( Time& smpte )
+increment_minutes( Time& smpte, uint32_t subframes_per_frame )
{
Wrap wrap = NONE;
@@ -358,14 +358,14 @@ increment_minutes( Time& smpte )
if (smpte.negative) {
// Wrap if on minute boundary
- wrap = increment_seconds( smpte );
+ wrap = increment_seconds( smpte, subframes_per_frame );
// Go to lowest possible value in this minute
minutes_floor( smpte );
} else {
// Go to highest possible second
smpte.seconds = 59;
// Wrap minute by incrementing second
- wrap = increment_seconds( smpte );
+ wrap = increment_seconds( smpte, subframes_per_frame );
}
return wrap;
@@ -389,7 +389,7 @@ minutes_floor( Time& smpte )
/** Go to next whole hour (minute = 0, second = 0, frame = 0) */
Wrap
-increment_hours( Time& smpte )
+increment_hours( Time& smpte, uint32_t subframes_per_frame )
{
Wrap wrap = NONE;
@@ -398,12 +398,12 @@ increment_hours( Time& smpte )
if (smpte.negative) {
// Wrap if on hour boundary
- wrap = increment_minutes( smpte );
+ wrap = increment_minutes( smpte, subframes_per_frame );
// Go to lowest possible value in this hour
hours_floor( smpte );
} else {
smpte.minutes = 59;
- wrap = increment_minutes( smpte );
+ wrap = increment_minutes( smpte, subframes_per_frame );
}
return wrap;