From 139225025549d0435970ca6f8c5998fadb88726b Mon Sep 17 00:00:00 2001 From: falkTX Date: Sun, 5 Jul 2015 01:15:06 +0200 Subject: [PATCH] Update distrho --- dpf/distrho/src/DistrhoPluginLV2.cpp | 33 +++++++++++++++------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/dpf/distrho/src/DistrhoPluginLV2.cpp b/dpf/distrho/src/DistrhoPluginLV2.cpp index ed40881..5ff3909 100644 --- a/dpf/distrho/src/DistrhoPluginLV2.cpp +++ b/dpf/distrho/src/DistrhoPluginLV2.cpp @@ -124,18 +124,6 @@ public: // unused (void)fWorker; #endif - -#if DISTRHO_PLUGIN_WANT_TIMEPOS - // hosts may not send all values, resulting on some invalid data - fTimePosition.bbt.bar = 1; - fTimePosition.bbt.beat = 1; - fTimePosition.bbt.tick = 0; - fTimePosition.bbt.barStartTick = 0; - fTimePosition.bbt.beatsPerBar = 4; - fTimePosition.bbt.beatType = 4; - fTimePosition.bbt.ticksPerBeat = 960.0; - fTimePosition.bbt.beatsPerMinute = 120.0; -#endif } ~PluginLv2() @@ -167,6 +155,19 @@ public: void lv2_activate() { +#if DISTRHO_PLUGIN_WANT_TIMEPOS + std::memset(&fTimePosition, 0, sizeof(TimePosition)); + + // hosts may not send all values, resulting on some invalid data + fTimePosition.bbt.bar = 1; + fTimePosition.bbt.beat = 1; + fTimePosition.bbt.tick = 0; + fTimePosition.bbt.barStartTick = 0; + fTimePosition.bbt.beatsPerBar = 4; + fTimePosition.bbt.beatType = 4; + fTimePosition.bbt.ticksPerBeat = 960.0; + fTimePosition.bbt.beatsPerMinute = 120.0; +#endif fPlugin.activate(); } @@ -321,7 +322,7 @@ public: else d_stderr("Unknown lv2 ticksPerBeat value type"); - if (fLastPositionData.ticksPerBeat > 0) + if (fLastPositionData.ticksPerBeat > 0.0) fTimePosition.bbt.ticksPerBeat = fLastPositionData.ticksPerBeat; } @@ -574,6 +575,8 @@ public: fTimePosition.bbt.beatsPerMinute = std::abs(beatsPerMinute); } + + fPlugin.setTimePosition(fTimePosition); } #endif } @@ -852,7 +855,7 @@ private: float beatsPerMinute; int64_t frame; double speed; - int64_t ticksPerBeat; + double ticksPerBeat; Lv2PositionData() : bar(-1), @@ -862,7 +865,7 @@ private: beatsPerMinute(0.0f), frame(-1), speed(0.0), - ticksPerBeat(-1) {} + ticksPerBeat(-1.0) {} } fLastPositionData; #endif