NO-OP: mark various state property names as explicitly non-translated
[ardour.git] / gtk2_ardour / timers.cc
index 13f2cfdbd7526d0381fce47f7ee9ca3911544cf6..3469d39df82d9ec2f477785834aae969c54d405c 100644 (file)
@@ -87,6 +87,7 @@ public:
                , rapid(100)
                , super_rapid(40)
                , fps(40)
+               , _suspend_counter(0)
        {
 #ifndef NDEBUG
                second.connect (sigc::mem_fun (*this, &UITimers::on_second_timer));
@@ -99,6 +100,8 @@ public:
        StandardTimer   super_rapid;
        StandardTimer   fps;
 
+       gint            _suspend_counter;
+
 #ifndef NDEBUG
        std::vector<uint64_t> rapid_eps_count;
        std::vector<uint64_t> super_rapid_eps_count;
@@ -207,4 +210,22 @@ fps_connect(const sigc::slot<void>& slot)
        return get_timers().fps.connect (slot);
 }
 
+TimerSuspender::TimerSuspender ()
+{
+       if (g_atomic_int_add(&get_timers()._suspend_counter, 1) == 0) {
+               get_timers().rapid.suspend();
+               get_timers().super_rapid.suspend();
+               get_timers().fps.suspend();
+       }
+}
+
+TimerSuspender::~TimerSuspender ()
+{
+       if (g_atomic_int_dec_and_test (&get_timers()._suspend_counter)) {
+               get_timers().rapid.resume();
+               get_timers().super_rapid.resume();
+               get_timers().fps.resume();
+       }
+}
+
 } // namespace Timers