virtual unsigned int connection_count () const = 0;
+ void suspend () { m_suspended = true; }
+ void resume () { m_suspended = false; }
+
protected:
virtual ~Timer() { }
virtual bool on_elapsed () = 0;
+ bool suspended () const { return m_suspended; }
+
private:
Timer(const Timer&);
const Glib::RefPtr<Glib::MainContext> m_main_context;
+ bool m_suspended;
+
};
class LIBPBD_API StandardTimer : public Timer
: m_timeout_source(NULL)
, m_timeout_interval(interval)
, m_main_context(main_context)
+ , m_suspended(false)
{
}
return false;
}
- m_signal();
+ if (!suspended ()) {
+ m_signal();
+ }
return true;
}
return false;
}
- m_blink_signal(blink_on = !blink_on);
+ if (!suspended ()) {
+ m_blink_signal(blink_on = !blink_on);
+ }
return true;
}