diff options
author | David Robillard <d@drobilla.net> | 2012-11-16 01:16:46 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2012-11-16 01:16:46 +0000 |
commit | 797a9a172729e43c467ea6b2c84eb9d39035170e (patch) | |
tree | 0bc74e6b6224b5501edd97e8b799a14c96aef3c1 | |
parent | 39aca5e3ca582d27fb7df724c274afc67596406b (diff) | |
download | jalv-797a9a172729e43c467ea6b2c84eb9d39035170e.tar.gz jalv-797a9a172729e43c467ea6b2c84eb9d39035170e.tar.bz2 jalv-797a9a172729e43c467ea6b2c84eb9d39035170e.zip |
Send new time information to plugin when Jack tempo changes.
git-svn-id: http://svn.drobilla.net/lad/trunk/jalv@4818 a436a847-0d15-0410-975c-d299462d15a1
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | src/jalv.c | 5 | ||||
-rw-r--r-- | src/jalv_internal.h | 1 |
3 files changed, 7 insertions, 2 deletions
@@ -1,8 +1,9 @@ jalv (1.2.1) unstable; + * Send new time information to plugin when Jack tempo changes * Add menu bar and pass parent widget in Qt version for true UI embedding - -- David Robillard <d@drobilla.net> Tue, 13 Nov 2012 22:02:45 -0500 + -- David Robillard <d@drobilla.net> Thu, 15 Nov 2012 20:16:15 -0500 jalv (1.2.0) stable; @@ -362,7 +362,8 @@ jack_process_cb(jack_nframes_t nframes, void* data) /* If transport state is not as expected, then something has changed */ const bool xport_changed = (rolling != jalv->rolling || - pos.frame != jalv->position); + pos.frame != jalv->position || + pos.beats_per_minute != jalv->bpm); uint8_t pos_buf[256]; LV2_Atom* lv2_pos = (LV2_Atom*)pos_buf; @@ -401,6 +402,7 @@ jack_process_cb(jack_nframes_t nframes, void* data) /* Update transport state to expected values for next cycle */ jalv->position = rolling ? pos.frame + nframes : pos.frame; + jalv->bpm = pos.beats_per_minute; jalv->rolling = rolling; switch (jalv->play_state) { @@ -753,6 +755,7 @@ main(int argc, char** argv) jalv.block_length = 4096; // Should be set by jack_buffer_size_cb jalv.midi_buf_size = 1024; // Should be set by jack_buffer_size_cb jalv.play_state = JALV_PAUSED; + jalv.bpm = 120.0f; if (jalv_init(&argc, &argv, &jalv.opts)) { return EXIT_FAILURE; diff --git a/src/jalv_internal.h b/src/jalv_internal.h index 4bb600a..3c66f68 100644 --- a/src/jalv_internal.h +++ b/src/jalv_internal.h @@ -181,6 +181,7 @@ typedef struct { jack_nframes_t event_delta_t; ///< Frames since last update sent to UI uint32_t midi_event_id; ///< MIDI event class ID in event context jack_nframes_t position; ///< Transport position in frames + float bpm; ///< Transport tempo in beats per minute bool rolling; ///< Transport speed (0=stop, 1=play) bool buf_size_set; ///< True iff buffer size callback fired bool exit; ///< True iff execution is finished |