diff --git a/distrho/src/DistrhoPluginJACK.cpp b/distrho/src/DistrhoPluginJACK.cpp index 97a33c01..146f66fb 100644 --- a/distrho/src/DistrhoPluginJACK.cpp +++ b/distrho/src/DistrhoPluginJACK.cpp @@ -355,6 +355,12 @@ protected: fTimePosition.bbt.bar = pos.bar; fTimePosition.bbt.beat = pos.beat; fTimePosition.bbt.tick = pos.tick; +#ifdef JACK_TICK_DOUBLE + if (pos.valid & JackTickDouble) + fTimePosition.bbt.tick = pos.tick_double; + else +#endif + fTimePosition.bbt.tick = pos.tick; fTimePosition.bbt.barStartTick = pos.bar_start_tick; fTimePosition.bbt.beatsPerBar = pos.beats_per_bar; diff --git a/distrho/src/jackbridge/JackBridge.hpp b/distrho/src/jackbridge/JackBridge.hpp index 7736ac28..f96bf16d 100644 --- a/distrho/src/jackbridge/JackBridge.hpp +++ b/distrho/src/jackbridge/JackBridge.hpp @@ -99,6 +99,8 @@ #define JACK_UUID_STRING_SIZE (JACK_UUID_SIZE+1) /* includes trailing null */ #define JACK_UUID_EMPTY_INITIALIZER 0 +#define JACK_TICK_DOUBLE + extern "C" { enum JackOptions { @@ -153,7 +155,8 @@ enum JackPositionBits { JackPositionTimecode = 0x020, JackBBTFrameOffset = 0x040, JackAudioVideoRatio = 0x080, - JackVideoFrameOffset = 0x100 + JackVideoFrameOffset = 0x100, + JackTickDouble = 0x200 }; enum JackSessionEventType { @@ -223,7 +226,8 @@ struct _jack_position { jack_nframes_t bbt_offset; float audio_frames_per_video_frame; jack_nframes_t video_offset; - int32_t padding[7]; + double tick_double; + int32_t padding[5]; jack_unique_t unique_2; } POST_PACKED_STRUCTURE;