summaryrefslogtreecommitdiff
path: root/libs/canvas
diff options
context:
space:
mode:
authorTim Mayberry <mojofunk@gmail.com>2017-03-28 15:52:28 +1000
committerTim Mayberry <mojofunk@gmail.com>2017-06-26 08:40:47 +1000
commit4ddf97f5a2b505997935a1079f2fd9232c1f634e (patch)
tree41f9b9aa005f81d1e6344947ce94347ea57c4ff6 /libs/canvas
parentab13e87ec2f61489bbbb52ade6c3f9a1b67a0e1b (diff)
Add Canvas::get_microseconds_since_render_start() method
Initial use is for the WaveView class to determine whether on not to draw the waveform in the GUI thread.
Diffstat (limited to 'libs/canvas')
-rw-r--r--libs/canvas/canvas.cc12
-rw-r--r--libs/canvas/canvas/canvas.h2
2 files changed, 14 insertions, 0 deletions
diff --git a/libs/canvas/canvas.cc b/libs/canvas/canvas.cc
index a004d64ad3..47784626aa 100644
--- a/libs/canvas/canvas.cc
+++ b/libs/canvas/canvas.cc
@@ -163,6 +163,18 @@ Canvas::prepare_for_render (Rect const & area) const
}
}
+gint64
+Canvas::get_microseconds_since_render_start () const
+{
+ gint64 timestamp = g_get_monotonic_time();
+
+ if (_last_render_start_timestamp == 0 || timestamp <= _last_render_start_timestamp) {
+ return 0;
+ }
+
+ return timestamp - _last_render_start_timestamp;
+}
+
ostream&
operator<< (ostream& o, Canvas& c)
{
diff --git a/libs/canvas/canvas/canvas.h b/libs/canvas/canvas/canvas.h
index 70a44d2f80..3bcf58256d 100644
--- a/libs/canvas/canvas/canvas.h
+++ b/libs/canvas/canvas/canvas.h
@@ -91,6 +91,8 @@ public:
gint64 get_last_render_start_timestamp () const { return _last_render_start_timestamp; }
+ gint64 get_microseconds_since_render_start () const;
+
/** @return root group */
Item* root () {
return &_root;