Update timestamp types in CycleTimer class to be signed
authorTim Mayberry <mojofunk@gmail.com>
Sat, 12 Sep 2015 02:34:10 +0000 (12:34 +1000)
committerTim Mayberry <mojofunk@gmail.com>
Wed, 16 Sep 2015 01:22:16 +0000 (11:22 +1000)
libs/backends/portaudio/cycle_timer.h

index 95811ae1ca7b4bdefc9af094c8a125dfc1d4443c..6fe665568c537e616944d66e41ab772505c9aa97 100644 (file)
@@ -55,7 +55,7 @@ public:
 
        // rint?? that may round to sample outside of cycle?
        // max(0, value)?
-       uint32_t samples_since_cycle_start (uint64_t timer_val) const
+       uint32_t samples_since_cycle_start (int64_t timer_val) const
        {
                if (timer_val < m_cycle_start) {
                        return 0;
@@ -63,38 +63,39 @@ public:
                return std::max((double)0, (timer_val - get_start ()) / get_sample_length_us ());
        }
 
-       uint64_t timestamp_from_sample_offset (uint32_t sample_offset)
+       int64_t timestamp_from_sample_offset (uint32_t sample_offset)
        {
                return m_cycle_start + get_sample_length_us () * sample_offset;
        }
 
        bool valid () const { return m_samples_per_cycle && m_samplerate; }
 
-       bool in_cycle (uint64_t timer_value_us) const
-       { return (timer_value_us >= get_start()) && (timer_value_us < get_next_start());
+       bool in_cycle(int64_t timer_value_us) const
+       {
+               return (timer_value_us >= get_start()) && (timer_value_us < get_next_start());
        }
 
-       void reset_start (uint64_t timestamp) { m_cycle_start = timestamp; }
+       void reset_start (int64_t timestamp) { m_cycle_start = timestamp; }
 
-       uint64_t get_start () const { return m_cycle_start; }
+       int64_t get_start () const { return m_cycle_start; }
 
-       uint64_t microseconds_since_start (uint64_t timestamp) const
+       int64_t microseconds_since_start (int64_t timestamp) const
        {
                return timestamp - m_cycle_start;
        }
 
-       uint64_t microseconds_since_start (uint32_t samples) const
+       int64_t microseconds_since_start (uint32_t samples) const
        {
                return m_cycle_start + samples * get_sample_length_us ();
        }
 
-       uint64_t get_next_start () const
+       int64_t get_next_start () const
        {
                return m_cycle_start + rint (get_length_us ());
        }
 
 private:
-       uint64_t m_cycle_start;
+       int64_t m_cycle_start;
 
        uint32_t m_samplerate;
        uint32_t m_samples_per_cycle;