Commit graph

94 commits

Author SHA1 Message Date
David Robillard
66f9f3061f Fix real-time violation, only send UI updates if explicitly requested by UI.
git-svn-id: svn://localhost/ardour2/branches/3.0@11522 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-02-25 20:54:38 +00:00
David Robillard
1e6694f41a Use FastScreenUpdate for UI message updating, and only if plugin has message output ports.
git-svn-id: svn://localhost/ardour2/branches/3.0@11521 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-02-25 20:43:14 +00:00
David Robillard
4d7810dee8 Full round-trip message communication between LV2 UIs and plugins.
Still a little bit rough around the edges, but it works.  This can be tested
with the eg-sampler plugin from LV2 svn (whose UI can load different samples).


git-svn-id: svn://localhost/ardour2/branches/3.0@11519 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-02-25 08:43:23 +00:00
David Robillard
1cf6e280b8 Use more straightforward 1:1 names for URI nodes.
git-svn-id: svn://localhost/ardour2/branches/3.0@11518 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-02-25 05:01:24 +00:00
David Robillard
f122504784 Support LV2 atom sequence ports alongside old event ports.
git-svn-id: svn://localhost/ardour2/branches/3.0@11517 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-02-25 04:16:42 +00:00
David Robillard
4f96a1006b Clean up LV2 code in preparation for atom support.
Merge all parameter_is_* boolvectors into a single vector of flags (smaller/faster).


git-svn-id: svn://localhost/ardour2/branches/3.0@11515 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-02-24 22:09:30 +00:00
David Robillard
6f23443c26 Fix compilation with older Glib.
git-svn-id: svn://localhost/ardour2/branches/3.0@11378 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-28 18:19:19 +00:00
Sakari Bergen
aaf418bd6f Fix compilation with older lilv (0.5.0)
git-svn-id: svn://localhost/ardour2/branches/3.0@11375 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-28 13:36:13 +00:00
David Robillard
2858d43902 Use new Lilv state API to save LV2 plugin state.
This saves a complete history of plugin state, i.e. save is no longer destructive.  However, data is shared as much as possible, and new state is only written if the plugin state has actually changed.  There is exactly one link in the entire session directory to any external file, so archiving will work with minimal copying.

Not sure sure about the naming of the "externals" directory, but I have nothing better...


git-svn-id: svn://localhost/ardour2/branches/3.0@11372 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-28 01:45:15 +00:00
Carl Hetherington
a71172feb2 Trim calls to parameter_count() a bit during the process
thread.


git-svn-id: svn://localhost/ardour2/branches/3.0@11316 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-23 18:17:09 +00:00
Carl Hetherington
9b4f0f7242 Cache results of lilv_port_is_a(...) in various places.
git-svn-id: svn://localhost/ardour2/branches/3.0@11315 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-23 18:02:22 +00:00
David Robillard
f9c15b6136 Support new URIs for LV2 presets.
Old stuff continues to work for Calf, but it'd sure be nice if it would be updated...


git-svn-id: svn://localhost/ardour2/branches/3.0@10952 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-09 19:42:32 +00:00
David Robillard
0bd3105f50 Save references to external files in LV2 state as symbolic links.
With this commit it is possible to archive sessions that contain plugins with
complex file-containing state (e.g. Linuxsampler with a sample bank loaded)
with any archive tool, e.g.:

tar -hjcf session.tar.bz2 session

Which will give you a fully self-contained archive of everything used in the
session, so you can e.g. send it to a collaborator who may not have the same
sample banks in the same place as you and it will work.


git-svn-id: svn://localhost/ardour2/branches/3.0@10817 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-24 00:53:45 +00:00
David Robillard
ae5a56941e Rename lv2_plugin_lilv.cc back to lv2_plugin.cc.
git-svn-id: svn://localhost/ardour2/branches/3.0@10809 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-23 19:34:25 +00:00
David Robillard
63cf87beb7 Remove LV2 support via SLV2 (Lilv only now).
git-svn-id: svn://localhost/ardour2/branches/3.0@10184 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-10-03 18:10:05 +00:00
Carl Hetherington
7be510a26a Set up default and upper/lower limit correctly on LV2 ports
whose values are expressed as a fraction of the sampling
rate.  Should fix #3767.


