From bf60778ad93dfa3fd24979fc11aadf29469ea8c2 Mon Sep 17 00:00:00 2001 From: falkTX Date: Sun, 19 Aug 2018 12:19:25 +0200 Subject: [PATCH] Use double-precision for time tick; Force bridge build without osc --- source/backend/CarlaEngine.hpp | 4 +-- source/backend/CarlaStandalone.cpp | 4 +-- source/backend/engine/CarlaEngine.cpp | 23 +++++++++++---- source/backend/engine/CarlaEngineBridge.cpp | 6 ---- source/backend/engine/CarlaEngineData.cpp | 2 +- source/backend/engine/CarlaEngineInternal.cpp | 12 ++++---- source/backend/engine/CarlaEngineInternal.hpp | 8 ++++-- source/backend/engine/CarlaEngineNative.cpp | 3 +- source/backend/engine/CarlaEngineThread.cpp | 6 ++-- source/backend/plugin/CarlaPluginDSSI.cpp | 28 +++++++++---------- source/backend/plugin/CarlaPluginLV2.cpp | 3 +- source/backend/plugin/CarlaPluginVST2.cpp | 2 +- source/bridges-plugin/Makefile | 9 ++---- source/includes/CarlaNative.h | 4 +-- source/libjack/libjack.cpp | 2 +- source/utils/CarlaBridgeDefines.hpp | 6 ++-- 16 files changed, 62 insertions(+), 60 deletions(-) diff --git a/source/backend/CarlaEngine.hpp b/source/backend/CarlaEngine.hpp index 77d42cd93..883cacc02 100644 --- a/source/backend/CarlaEngine.hpp +++ b/source/backend/CarlaEngine.hpp @@ -280,8 +280,8 @@ struct CARLA_API EngineTimeInfoBBT { int32_t bar; //!< current bar int32_t beat; //!< current beat-within-bar - int32_t tick; //!< current tick-within-beat - double barStartTick; + double tick; //!< current tick-within-beat + double barStartTick; float beatsPerBar; //!< time signature "numerator" float beatType; //!< time signature "denominator" diff --git a/source/backend/CarlaStandalone.cpp b/source/backend/CarlaStandalone.cpp index 75f38a1c6..08d88a715 100644 --- a/source/backend/CarlaStandalone.cpp +++ b/source/backend/CarlaStandalone.cpp @@ -1797,7 +1797,7 @@ const char* carla_get_host_osc_url_tcp() { carla_debug("carla_get_host_osc_url_tcp()"); -#ifdef HAVE_LIBLO +#if defined(HAVE_LIBLO) && !defined(BUILD_BRIDGE_ALTERNATIVE_ARCH) if (gStandalone.engine == nullptr) { carla_stderr2("carla_get_host_osc_url_tcp() failed, engine is not running"); @@ -1815,7 +1815,7 @@ const char* carla_get_host_osc_url_udp() { carla_debug("carla_get_host_osc_url_udp()"); -#ifdef HAVE_LIBLO +#if defined(HAVE_LIBLO) && !defined(BUILD_BRIDGE_ALTERNATIVE_ARCH) if (gStandalone.engine == nullptr) { carla_stderr2("carla_get_host_osc_url_udp() failed, engine is not running"); diff --git a/source/backend/engine/CarlaEngine.cpp b/source/backend/engine/CarlaEngine.cpp index 469dd732f..2fe4388cf 100644 --- a/source/backend/engine/CarlaEngine.cpp +++ b/source/backend/engine/CarlaEngine.cpp @@ -282,7 +282,7 @@ void CarlaEngine::idle() noexcept } } -#ifdef HAVE_LIBLO +#if defined(HAVE_LIBLO) && !defined(BUILD_BRIDGE_ALTERNATIVE_ARCH) pData->osc.idle(); #endif } @@ -490,7 +490,9 @@ bool CarlaEngine::addPlugin(const BinaryType btype, const PluginType ptype, } else { +#ifndef BUILD_BRIDGE bool use16Outs; +#endif setLastError("Invalid or unsupported plugin type"); switch (ptype) @@ -498,10 +500,6 @@ bool CarlaEngine::addPlugin(const BinaryType btype, const PluginType ptype, case PLUGIN_NONE: break; - case PLUGIN_INTERNAL: - plugin = CarlaPlugin::newNative(initializer); - break; - case PLUGIN_LADSPA: plugin = CarlaPlugin::newLADSPA(initializer, (const LADSPA_RDF_Descriptor*)extra); break; @@ -518,6 +516,11 @@ bool CarlaEngine::addPlugin(const BinaryType btype, const PluginType ptype, plugin = CarlaPlugin::newVST2(initializer); break; +#ifndef BUILD_BRIDGE + case PLUGIN_INTERNAL: + plugin = CarlaPlugin::newNative(initializer); + break; + case PLUGIN_SF2: use16Outs = (extra != nullptr && std::strcmp((const char*)extra, "true") == 0); plugin = CarlaPlugin::newFluidSynth(initializer, use16Outs); @@ -530,6 +533,14 @@ bool CarlaEngine::addPlugin(const BinaryType btype, const PluginType ptype, case PLUGIN_JACK: plugin = CarlaPlugin::newJackApp(initializer); break; +#else + case PLUGIN_INTERNAL: + case PLUGIN_SF2: + case PLUGIN_SFZ: + case PLUGIN_JACK: + setLastError("Plugin bridges cannot handle this binary"); + break; +#endif } } @@ -1620,7 +1631,7 @@ void CarlaEngine::setOption(const EngineOption option, const int value, const ch } } -#ifdef HAVE_LIBLO +#if defined(HAVE_LIBLO) && !defined(BUILD_BRIDGE_ALTERNATIVE_ARCH) // ----------------------------------------------------------------------- // OSC Stuff diff --git a/source/backend/engine/CarlaEngineBridge.cpp b/source/backend/engine/CarlaEngineBridge.cpp index 63a509dcd..315f713ed 100644 --- a/source/backend/engine/CarlaEngineBridge.cpp +++ b/source/backend/engine/CarlaEngineBridge.cpp @@ -1405,12 +1405,6 @@ CarlaEngine* CarlaEngine::newBridge(const char* const audioPoolBaseName, const c // ----------------------------------------------------------------------- -#ifdef BUILD_BRIDGE_ALTERNATIVE_ARCH -CarlaPlugin* CarlaPlugin::newNative(const CarlaPlugin::Initializer&) { return nullptr; } -CarlaPlugin* CarlaPlugin::newFileSF2(const CarlaPlugin::Initializer&, const bool) { return nullptr; } -CarlaPlugin* CarlaPlugin::newFileSFZ(const CarlaPlugin::Initializer&) { return nullptr; } -#endif - CARLA_BACKEND_END_NAMESPACE // ----------------------------------------------------------------------- diff --git a/source/backend/engine/CarlaEngineData.cpp b/source/backend/engine/CarlaEngineData.cpp index 9d266067f..1e8c0524c 100644 --- a/source/backend/engine/CarlaEngineData.cpp +++ b/source/backend/engine/CarlaEngineData.cpp @@ -297,7 +297,7 @@ EngineTimeInfoBBT::EngineTimeInfoBBT() noexcept : valid(false), bar(0), beat(0), - tick(0), + tick(0.0), barStartTick(0.0), beatsPerBar(0.0f), beatType(0.0f), diff --git a/source/backend/engine/CarlaEngineInternal.cpp b/source/backend/engine/CarlaEngineInternal.cpp index edb7a1181..ad38110de 100644 --- a/source/backend/engine/CarlaEngineInternal.cpp +++ b/source/backend/engine/CarlaEngineInternal.cpp @@ -245,7 +245,7 @@ void EngineInternalTime::fillEngineTimeInfo(const uint32_t newFrames) noexcept timeInfo.bbt.beatsPerBar = static_cast(beatsPerBar); timeInfo.bbt.beatsPerMinute = beatsPerMinute; - timeInfo.bbt.tick = static_cast(ticktmp); + timeInfo.bbt.tick = ticktmp; tick = ticktmp; if (transportMode == ENGINE_TRANSPORT_MODE_INTERNAL && timeInfo.playing) @@ -322,7 +322,7 @@ void EngineInternalTime::fillJackTimeInfo(jack_position_t* const pos, const uint pos->beats_per_bar = static_cast(beatsPerBar); pos->beats_per_minute = beatsPerMinute; - pos->tick = static_cast(ticktmp); + pos->tick = ticktmp; tick = ticktmp; } @@ -418,7 +418,7 @@ void EngineNextAction::clearAndReset() noexcept CarlaEngine::ProtectedData::ProtectedData(CarlaEngine* const engine) noexcept : thread(engine), -#ifdef HAVE_LIBLO +#if defined(HAVE_LIBLO) && !defined(BUILD_BRIDGE_ALTERNATIVE_ARCH) osc(engine), oscData(nullptr), #endif @@ -473,7 +473,7 @@ CarlaEngine::ProtectedData::~ProtectedData() noexcept bool CarlaEngine::ProtectedData::init(const char* const clientName) { CARLA_SAFE_ASSERT_RETURN_INTERNAL_ERR(name.isEmpty(), "Invalid engine internal data (err #1)"); -#ifdef HAVE_LIBLO +#if defined(HAVE_LIBLO) && !defined(BUILD_BRIDGE_ALTERNATIVE_ARCH) CARLA_SAFE_ASSERT_RETURN_INTERNAL_ERR(oscData == nullptr, "Invalid engine internal data (err #2)"); #endif CARLA_SAFE_ASSERT_RETURN_INTERNAL_ERR(events.in == nullptr, "Invalid engine internal data (err #4)"); @@ -523,7 +523,7 @@ bool CarlaEngine::ProtectedData::init(const char* const clientName) timeInfo.clear(); -#ifdef HAVE_LIBLO +#if defined(HAVE_LIBLO) && !defined(BUILD_BRIDGE_ALTERNATIVE_ARCH) osc.init(clientName); # ifndef BUILD_BRIDGE oscData = osc.getControlData(); @@ -554,7 +554,7 @@ void CarlaEngine::ProtectedData::close() thread.stopThread(500); nextAction.clearAndReset(); -#ifdef HAVE_LIBLO +#if defined(HAVE_LIBLO) && !defined(BUILD_BRIDGE_ALTERNATIVE_ARCH) osc.close(); oscData = nullptr; #endif diff --git a/source/backend/engine/CarlaEngineInternal.hpp b/source/backend/engine/CarlaEngineInternal.hpp index a07471c0a..ae7539373 100644 --- a/source/backend/engine/CarlaEngineInternal.hpp +++ b/source/backend/engine/CarlaEngineInternal.hpp @@ -18,11 +18,13 @@ #ifndef CARLA_ENGINE_INTERNAL_HPP_INCLUDED #define CARLA_ENGINE_INTERNAL_HPP_INCLUDED -#include "CarlaEngineOsc.hpp" #include "CarlaEngineThread.hpp" #include "CarlaEngineUtils.hpp" -#include "hylia/hylia.h" +#ifndef BUILD_BRIDGE_ALTERNATIVE_ARCH +# include "CarlaEngineOsc.hpp" +# include "hylia/hylia.h" +#endif // FIXME only use CARLA_PREVENT_HEAP_ALLOCATION for structs // maybe separate macro @@ -207,7 +209,7 @@ struct EnginePluginData { struct CarlaEngine::ProtectedData { CarlaEngineThread thread; -#ifdef HAVE_LIBLO +#if defined(HAVE_LIBLO) && !defined(BUILD_BRIDGE_ALTERNATIVE_ARCH) CarlaEngineOsc osc; # ifdef BUILD_BRIDGE CarlaOscData* oscData; diff --git a/source/backend/engine/CarlaEngineNative.cpp b/source/backend/engine/CarlaEngineNative.cpp index d1dc7672f..b8f7f98d2 100644 --- a/source/backend/engine/CarlaEngineNative.cpp +++ b/source/backend/engine/CarlaEngineNative.cpp @@ -1751,7 +1751,8 @@ protected: if (timeInfo.bbt.valid) { - std::sprintf(tmpBuf, P_UINT64 ":%i:%i:%i\n", timeInfo.frame, timeInfo.bbt.bar, timeInfo.bbt.beat, timeInfo.bbt.tick); + std::sprintf(tmpBuf, P_UINT64 ":%i:%i:%i\n", + timeInfo.frame, timeInfo.bbt.bar, timeInfo.bbt.beat, static_cast(timeInfo.bbt.tick + 0.5)); if (! fUiServer.writeMessage(tmpBuf)) return; diff --git a/source/backend/engine/CarlaEngineThread.cpp b/source/backend/engine/CarlaEngineThread.cpp index 78b85d8cb..c4401eff0 100644 --- a/source/backend/engine/CarlaEngineThread.cpp +++ b/source/backend/engine/CarlaEngineThread.cpp @@ -1,6 +1,6 @@ /* * Carla Plugin Host - * Copyright (C) 2011-2014 Filipe Coelho + * Copyright (C) 2011-2018 Filipe Coelho * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as @@ -46,7 +46,7 @@ void CarlaEngineThread::run() noexcept #endif carla_debug("CarlaEngineThread::run()"); -#ifdef HAVE_LIBLO +#if defined(HAVE_LIBLO) && !defined(BUILD_BRIDGE_ALTERNATIVE_ARCH) const bool isPlugin(kEngine->getType() == kEngineTypePlugin); #endif float value; @@ -63,7 +63,7 @@ void CarlaEngineThread::run() noexcept const bool oscRegisted = false; #endif -#ifdef HAVE_LIBLO +#if defined(HAVE_LIBLO) && !defined(BUILD_BRIDGE_ALTERNATIVE_ARCH) if (isPlugin) kEngine->idleOsc(); #endif diff --git a/source/backend/plugin/CarlaPluginDSSI.cpp b/source/backend/plugin/CarlaPluginDSSI.cpp index f5c6df8f3..a1631cc50 100644 --- a/source/backend/plugin/CarlaPluginDSSI.cpp +++ b/source/backend/plugin/CarlaPluginDSSI.cpp @@ -21,7 +21,7 @@ #include "CarlaDssiUtils.hpp" #include "CarlaMathUtils.hpp" -#ifdef HAVE_LIBLO +#if defined(HAVE_LIBLO) && !defined(BUILD_BRIDGE_ALTERNATIVE_ARCH) # include "CarlaOscUtils.hpp" # include "CarlaPipeUtils.hpp" # include "CarlaThread.hpp" @@ -63,7 +63,7 @@ CARLA_BACKEND_START_NAMESPACE static const CustomData kCustomDataFallback = { nullptr, nullptr, nullptr }; -#ifdef HAVE_LIBLO +#if defined(HAVE_LIBLO) && !defined(BUILD_BRIDGE_ALTERNATIVE_ARCH) // ------------------------------------------------------------------- class CarlaThreadDSSIUI : public CarlaThread @@ -283,7 +283,7 @@ public: fForcedStereoOut(false), fNeedsFixedBuffers(false), fUsesCustomData(false) -#ifdef HAVE_LIBLO +#if defined(HAVE_LIBLO) && !defined(BUILD_BRIDGE_ALTERNATIVE_ARCH) , fOscData(), fThreadUI(engine, this, fOscData), fUiFilename(nullptr) @@ -298,7 +298,7 @@ public: { carla_debug("CarlaPluginDSSI::~CarlaPluginDSSI()"); -#ifdef HAVE_LIBLO +#if defined(HAVE_LIBLO) && !defined(BUILD_BRIDGE_ALTERNATIVE_ARCH) // close UI if (fUiFilename != nullptr) { @@ -594,7 +594,7 @@ public: } } -#ifdef HAVE_LIBLO +#if defined(HAVE_LIBLO) && !defined(BUILD_BRIDGE_ALTERNATIVE_ARCH) if (sendGui && fOscData.target != nullptr) osc_send_configure(fOscData, key, value); #endif @@ -632,7 +632,7 @@ public: } } -#if defined(HAVE_LIBLO) && ! defined(BUILD_BRIDGE) +#if defined(HAVE_LIBLO) && !defined(BUILD_BRIDGE) const bool sendOsc(pData->engine->isOscControlRegistered()); #else const bool sendOsc(false); @@ -684,7 +684,7 @@ public: } } -#ifdef HAVE_LIBLO +#if defined(HAVE_LIBLO) && !defined(BUILD_BRIDGE_ALTERNATIVE_ARCH) // ------------------------------------------------------------------- // Set ui stuff @@ -1083,7 +1083,7 @@ public: if (LADSPA_IS_HARD_RT_CAPABLE(fDescriptor->Properties)) pData->hints |= PLUGIN_IS_RTSAFE; -#ifdef HAVE_LIBLO +#if defined(HAVE_LIBLO) && !defined(BUILD_BRIDGE_ALTERNATIVE_ARCH) if (fUiFilename != nullptr) pData->hints |= PLUGIN_HAS_CUSTOM_UI; #endif @@ -1219,7 +1219,7 @@ public: } } -#if defined(HAVE_LIBLO) && ! defined(BUILD_BRIDGE) +#if defined(HAVE_LIBLO) && !defined(BUILD_BRIDGE) // Update OSC Names if (pData->engine->isOscControlRegistered() && pData->id < pData->engine->getCurrentPluginCount()) { @@ -2185,7 +2185,7 @@ public: carla_debug("CarlaPluginDSSI::clearBuffers() - end"); } -#ifdef HAVE_LIBLO +#if defined(HAVE_LIBLO) && !defined(BUILD_BRIDGE_ALTERNATIVE_ARCH) // ------------------------------------------------------------------- // OSC stuff @@ -2444,7 +2444,7 @@ public: osc_send_midi(fOscData, midiData); #endif } -#endif // HAVE_LIBLO +#endif // HAVE_LIBLO && !BUILD_BRIDGE_ALTERNATIVE_ARCH // ------------------------------------------------------------------- @@ -2453,7 +2453,7 @@ public: return fDssiDescriptor; } -#ifdef HAVE_LIBLO +#if defined(HAVE_LIBLO) && !defined(BUILD_BRIDGE_ALTERNATIVE_ARCH) uintptr_t getUiBridgeProcessId() const noexcept override { return fThreadUI.getProcessId(); @@ -2653,7 +2653,7 @@ public: } } -#ifdef HAVE_LIBLO +#if defined(HAVE_LIBLO) && !defined(BUILD_BRIDGE_ALTERNATIVE_ARCH) // --------------------------------------------------------------- // check for gui @@ -2719,7 +2719,7 @@ private: bool fNeedsFixedBuffers; bool fUsesCustomData; -#ifdef HAVE_LIBLO +#if defined(HAVE_LIBLO) && !defined(BUILD_BRIDGE_ALTERNATIVE_ARCH) CarlaOscData fOscData; CarlaThreadDSSIUI fThreadUI; const char* fUiFilename; diff --git a/source/backend/plugin/CarlaPluginLV2.cpp b/source/backend/plugin/CarlaPluginLV2.cpp index a5153f44c..51a145207 100644 --- a/source/backend/plugin/CarlaPluginLV2.cpp +++ b/source/backend/plugin/CarlaPluginLV2.cpp @@ -30,7 +30,6 @@ #include "CarlaPluginUI.hpp" #include "Lv2AtomRingBuffer.hpp" -#include "../engine/CarlaEngineOsc.hpp" #include "../modules/lilv/config/lilv_config.h" extern "C" { @@ -2804,7 +2803,7 @@ public: int32_t rindex; const double barBeat = static_cast(timeInfo.bbt.beat - 1) - + (static_cast(timeInfo.bbt.tick) / timeInfo.bbt.ticksPerBeat); + + (timeInfo.bbt.tick / timeInfo.bbt.ticksPerBeat); // update input ports for (uint32_t k=0; k < pData->param.count; ++k) diff --git a/source/backend/plugin/CarlaPluginVST2.cpp b/source/backend/plugin/CarlaPluginVST2.cpp index a02bb2017..8a3807414 100644 --- a/source/backend/plugin/CarlaPluginVST2.cpp +++ b/source/backend/plugin/CarlaPluginVST2.cpp @@ -1140,7 +1140,7 @@ public: const double ppqBar = double(timeInfo.bbt.bar - 1) * timeInfo.bbt.beatsPerBar; const double ppqBeat = double(timeInfo.bbt.beat - 1); - const double ppqTick = double(timeInfo.bbt.tick) / timeInfo.bbt.ticksPerBeat; + const double ppqTick = timeInfo.bbt.tick / timeInfo.bbt.ticksPerBeat; // PPQ Pos fTimeInfo.ppqPos = ppqBar + ppqBeat + ppqTick; diff --git a/source/bridges-plugin/Makefile b/source/bridges-plugin/Makefile index a0bed13e8..7b10097c3 100644 --- a/source/bridges-plugin/Makefile +++ b/source/bridges-plugin/Makefile @@ -24,7 +24,6 @@ endif BUILD_CXX_FLAGS += -DBUILD_BRIDGE -I. -I$(CWD) -I$(CWD)/backend -I$(CWD)/includes -I$(CWD)/modules -I$(CWD)/utils BUILD_CXX_FLAGS += -I$(CWD)/backend/engine -I$(CWD)/backend/plugin -BUILD_CXX_FLAGS += $(LIBLO_FLAGS) 32BIT_FLAGS += -DBUILD_BRIDGE_ALTERNATIVE_ARCH 64BIT_FLAGS += -DBUILD_BRIDGE_ALTERNATIVE_ARCH @@ -64,13 +63,12 @@ LIBS_win32 += $(MODULEDIR)/water.win32.a LIBS_win64 += $(MODULEDIR)/water.win64.a LINK_FLAGS += $(WATER_LIBS) -LINK_FLAGS += $(LIBLO_LIBS) LINK_FLAGS += $(X11_LIBS) # ---------------------------------------------------------------------------------------------------------------------- -NATIVE_BUILD_FLAGS = $(NATIVE_PLUGINS_FLAGS) -NATIVE_LINK_FLAGS = +NATIVE_BUILD_FLAGS = $(NATIVE_PLUGINS_FLAGS) $(LIBLO_FLAGS) +NATIVE_LINK_FLAGS = $(LIBLO_LIBS) NATIVE_BUILD_FLAGS += $(FLUIDSYNTH_FLAGS) NATIVE_LINK_FLAGS += $(FLUIDSYNTH_LIBS) @@ -126,8 +124,6 @@ OBJS_arch = \ $(OBJDIR)/CarlaEngineClient.cpp.arch.o \ $(OBJDIR)/CarlaEngineData.cpp.arch.o \ $(OBJDIR)/CarlaEngineInternal.cpp.arch.o \ - $(OBJDIR)/CarlaEngineOsc.cpp.arch.o \ - $(OBJDIR)/CarlaEngineOscSend.cpp.arch.o \ $(OBJDIR)/CarlaEnginePorts.cpp.arch.o \ $(OBJDIR)/CarlaEngineThread.cpp.arch.o \ $(OBJDIR)/CarlaEngineJack.cpp.arch.o \ @@ -135,7 +131,6 @@ OBJS_arch = \ $(OBJDIR)/CarlaPlugin.cpp.arch.o \ $(OBJDIR)/CarlaPluginBridge.cpp.arch.o \ $(OBJDIR)/CarlaPluginInternal.cpp.arch.o \ - $(OBJDIR)/CarlaPluginJack.cpp.arch.o \ $(OBJDIR)/CarlaPluginLADSPA.cpp.arch.o \ $(OBJDIR)/CarlaPluginDSSI.cpp.arch.o \ $(OBJDIR)/CarlaPluginLV2.cpp.arch.o \ diff --git a/source/includes/CarlaNative.h b/source/includes/CarlaNative.h index a24cae949..806e79ad4 100644 --- a/source/includes/CarlaNative.h +++ b/source/includes/CarlaNative.h @@ -157,8 +157,8 @@ typedef struct { int32_t bar; /** current bar */ int32_t beat; /** current beat-within-bar */ - int32_t tick; /** current tick-within-beat */ - double barStartTick; + double tick; /** current tick-within-beat */ + double barStartTick; float beatsPerBar; /** time signature "numerator" */ float beatType; /** time signature "denominator" */ diff --git a/source/libjack/libjack.cpp b/source/libjack/libjack.cpp index 9b0ef5be0..1201181c2 100644 --- a/source/libjack/libjack.cpp +++ b/source/libjack/libjack.cpp @@ -602,7 +602,7 @@ bool CarlaJackAppClient::handleRtData() fServer.position.bar = bridgeTimeInfo.bar; fServer.position.beat = bridgeTimeInfo.beat; - fServer.position.tick = bridgeTimeInfo.tick; + fServer.position.tick = static_cast(bridgeTimeInfo.tick + 0.5); fServer.position.beats_per_bar = bridgeTimeInfo.beatsPerBar; fServer.position.beat_type = bridgeTimeInfo.beatType; diff --git a/source/utils/CarlaBridgeDefines.hpp b/source/utils/CarlaBridgeDefines.hpp index 25ea95dba..152fc2d70 100644 --- a/source/utils/CarlaBridgeDefines.hpp +++ b/source/utils/CarlaBridgeDefines.hpp @@ -20,7 +20,7 @@ #include "CarlaRingBuffer.hpp" -#define CARLA_PLUGIN_BRIDGE_API_VERSION 3 +#define CARLA_PLUGIN_BRIDGE_API_VERSION 4 // ------------------------------------------------------------------------------------------------------------------- @@ -141,9 +141,9 @@ struct BridgeTimeInfo { uint64_t usecs; uint32_t validFlags; // bbt - int32_t bar, beat, tick; + int32_t bar, beat; float beatsPerBar, beatType; - double barStartTick, ticksPerBeat, beatsPerMinute; + double tick, barStartTick, ticksPerBeat, beatsPerMinute; }; // -------------------------------------------------------------------------------------------------------------------