summaryrefslogtreecommitdiff
path: root/libs/pbd/pbd
AgeCommit message (Collapse)Author
2012-05-28Add path_is_within to decide if a path is within a givenCarl Hetherington
directory, taking symlinks into account, and use it to decide whether a file is within the session folder. Should fix #4552. git-svn-id: svn://localhost/ardour2/branches/3.0@12468 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-21Must disconnect old UnscopedConnection when setting a new one in operator=, ↵Carl Hetherington
otherwise the old one is leaked. git-svn-id: svn://localhost/ardour2/branches/3.0@12356 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-18major rationalization of use of search paths. ardour now has just 4 ↵Paul Davis
functions used to define how external resources are located: ardour_config_search_path() (for system or user specific configuration data), ardour_data_search_path() (for machine, user and system independent data), ardour_dll_directory() (base directory where shared libraries are found) and user_config_directory(). These are now used throughout the code. the config, data and dll paths/directories can be overridden by environment variables. the user config dir is added as the first element of the first two search paths, and use selectively when searching for a few other things. This commit re-enabes ./waf install, and it is believed that it works fully at this point (more testing likely required) git-svn-id: svn://localhost/ardour2/branches/3.0@12326 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-16reset _signal member of a Connection so that we will never try to disconnect ↵Paul Davis
twice git-svn-id: svn://localhost/ardour2/branches/3.0@12299 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-15Try to make signals.h.py more cross-python-version compatible.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@12285 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-15Tidy up a bit.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@12283 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-15Maybe fix typename / no-typename problems better.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@12282 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-15Add missing file.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@12280 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-15Make ScopedConnectionList's mutex non-static so that oneCarl Hetherington
list's destruction can cause another without a deadlock. git-svn-id: svn://localhost/ardour2/branches/3.0@12279 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-15Merge old a new signals code into one set of classes.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@12278 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-15Remove the need for a shared_ptr for Signal; signalCarl Hetherington
tells its connections that it's going away, instead. git-svn-id: svn://localhost/ardour2/branches/3.0@12277 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-14Build libs/pbd/pbd/signal.h from its generator pythonCarl Hetherington
script. git-svn-id: svn://localhost/ardour2/branches/3.0@12268 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-14drop boost::signals2 and replace with carl's solution which continues to ↵Paul Davis
rely on boost::function and boost::bind but alters two important semantics of signals2: (1) when a Connection object is disconnected, the slot ("functor") associated with the connection is destroyed immediately, unlike signals2 where this is deferred to a subsequent connect/emit call on the signal (2) if one functor called by the signal disconnects another Connection, the functor represented by the Connection will NOT be called during the current signal emission (signals2 copies the slot list at the start of emission and calls everything in the slot list). this change fixes some very nasty crashes apparently caused by boost::signals2 assuming that the memory referenced by a functor remains valid after a disconnect (google will show other developers who had issues with this). git-svn-id: svn://localhost/ardour2/branches/3.0@12265 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-14remove virtual inheritance of sigc::trackable by Receiver and AbstractUI<T>, ↵Paul Davis
done by changing Gtkmm2ext::UI to use composition (HAS-A) rather than inheritance (IS-A) for Receiver; use correct synchronization when starting up a BseUI event loop thread so that tests that start/stop quickly do not encounter a race condition git-svn-id: svn://localhost/ardour2/branches/3.0@12264 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-10Fix compilation on Windows. Probably.David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@12246 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-09correct cut-n-paste error in new comments for signals.hPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@12230 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-09add some explanatory comments to pbd/signals.hPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@12226 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-02more fixes/tweaks from the land of the lionPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@12150 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-24eventloop and abstractui debugging, lots more commenting on ↵Paul Davis
abstractui/eventloop implementation; minor tweaks elsewhere git-svn-id: svn://localhost/ardour2/branches/3.0@12076 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-20Fix some warnings.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@12048 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-12move string_is_affirmative() into libpbdPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@11936 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-05Implement LV2 worker extension.David Robillard
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-01Remove unused ustring version of url_decode(). ReworkCarl Hetherington
the other version to be a bit simpler, avoiding #4800. git-svn-id: svn://localhost/ardour2/branches/3.0@11771 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-03-20some deep changes to xml++ in which we retain a C-level xmlDocPtr as a ↵Paul Davis
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 git-svn-id: svn://localhost/ardour2/branches/3.0@11733 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-03-07implement XMLNode::operator=() as a deep operation with the same semantics ↵Paul Davis
as the XMLNode copy constructor. attempt to share as much code as possible between them and the destructor git-svn-id: svn://localhost/ardour2/branches/3.0@11612 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-03-01use #include <typeinfo> before using typeidPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@11576 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-21Reinstate user Controllable values, as they are neededCarl Hetherington
for gain (which I forgot about). git-svn-id: svn://localhost/ardour2/branches/3.0@11293 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-20Remove unused concept of user' values. Make user_to_uiCarl Hetherington
and ui_to_user virtual members of PBD::Controllable. git-svn-id: svn://localhost/ardour2/branches/3.0@11286 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-18new file, a small ideaPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@11257 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-28new DEBUG_ENABLED(bits) macro, potentially useful here and therePaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@11102 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-17Clear up confusion with overloads of _frozen and frozen()Carl Hetherington
meaning different things. git-svn-id: svn://localhost/ardour2/branches/3.0@11016 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-15Add basic test of playlist layering.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@11011 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-11Save templates as directories with plugin state, ifCarl Hetherington
there is any, and copy that state to sessions created from those templates. Should fix #4525. Breaks existing session templates, sorry; they can be fixed by moving the .template file into a new directory with the name of the template (minus the .template). git-svn-id: svn://localhost/ardour2/branches/3.0@10982 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-21Simple ambiguitity-resolution wrapper for gettext; use forCarl Hetherington
Manual (#4496). git-svn-id: svn://localhost/ardour2/branches/3.0@10720 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-16Slightly unpleasant fix for creation of tracks fromCarl Hetherington
templates; it would be nice if we could set things up using the Route's logic for setting names of its children, rather than repeating the same logic in XML-land (#4303). git-svn-id: svn://localhost/ardour2/branches/3.0@10655 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-16remove stupid symlink stuffPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@10635 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-15utility function to detect symlinksPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@10604 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-10-22Add function to recover a full path from something like '.'Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@10284 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-10-18make Stateful::_id private and provide appropriate methods to set it, and ↵Paul Davis
use them throughout ardour git-svn-id: svn://localhost/ardour2/branches/3.0@10222 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-09-26Add Signal5.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@10134 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-09-21Use a MementoCommandBinder for Crossfades so that the undo record can ↵Carl Hetherington
contain details for crossfades that are subsequently deleted (#4325). git-svn-id: svn://localhost/ardour2/branches/3.0@10104 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-06-11major, substantive reworking of how we store GUI information (visibility, ↵Paul Davis
height) for automation data. old design stored (insufficient) identifying information plus actual data in a GUI-only XML node; new scheme adds GUI data via extra_xml node to each AutomationControl object. reworked public/private methods for showing/hiding TimeAxisView objects; changed labelling of automation tracks to just show the name of the controlled parameter - more info can be viewed in the tooltip for the track headers. NOTE: Session file format ALTERED. No data loss but track visibility may be different than previous ardour3 versions git-svn-id: svn://localhost/ardour2/branches/3.0@9703 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-23Assorted doxygen fixes; no functional changes.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@9575 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-19allow invalidation-of-UI-request-by-object-deletion to work more often by ↵Paul Davis
setting the event loop record at connect time, not execution time git-svn-id: svn://localhost/ardour2/branches/3.0@9379 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-09add PBD::sys::path::exists_and_writable() method to help replace access(2)Paul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@9338 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-04Update region peak amplitude when the region is trimmed (#3931).Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@9276 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-30Spurious character in GPL boilerplate.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@9241 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-26remove Evoral::RingBuffer, which was (a) duplicating PBD::RingBufferNPT and ↵Paul Davis
(b) broken; replace it with PBD::RingBufferNPT git-svn-id: svn://localhost/ardour2/branches/3.0@9212 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-04Remove unused bits.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@9060 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-02-24switch cartesian/spherical function names and make them use length. still a ↵Paul Davis
tweak needed here git-svn-id: svn://localhost/ardour2/branches/3.0@8952 d708f5d6-7413-0410-9779-e7cbd77b26cf