git-svn-id: svn://localhost/ardour2/branches/3.0@9848 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-07-12 20:30:02 +00:00
David Robillard
a473d630eb Fix broken whitespace. I'd apologize for the compile times if it was my fault :D
git-svn-id: svn://localhost/ardour2/branches/3.0@9654 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-06-01 16:50:12 +00:00
David Robillard
1959efd94d Support compilation with (old) SLV2, or (new) Lilv and (optionally) Suil.
Fix ticket #0004041.


git-svn-id: svn://localhost/ardour2/branches/3.0@9516 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-15 23:10:13 +00:00
David Robillard
3a855fb69a Move SLV2-independent LV2 persist state implementation to lv2_state.h.
git-svn-id: svn://localhost/ardour2/branches/3.0@9515 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-14 21:44:47 +00:00
David Robillard
4e49c56361 Completely localist use of SLV2 to lv2_plugin.cc and lv2_plugin_ui.cc.
git-svn-id: svn://localhost/ardour2/branches/3.0@9514 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-14 21:05:26 +00:00
David Robillard
ac367e8904 Make LV2World local to lv2_plugin.cc
git-svn-id: svn://localhost/ardour2/branches/3.0@9513 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-14 19:55:46 +00:00
David Robillard
2b7f092b85 Generic scale points API.
Hide scale points implementation inside specific Plugin subclass.
Don't needlessley/slowly get scale points twice for each port while building UI.
Remove dependence on specific plugin types from GenericPluginUI.


git-svn-id: svn://localhost/ardour2/branches/3.0@9511 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-14 18:43:34 +00:00
Paul Davis
92e72260b1 without drobilla's new stuff, LV2Plugin::_ui_type points to global data so do not try to free it
git-svn-id: svn://localhost/ardour2/branches/3.0@9464 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-03 14:34:40 +00:00
David Robillard
06e8b6452d Fix external UIs (e.g. Calf git).
git-svn-id: svn://localhost/ardour2/branches/3.0@9442 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-28 15:36:51 +00:00
David Robillard
0060b9929f Update for new SLV2 API.
git-svn-id: svn://localhost/ardour2/branches/3.0@9438 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-28 06:02:22 +00:00
Paul Davis
20858349f0 reverse debugging stuff
git-svn-id: svn://localhost/ardour2/branches/3.0@9423 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-24 15:36:45 +00:00
Paul Davis
613c11c5ac yet more temporary debugging for slv2/calf issue
git-svn-id: svn://localhost/ardour2/branches/3.0@9422 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-24 15:08:31 +00:00
Paul Davis
5b1f0e7919 further temporary debugging for slv2/calf issue
git-svn-id: svn://localhost/ardour2/branches/3.0@9421 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-24 15:07:07 +00:00
Paul Davis
01231deaa5 additional temporary debugging for slv2/calf issue
git-svn-id: svn://localhost/ardour2/branches/3.0@9420 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-24 15:04:55 +00:00
David Robillard
c37722f7dc Use new Suil and SLV2 APIs for LV2 plugin UIs.
Add lv2_ui.h (required by lv2_external_ui.h).


git-svn-id: svn://localhost/ardour2/branches/3.0@9406 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-22 08:08:37 +00:00
David Robillard
852232ad27 Tolerate LV2 plugins that call persist/file state functions early.
git-svn-id: svn://localhost/ardour2/branches/3.0@9343 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-13 01:44:46 +00:00
David Robillard
e0140b7c8f Implement latest LV2 files extension.
git-svn-id: svn://localhost/ardour2/branches/3.0@9300 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-06 14:58:44 +00:00
David Robillard
4ae4704112 Implement LV2 files extension.
This extension works with the persist extension to allow plugins to
save references to files in their state, but still allow the host
(e.g. Ardour) to control where files are located, making it possible
to do a deep export of a session with all files (e.g. loaded sampler
banks) included.

Tested working with a patched version of LinuxSampler...

