ardour/libs/pbd/pbd
David Robillard 338e83d9dc Implement LV2 worker extension.
This is done by way of a generic Worker object/thread, which currently just
applies to one LV2 plugin, but the idea is to share one thread and set of
buffers among many plugins.  The same pattern may also be useful elsewhere in
Ardour.  The responding part gets a bit tricker when sharing a worker between
plugins, it's not a blocker, and I'm lazy, sooo here's this.

This commit also adds a new portable in-process semaphore to PBD.  The existing
one is pretty weird and uses a named semaphore on OSX for reasons unknown to
me.  Perhaps as a quick fix to avoid POSIX semaphores being utterly broken on
OSX?  It would probably be a good idea to replace that with this new one, which
uses Mach kernel semaphores on OSX which work well, though I am not sure how
pedantically real-time safe they are to signal.


git-svn-id: svn://localhost/ardour2/branches/3.0@11790 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-05 00:15:54 +00:00
..
.cvsignore rollback to 3428, before the mysterious removal of libs/* at 3431/3432 2008-06-02 21:41:35 +00:00
.DS_Store rollback to 3428, before the mysterious removal of libs/* at 3431/3432 2008-06-02 21:41:35 +00:00
abstract_ui.cc forward port thread/abstract_ui changes from 2.X to 3.0 2011-02-07 18:21:50 +00:00
abstract_ui.h remove Evoral::RingBuffer, which was (a) duplicating PBD::RingBufferNPT and (b) broken; replace it with PBD::RingBufferNPT 2011-03-26 19:01:12 +00:00
base_ui.h handle deletion of UI objects between the time that a callback is queued with the UI event loop and the execution of the callback (intrusive, big) 2010-03-30 15:18:43 +00:00
basename.h rollback to 3428, before the mysterious removal of libs/* at 3431/3432 2008-06-02 21:41:35 +00:00
boost_debug.h #ifdef-ize all/most uses of the boost debug hooks API 2011-02-10 18:33:43 +00:00
cartesian.h switch cartesian/spherical function names and make them use length. still a tweak needed here 2011-02-24 18:55:33 +00:00
clear_dir.h add new files 2010-07-16 15:45:24 +00:00
command.h Fix crossfade undo using the stateful diff system. Fixes #3257. 2010-08-26 01:44:11 +00:00
compose.h rollback to 3428, before the mysterious removal of libs/* at 3431/3432 2008-06-02 21:41:35 +00:00
controllable.h Reinstate user Controllable values, as they are needed 2012-01-21 16:38:56 +00:00
controllable_descriptor.h merge 3.0-panexp (pan experiments) branch, revisions 8534-8585 into 3.0, thus ending 3.0-panexp. THIS COMMIT WILL BREAK ALL EXISTING 3.0 SESSIONS IN SOME WAY (possibly not fatally). 2011-01-27 01:31:03 +00:00
convert.h Remove unused ustring version of url_decode(). Rework 2012-04-01 14:30:06 +00:00
cpus.h use JACK thread creation functions to create process-graph threads; provide GUI control over number of threads-relative-to-number-of-CPUS 2010-06-24 14:13:45 +00:00
crossthread.h Update region peak amplitude when the region is trimmed (#3931). 2011-04-04 12:21:26 +00:00
debug.h new DEBUG_ENABLED(bits) macro, potentially useful here and there 2011-12-28 21:01:52 +00:00
debug_rt_alloc.h Fix build. 2011-01-19 21:52:46 +00:00
demangle.h use #include <typeinfo> before using typeid 2012-03-01 20:25:31 +00:00
destructible.h cleanup up cleanup at session destruction; clarify the meaning of 3 signals (DropReferences & Destroyed in libardour ; CatchDeletion in the GTK UI); clarify ownership of objects (session no longer pays attention to DropReferences for objects that it is considered to own, such as routes, sources, etc); fix up MIDI parsing and a couple of other places by correcting syntax for return of values from a boost::signals2::signal (possible danger elsewhere to be checked) 2009-12-22 20:21:43 +00:00
enumwriter.h Add basic test of playlist layering. 2011-12-15 14:33:20 +00:00
epa.h forward port EPA changes from 2.X 2011-01-07 16:25:57 +00:00
error.h rollback to 3428, before the mysterious removal of libs/* at 3431/3432 2008-06-02 21:41:35 +00:00
event_loop.h Allow cross-thread request invalidators to cope with multiple requests 2010-04-03 00:42:39 +00:00
failed_constructor.h rollback to 3428, before the mysterious removal of libs/* at 3431/3432 2008-06-02 21:41:35 +00:00
fastlog.h rollback to 3428, before the mysterious removal of libs/* at 3431/3432 2008-06-02 21:41:35 +00:00
file_manager.h Assorted doxygen fixes; no functional changes. 2011-05-23 22:12:45 +00:00
file_utils.h Remove most using declarations from header files. 2009-05-12 17:03:42 +00:00
filesystem.h Save templates as directories with plugin state, if 2011-12-11 20:38:42 +00:00
filesystem_paths.h Remove most using declarations from header files. 2009-05-12 17:03:42 +00:00
forkexec.h rollback to 3428, before the mysterious removal of libs/* at 3431/3432 2008-06-02 21:41:35 +00:00
fpu.h rollback to 3428, before the mysterious removal of libs/* at 3431/3432 2008-06-02 21:41:35 +00:00
functor_command.h *** NEW CODING POLICY *** 2009-02-25 18:26:51 +00:00
id.h make Stateful::_id private and provide appropriate methods to set it, and use them throughout ardour 2011-10-18 13:18:47 +00:00
locale_guard.h * libardour uses ARDOUR::nframes_t and ARDOUR::nframes64_t explicitly in headers 2009-10-28 21:36:40 +00:00
malign.h new file to encapsulate posix_memalign() hackery 2009-04-23 17:43:39 +00:00
mathfix.h rollback to 3428, before the mysterious removal of libs/* at 3431/3432 2008-06-02 21:41:35 +00:00
memento_command.h Use a MementoCommandBinder for Crossfades so that the undo record can contain details for crossfades that are subsequently deleted (#4325). 2011-09-21 15:54:19 +00:00
mountpoint.h rollback to 3428, before the mysterious removal of libs/* at 3431/3432 2008-06-02 21:41:35 +00:00
openuri.h changes from 2.X starting in march 2009 through oct 20 2009 (5826 inclusive) 2010-03-16 15:33:04 +00:00
pathscanner.h Remove most using declarations from header files. 2009-05-12 17:03:42 +00:00
pool.h Prevent crash in pool destruction during session teardown. 2010-04-14 23:58:20 +00:00
properties.h Clarify commentary slightly. No functional changes. 2010-12-28 03:05:09 +00:00
property_basics.h Clarify commentary slightly. No functional changes. 2010-12-28 03:05:09 +00:00
property_basics_impl.h the mega-properties/SequenceProperty patch. split is broken at present (right hand starts has start-in-source of zero) 2010-03-02 00:00:00 +00:00
property_list.h Modify StatefulDiffCommand undo record to only contain the changes in one direction, as the other direction can be inferred. Breaks session history file compatibility. 2010-08-25 17:31:57 +00:00
property_list_impl.h the mega-properties/SequenceProperty patch. split is broken at present (right hand starts has start-in-source of zero) 2010-03-02 00:00:00 +00:00
pthread_utils.h change the way thread name is managed and accessed; store thread name for JACK thread(s); remove bits of debugging output 2009-12-26 16:15:11 +00:00
rcu.h Fix wacky tabs. Apologies to anybody actually compiling right now. :) 2009-11-01 17:57:57 +00:00
receiver.h Remove most using declarations from header files. 2009-05-12 17:03:42 +00:00
replace_all.h rollback to 3428, before the mysterious removal of libs/* at 3431/3432 2008-06-02 21:41:35 +00:00
ringbuffer.h const correctness. 2010-06-29 13:47:11 +00:00
ringbufferNPT.h remove Evoral::RingBuffer, which was (a) duplicating PBD::RingBufferNPT and (b) broken; replace it with PBD::RingBufferNPT 2011-03-26 19:01:12 +00:00
search_path.h Assorted doxygen fixes; no functional changes. 2011-05-23 22:12:45 +00:00
selectable.h rollback to 3428, before the mysterious removal of libs/* at 3431/3432 2008-06-02 21:41:35 +00:00
semaphore.h Implement LV2 worker extension. 2012-04-05 00:15:54 +00:00
semutils.h fix linux side of semaphore abstraction 2010-11-16 20:01:01 +00:00
sequence_property.h Assorted doxygen fixes; no functional changes. 2011-05-23 22:12:45 +00:00
shortpath.h rollback to 3428, before the mysterious removal of libs/* at 3431/3432 2008-06-02 21:41:35 +00:00
signals.h Add Signal5. 2011-09-26 22:22:14 +00:00
sndfile_manager.h Assorted doxygen fixes; no functional changes. 2011-05-23 22:12:45 +00:00
stacktrace.h massive changes to waf build scripts so that nearly everything "should" be working now except for i18n (OSC is not quite right) ; some preliminary work on post-main-out handling, incomplete; a couple of fixes from -Wall and valgrind 2009-07-17 22:12:21 +00:00
stateful.h Clear up confusion with overloads of _frozen and frozen() 2011-12-17 16:37:18 +00:00
stateful_diff_command.h Fix crossfade undo using the stateful diff system. Fixes #3257. 2010-08-26 01:44:11 +00:00
statefuldestructible.h switch to using boost::signals2 instead of sigc++, at least for libardour. not finished yet, but compiles, loads sessions, records and can close a session without a crash 2009-12-17 18:24:23 +00:00
stl_delete.h rollback to 3428, before the mysterious removal of libs/* at 3431/3432 2008-06-02 21:41:35 +00:00
stl_functors.h rollback to 3428, before the mysterious removal of libs/* at 3431/3432 2008-06-02 21:41:35 +00:00
strsplit.h rollback to 3428, before the mysterious removal of libs/* at 3431/3432 2008-06-02 21:41:35 +00:00
textreceiver.h Remove most using declarations from header files. 2009-05-12 17:03:42 +00:00
thrown_error.h rollback to 3428, before the mysterious removal of libs/* at 3431/3432 2008-06-02 21:41:35 +00:00
tokenizer.h *** NEW CODING POLICY *** 2009-02-25 18:26:51 +00:00
touchable.h rollback to 3428, before the mysterious removal of libs/* at 3431/3432 2008-06-02 21:41:35 +00:00
transmitter.h Remove most using declarations from header files. 2009-05-12 17:03:42 +00:00
undo.h Fix undo nesting. 2011-01-19 17:38:46 +00:00
unknown_type.h rollback to 3428, before the mysterious removal of libs/* at 3431/3432 2008-06-02 21:41:35 +00:00
unwind.h new file, a small idea 2012-01-18 01:34:53 +00:00
uuid.h revert earlier changes to uuid class, but keep boost version in svn for the future 2011-02-08 02:21:15 +00:00
uuid_boost.h revert earlier changes to uuid class, but keep boost version in svn for the future 2011-02-08 02:21:15 +00:00
whitespace.h use isspace() and not isgraph() to identify whitespace; remove Glib::ustring version of strip_whitespace_edges() 2010-09-14 16:50:22 +00:00
xml++.h some deep changes to xml++ in which we retain a C-level xmlDocPtr as a member of an XMLTree objects. this allows us to do repeated XPATH searches (as in the midnam parser of libmidi++) without constantly rewriting an entire tree into memory to recreate a new xmlDocPtr with which we can search. Since XMLTree objects don't typically stay around for very long, just when serializing to/from disk, this is not anticipated to have much (if any) impact on memory consumption 2012-03-20 18:01:07 +00:00