| @@ -124,18 +124,6 @@ public: | |||||
| // unused | // unused | ||||
| (void)fWorker; | (void)fWorker; | ||||
| #endif | #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() | ~PluginLv2() | ||||
| @@ -167,6 +155,19 @@ public: | |||||
| void lv2_activate() | 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(); | fPlugin.activate(); | ||||
| } | } | ||||
| @@ -321,7 +322,7 @@ public: | |||||
| else | else | ||||
| d_stderr("Unknown lv2 ticksPerBeat value type"); | d_stderr("Unknown lv2 ticksPerBeat value type"); | ||||
| if (fLastPositionData.ticksPerBeat > 0) | |||||
| if (fLastPositionData.ticksPerBeat > 0.0) | |||||
| fTimePosition.bbt.ticksPerBeat = fLastPositionData.ticksPerBeat; | fTimePosition.bbt.ticksPerBeat = fLastPositionData.ticksPerBeat; | ||||
| } | } | ||||
| @@ -574,6 +575,8 @@ public: | |||||
| fTimePosition.bbt.beatsPerMinute = std::abs(beatsPerMinute); | fTimePosition.bbt.beatsPerMinute = std::abs(beatsPerMinute); | ||||
| } | } | ||||
| fPlugin.setTimePosition(fTimePosition); | |||||
| } | } | ||||
| #endif | #endif | ||||
| } | } | ||||
| @@ -852,7 +855,7 @@ private: | |||||
| float beatsPerMinute; | float beatsPerMinute; | ||||
| int64_t frame; | int64_t frame; | ||||
| double speed; | double speed; | ||||
| int64_t ticksPerBeat; | |||||
| double ticksPerBeat; | |||||
| Lv2PositionData() | Lv2PositionData() | ||||
| : bar(-1), | : bar(-1), | ||||
| @@ -862,7 +865,7 @@ private: | |||||
| beatsPerMinute(0.0f), | beatsPerMinute(0.0f), | ||||
| frame(-1), | frame(-1), | ||||
| speed(0.0), | speed(0.0), | ||||
| ticksPerBeat(-1) {} | |||||
| ticksPerBeat(-1.0) {} | |||||
| } fLastPositionData; | } fLastPositionData; | ||||
| #endif | #endif | ||||