TODO: Make symlinks in the plugin state directory rather than refer
to absolute file paths in state files (i.e. support session export,
either by ardour or any other tool, in particular the Jack session
manager...)


git-svn-id: svn://localhost/ardour2/branches/3.0@9272 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-03 01:57:12 +00:00
David Robillard
e05405acb3 Update for latest LV2 Persist extension.
git-svn-id: svn://localhost/ardour2/branches/3.0@9240 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-29 21:07:36 +00:00
David Robillard
9bfc43bf66 Update for latest LV2 persist extension.
git-svn-id: svn://localhost/ardour2/branches/3.0@9225 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-29 08:56:22 +00:00
David Robillard
02d551d183 Add subject to key/value chunks in RDFF (i.e. store triples).
git-svn-id: svn://localhost/ardour2/branches/3.0@9224 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-29 04:22:58 +00:00
David Robillard
09943e1d57 lv2_pfile => rdff.
git-svn-id: svn://localhost/ardour2/branches/3.0@9221 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-29 02:10:57 +00:00
David Robillard
2c0cd4d430 Implement most recent LV2 persist extension.
Plugin state data is saved to a simple RIFF-based binary file.
Cross-endianness and non-POD data not yet implemented.


git-svn-id: svn://localhost/ardour2/branches/3.0@9220 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-28 23:54:08 +00:00
David Robillard
fc32ea7642 Uncrustify (no functional changes).
git-svn-id: svn://localhost/ardour2/branches/3.0@9084 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-06 20:23:15 +00:00
Paul Davis
c9e78d432f some LV2 debug tracing
git-svn-id: svn://localhost/ardour2/branches/3.0@9078 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-05 23:14:39 +00:00
Paul Davis
6dcb20af78 take reverse width into account when labelling signals in panner2d ; better way to draw the width arc
git-svn-id: svn://localhost/ardour2/branches/3.0@8956 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-02-25 03:20:47 +00:00
David Robillard
0e9bc1d7b6 Tidy (no functional changes).
git-svn-id: svn://localhost/ardour2/branches/3.0@8946 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-02-24 02:24:18 +00:00
Paul Davis
32e6f03cd4 remove some dead code
git-svn-id: svn://localhost/ardour2/branches/3.0@8750 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-02-07 18:21:14 +00:00
David Robillard
32e207d966 Compile with new (as yet unreleased) librdf and SPARQL-free slv2.
git-svn-id: svn://localhost/ardour2/branches/3.0@8696 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-02-03 22:58:17 +00:00
Carl Hetherington
6c3bad48f9 Allow plugins with >1 input to be inserted into mono tracks; the input is passed to each plugin input equally (#3746).
git-svn-id: svn://localhost/ardour2/branches/3.0@8628 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-01-31 15:28:15 +00:00
David Robillard
1385643131 Implement non-SPARQL LV2Plugin::find_presets using more basic SLV2 API.
Also add a (for now) commented out implementation for LV2Plugin::load_preset,
but this requires SLV2 to have blank node SLV2Values, which the current
version does not...


git-svn-id: svn://localhost/ardour2/branches/3.0@8578 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-01-26 19:58:16 +00:00
Carl Hetherington
5f4bdb233a Clean up plugin preset handling a bit.
git-svn-id: svn://localhost/ardour2/branches/3.0@8301 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-12-19 23:11:01 +00:00
David Robillard
23d8df6edf More complete (but still incomplete) LV2 persist implementation.
git-svn-id: svn://localhost/ardour2/branches/3.0@8261 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-12-13 19:27:59 +00:00
Carl Hetherington
a9275f997b Put plugin-note-off code in the right place.
git-svn-id: svn://localhost/ardour2/branches/3.0@8207 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-12-07 15:00:19 +00:00
Carl Hetherington
40c162d609 Move RDF-based preset stuff into LadspaPlugin, to make way for a set of evil hacks to make VST chunk-based presets work (for some values of `work').
May fix #3577.


git-svn-id: svn://localhost/ardour2/branches/3.0@8202 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-12-07 02:56:11 +00:00