summaryrefslogtreecommitdiff
path: root/src/drumgizmo.cc
diff options
context:
space:
mode:
authorBent Bisballe Nyeng <deva@aasimon.org>2015-07-27 19:36:28 +0200
committerBent Bisballe Nyeng <deva@aasimon.org>2015-07-27 19:36:28 +0200
commitec4eb3f535c358e67eb9ae0989b2163b20728d0b (patch)
tree40fc11923a6e07fc957210b3c0c53b6301a74d97 /src/drumgizmo.cc
parentcc9b5ff6d194dc8ead042c5d129ea07e8e68382d (diff)
Add free-wheel mode to LV2 and DrumGizmo class.
Diffstat (limited to 'src/drumgizmo.cc')
-rw-r--r--src/drumgizmo.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/drumgizmo.cc b/src/drumgizmo.cc
index 528b542..5348324 100644
--- a/src/drumgizmo.cc
+++ b/src/drumgizmo.cc
@@ -51,6 +51,7 @@ DrumGizmo::DrumGizmo(AudioOutputEngine *o, AudioInputEngine *i)
, oe(o)
, ie(i)
, framesize(0)
+ , freewheel(false)
{
is_stopping = false;
cacheManager.init(1000, true); // start thread
@@ -189,6 +190,16 @@ void DrumGizmo::setFrameSize(size_t framesize)
}
}
+void DrumGizmo::setFreeWheel(bool freewheel)
+{
+ // Freewheel = true means that we are bouncing and therefore running faster
+ // than realtime.
+ if(freewheel != this->freewheel) {
+ this->freewheel = freewheel;
+ cacheManager.setAsyncMode(!freewheel);
+ }
+}
+
bool DrumGizmo::run(size_t pos, sample_t *samples, size_t nsamples)
{
setFrameSize(nsamples);